EXCEL - vyhledání řetězce v buňce ve sloupci maticově Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Tomulka
nováček
Příspěvky: 3
Registrován: září 10
Pohlaví: Žena
Stav:
Offline

EXCEL - vyhledání řetězce v buňce ve sloupci maticově  Vyřešeno

Příspěvekod Tomulka » 27 zář 2010 09:15

Ahoj všem,

potřebovala bych poradit s jedním vzorečkem. Pokud by to nešlo jinak, tak přijmu i řešení v podobě makra, nicméně zatím jsem dala dohromady funkční vzoreček, pouze mi tam chybí jedna drobnost a tu tam nemohu vůbec dostat a nevím si už rady :?

Mám následující vzoreček maticově (CTRL+SHIFT+ENTER):

{=SOUČET(KDYŽ(DÉLKA($sklad.$A$4:$A$600>0);KDYŽ($sklad.$A$4:$A$600="Nokia";KDYŽ($sklad.$E$4:$E$600="černý";1;0);0);0))}

(Mimo téma: je v tom vzorečku k něčemu ta délka? Ono mi to totiž nefungovalo na rozsah A:A, tak jsem předpokládala, že tomu vadí prázdný řádky, tak jsem tam dala tu kontrolu na délku, ale mám pocit, že je to tam k ničemu, když dám rozsah A4:A600, ale nevím, co myslíte? No kdyžtak to smažu a ozkouším, pak by vzorec vypadal takto maticově (CTRL+SHIFT+ENTER):

{=SOUČET(KDYŽ($sklad.$A$4:$A$600="Nokia";KDYŽ($sklad.$E$4:$E$600="černý";1;0);0))}

Vzoreček má mít tu funkci, aby spočítal počet telefonů jednoho typu (např. Nokia) splňující nejen podmínku: $sklad.$A$4:$A$600="Nokia", ale v momentě, kdy najde ve sloupci A shodu na slovo "Nokia" tak aby se ve stejném řádku podíval ještě do sloupce E a tam porovnal, zda tato buňka obsahuje slovo např.: "černý" a až po této shodě to započetlo +1 do konečného součtu.

Vzorec nyní funguje tak, že se buňka E v konkrétním řádku "MUSÍ" rovnat právě slovu "černý", ale pokud tento text je různorodý (např. černý kryt, GPS, Wi-Fi), prostě obsahuje sice slovo černý, ale i další jiná upřesnění k danému telefonu, tak už vzorec vyhodnotí tuto skutečnost jako neshodu a telefon, ikdyž by se měl do součtu započítat, se tam nezapočítá. Jde mi tedy o to, rozšířit podmínku KDYŽ($sklad.$E$4:$E$600="černý";1;0) tak, aby se neporovnávalo pouze KDYŽ($sklad.$E$4:$E$600="černý";1;0), ale aby tam bylo něco jako: KDYŽ($sklad.$E$4:$E$600 OBSAHUJE SLOVO "černý";1;0).

Omlouvám se, že to popisuju tak složitě, ikdyž je to určitě prkotina, nicméně si s tím už nevím rady. Děkuji všem za pomoc a za případné rady, co s tím.

Tereza

Reklama
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: EXCEL - vyhledání řetězce v buňce ve sloupci maticově

Příspěvekod navstevnik » 27 zář 2010 11:17

Pro tento ucel se lepe hodi pouziti modifikovane funkce listu SOUCIN.SKALARNI viz vice http://www.dataspectrum.cz/excelmag/dow ... am0205.pdf
Najdes tam samozrejme i pouziti maticoveho vzorce.

Tomulka
nováček
Příspěvky: 3
Registrován: září 10
Pohlaví: Žena
Stav:
Offline

Re: EXCEL - vyhledání řetězce v buňce ve sloupci maticově

Příspěvekod Tomulka » 29 zář 2010 14:25

Ahoj, no z toho pořád nejsem moc moudrá, SOUCIN.SKALARNI pouze nahradí ten můj zápis SOUČET(KDYŽ(KDYŽ())), ale to nevyřeší problém s tím, že druhou podmínku potřebuju testovat ne na shodu (ANO/NE), ale na to, zda buňka obsahuje text nebo ne, tedy ne:

rovná se obsah buňky řetězci "text", ale

obsahuje buňka řetězec "text"

Funkce NAJDI (případně ta druhá funkce na vyhledávání) mi je schopná poskytnout potřebnou informaci, ale pouze v jedné konkrétní buňce:

NAJDI("text"; E1; 1)

ale jakmile toto zadám jako rozsah

NAJDI("text"; E1:E600; 1) tak mi je celé vyhledávání na dvě věci.

Potřebuji tučně označenou část předělat na vyhledávání: {=SOUČET(KDYŽ($sklad.$A$4:$A$600="Nokia";KDYŽ($sklad.$E$4:$E$600="černý";1;0);0))}

Dá se nějakým způsobem zjistit, který index řádku je právě prohledáván? Pak bych mohla obyčejné vyhledávání použít s tím, že by tam nebylo E1 ale Eaktuální_index

NAJDI("text"; E1; 1) -> NAJDI("text"; Eaktuální index; 1)

{=SOUČET(KDYŽ($sklad.$A$4:$A$600="Nokia";KDYŽ((NAJDI("text"; $sklad.$Eaktuální index; 1) > 0);1;0);0))}

Nevím, asi se vyjadřuju nějak blbě :?

Tomulka
nováček
Příspěvky: 3
Registrován: září 10
Pohlaví: Žena
Stav:
Offline

Re: EXCEL - vyhledání řetězce v buňce ve sloupci maticově

Příspěvekod Tomulka » 29 zář 2010 15:01

Tak už mi to asi začalo fungovat, nakonec nevím jak se mi to povedlo, ale funguje to:

{=SOUČET(KDYŽ($sklad.$A$4:$A$600="Nokia";KDYŽ(JEČÍSLO((NAJDI("text"; $sklad.$E4:$E600; 1));1;0);0))}

Takže to tu můžete uzavřít :D


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • JavaScript - načtení web stranky do řetězce.
    od L.L » 16 bře 2024 10:23 » v Programování a tvorba webu
    4
    2450
    od L.L Zobrazit poslední příspěvek
    20 bře 2024 07:29
  • Porovnání hodnot ve sloupci Příloha(y)
    od luko02420 » 02 srp 2023 14:12 » v Kancelářské balíky
    0
    1700
    od luko02420 Zobrazit poslední příspěvek
    02 srp 2023 14:12
  • Excel a OneDrive
    od sginfo » 11 zář 2023 15:28 » v Kancelářské balíky
    16
    6501
    od mirekol Zobrazit poslední příspěvek
    20 říj 2023 08:31
  • Excel komparacedvou soborů Příloha(y)
    od teichmann.ondrej » 15 dub 2024 17:26 » v Kancelářské balíky
    11
    3415
    od teichmann.ondrej Zobrazit poslední příspěvek
    22 dub 2024 15:45
  • excel-posun makra
    od actionboy » 12 bře 2024 18:59 » v Kancelářské balíky
    1
    516
    od Grimm Zobrazit poslední příspěvek
    12 bře 2024 21:43

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 27 hostů