Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Excel - Jak vrátit přesou pozici nalezené buňky?

Dobrý den,

Vždycky jsem potřeboval zjistit, jestli se v tabulce daná buňka nachází. Teď bych však potřeboval vědět i pozici.

Tento vzorec funguje

=IFERROR(
    ADDRESS(MATCH("example"; B:B; 0); COLUMN(B:B); 4);
    "Not found"
)

Napíše mně první řádek s danou hodnotou nebo Not found, ale umí hledat pouze v jednom sloupci.

Tento by to měl umět, ale stále ukazuje pouze statickou hodnotu

=IFERROR( 
    ADDRESS( 
        MIN(IF((B2:AD100="example"); ROW(B2:AD100))); 
        MIN(IF((B2:AD100="example"); COLUMN(B2:AD100))); 
        4 
    ); 
    "Not found" 
) 

Jak to mám, prosím Vás, správně napsat, aby pracoval s celou tabulkou?

Děkuji

Předmět Autor Datum
A co konkrétně na tom nefunguje? Teď jsem to zkusil a funguje. Jediný problém by snad mohl být v tom…
Wikan 05.09.2024 10:02
Wikan
Aha, už jsem na něco přišel. Správně mi napíše první sloupec a první buňku, kde danou hodnotu našel.…
MichalDM 05.09.2024 11:02
MichalDM
Ono to funguje tak, že najde první odpovídající sloupec a první odpovídající řádek a pak to spojí. C…
Wikan 05.09.2024 11:49
Wikan
OK, a víte, jak to upravit? Teoreticky bych mohl použít vícekrát ten první, ale vzhledem k tomu, že…
MichalDM 05.09.2024 13:31
MichalDM
Třeba nějak takhle: =IFERROR( ADDRESS( MIN(IF(B2:AD100="example"; ROW(B2:AD100); 1048576)); MIN(IF(…
Wikan 05.09.2024 13:48
Wikan
Tohle už funguje. Sice to dělá po řádcích, ale to je asi nepodstatné. Mockrát děkuji
MichalDM 05.09.2024 14:19
MichalDM
Ak treba po stĺpcoch tak len prechoď logiku v tých 2 argumentoch.
Ale 05.09.2024 14:44
Ale
Omlouvám se, tohle je teprve začátek. (A nechci to dávat do samostatné otázky) Původní tabulka je v…
MichalDM 05.09.2024 21:10
MichalDM
Proč tam máš ty hvězdičky?
Wikan 05.09.2024 21:51
Wikan
To je jenom narychlo přepsané. V originální tabulce jsou dva různé texty, ale končí stejným slovem,…
MichalDM 05.09.2024 23:41
MichalDM
=IFERROR( ADDRESS( MIN(IF((B2:AD100="example") * (OFFSET(B2:AD100; -1; 0) <> "OK"); ROW(B2:AD100); 1…
Wikan 06.09.2024 07:42
Wikan
Jo, tohle už je finálně to, co jsem chtěl. Děkuji
MichalDM 06.09.2024 11:04
MichalDM
Tak možná by bylo lepší se hned na začátku zeptat, co vlastně chceš, ať se to nemusí honit přes 3 it… poslední
Wikan 06.09.2024 13:33
Wikan

Aha, už jsem na něco přišel. Správně mi napíše první sloupec a první buňku, kde danou hodnotu našel.

[]

Když ji ale smažu, zůstane tam stále B2.

[]

Avšak, když smažu řádek 2, změní se to na B3.

[]

Stejně tak se to změní na C2, pokud bych smazal B.

[]

To ale na věci nic víceméně nemění. Nechápu, proč se to tak chová. Když smažu buňku B2, má se to okamžitě změnit na B3 a ne až po smazání všech stejných hodnot na onom řádku (sloupce to samé)

Nevíte, prosím Vás, co s tím?

PS. Nemám starý Excel, takže to není třeba vkládat jiným způsobem respektive se to chová stejně.

Omlouvám se, tohle je teprve začátek. (A nechci to dávat do samostatné otázky) Původní tabulka je v tomto stylu.

[]

Chci najít první buňku s hodnotou "example", která o řádek výše neobsahuje "OK".

Teď nemám přístup k anglické verzi, takže sorry, že je to trochu matoucí. Každopádně, tohle mně vygenerovalo chatgpt, když jsem mu poradil ten Váš kód. Bohužel doteď jsem se nedopracoval k tomu, aby to správně fungovalo. Pořád to píše Not found

=IFERROR(
    ODKAZ(
        MIN(KDYŽ((B3:AD100="*example") * (B2:AD99<>"OK"); ŘÁDEK(B3:AD100))); 
        MIN(KDYŽ((B3:AD100="*example") * (B2:AD99<>"OK") * (ŘÁDEK(B3:AD100)=MIN(KDYŽ((B3:AD100="*example") * (B2:AD99<>"OK"); ŘÁDEK(B3:AD100); 1048576))); SLOUPEC(B3:AD100); 1048576));
        4
    );
    "Not found"
)

Nevíte, jak tohle ještě upravit, prosím?

=IFERROR(
    ADDRESS(
        MIN(IF((B2:AD100="example") * (OFFSET(B2:AD100; -1; 0) <> "OK"); ROW(B2:AD100); 1048576));
        MIN(IF((B2:AD100="example") * (OFFSET(B2:AD100; -1; 0) <> "OK") * (ROW(B2:AD100) = MIN(IF((B2:AD100="example") * (OFFSET(B2:AD100; -1; 0) <> "OK"); ROW(B2:AD100); 1048576))); COLUMN(B2:AD100); 1048576));
        4
    );
    "Not found"
)

Zpět do poradny Odpovědět na původní otázku Nahoru