Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Excel - vzorec nefunguje

Ahoj, mám vzorec

=KDYŽ(JE.ČISLO(SOUČIN.SKALÁRNÍ(IFERROR((MOD(SLOUPEC(E5:Q5)-4;6)=1)*(E5:Q5);0)));SVYHLEDAT(10;B3:B4;1);"")

ale nefunguje, protože je v buňce B5, tj. na stejném řádku. Když ho dám na jiný řádek funguje.

Jde to vyřešit jinak?

Děkuji

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Dobře, zkusím to znovu. 1. Jsem samouk a BFU. 2. Daný vzorec bude v buňce B5. 3. Potřebuju zjisti…
Pak 28.03.2021 21:54
Pak
3. Musi byt v kazde bunce (E5,K5,Q5) cislo aby byla podminka splnena, nebo je podminka splnena pokud…
Dwane Dibbley 29.03.2021 07:21
Dwane Dibbley
Podmínka je splněna pokud alespoň v jedné buňce je číslo. nový
Pak 29.03.2021 08:35
Pak
Rozumiem tomu dobre, že stačí, ak v jednej z x-tých buniek rozsahu E÷Q bude číslo od 0 do 10 a v tom… nový
robert13 29.03.2021 09:08
robert13
Pokiaľ platí moja predošlá odpoveď, tak tu máš výsledok (ktorý naplníš ako CSE do bunky B2 a potiahn… nový
robert13 29.03.2021 09:57
robert13
Ak by sa Ti nechcelo ani prekladať funkcie, tak aj to Ti posielam: Anglická verzia: =IF(OR(IF(ISNUM… nový
robert13 29.03.2021 10:54
robert13
Díky, funguje to skvěle. :beer: Dík hlavně za trpělivost. Značím vyřešeno. nový
Pak 29.03.2021 18:32
Pak
:beer: poslední
robert13 29.03.2021 18:53
robert13
robert13 napsal: Inak, je dosť drsné napísať, že si to po sebe ani nebudeš čítať, či je to zrozumite… nový
Pak 29.03.2021 12:28
Pak
To sme sa naozaj nepochopili, takže beriem späť... Odvolávám, co jsem odvolal a slibuji co jsem slíb… nový
robert13 29.03.2021 12:32
robert13
Súhlasím s Dwaynem, nepíšeš, či sa vyhodnocuje, či sú všetky x-té bunky v poli E÷Q riadka prázdne al… nový
robert13 29.03.2021 09:00
robert13

Dobře, zkusím to znovu.

1. Jsem samouk a BFU.

2. Daný vzorec bude v buňce B5.

3. Potřebuju zjistit zda v buňkách E5, K5, Q5 je číslo nebo jsou prázdné. Myslel jsem že ty Buňky sečtu a použiju funkci JE.ČÍSLO. Ale pak jsem zjistil, že i když jsou buňky prázdné, vypadne z toho číslo 0. Proto jsem to pak porovnával s nulou <>0.
Myslel jsem že tato funkce která to zjišťuje bude jako podmínka u funkce KDYŽ.
Takže potřebuju zjistit zda v daných buňkách je číslo nebo ne. Není tam žádný vzorec.
Pak si to rozšířím podle potřeby.

4. Pokud podle bodu 3. zjistím, že tam není žádné číslo, popř. to sečte 0 tak podmínka u funkce KDYŽ bude Ne a do buňky B5 se zapíše "".

5. Pokud podle bodu 3. zjistím, že tam je jakékoliv číslo větší než 0 a rovno nebo menší než 10 tak pomocí funkce SVYHLEDAT najdu poslední hodnotu ve sloupci B a ta se zapíše do buňky B5.
Někdo tu psal ať to nezjišťuju a dám tam kopírovat buňku B4.
Já většinou každý den do jednoho řádku do buněk E5, K5, Q5 budu psát čísla. 1 řádek = 1 den. Ale některé dny tam nic psát nebudu. Předem nevím, které dny to budou. Jak pak zjistím jaká je poslední hodnota ve sloupci B?
Já na to používám funkci SVYHLEDAT, ale bylo mi tu vysvětleno že není k tomu určena. Také jsem dříve používal Funkce INDEX a POČET, nevý jestli jsou na to určeny.

6. Teď tu někdo napáše, aby sem nahrál tabulku. Ano to mohu. Ale jediné to v té tabulce bude je vzorec:

=KDYŽ(A(JE.ČISLO(A5);SUMA(KDYŽ(JE.ČISLO(E5:Q5);(E5:Q5);0)*(MOD(SLOUPEC(E5:Q5)-4;6)=1))<>0;POČET(E$3:E4)=POČET2(H$3:H4));SVYHLEDAT(9,99999999999999E+307;B$3:B4;1);"")

popřípadě

=KDYŽ(A(JE.ČISLO(A5);SUMA(KDYŽ(JE.ČISLO(E5:Q5);(E5:Q5);0)*(MOD(SLOUPEC(E5:Q5)-4;6)=1))<>0;POČET(E$3:E4)=POČET2(H$3:H4));SVYHLEDAT(9,99999999999999E+307;B$3:B4;1);"")

v buňce B5.

7. Ano, máte pravdu, zapomněl jsem sem napsat že mi to hází chybu ...sešit obsahuje cyklický odkaz...
Myslel jsem že bude stačit napsat co jsem napsal do dotazu tj.

ale nefunguje, protože je v buňce B5, tj. na stejném řádku. Když ho dám na jiný řádek funguje.

Myslel jsem že to bude jasné.

8. Čekám odpověď, tohle nebudu číst, ale kratším slohem to popsat neumím.

9. Snad jsem to popsal dost podrobně. Pokud to bude stále málo informací, už nevím co bych k tomu napsal.

Rozumiem tomu dobre, že stačí, ak v jednej z x-tých buniek rozsahu E÷Q bude číslo od 0 do 10 a v tom prípade bude v bunke B aktuálneho riadka zapísané najbližšie vyššie uvedené číslo v stĺpci B (pričom ono číslo udáva číslo predchádzajúceho riadka, v ktorom bola splnená podmienka pre ono predchodzie pole E÷Q?)

Pokiaľ platí moja predošlá odpoveď, tak tu máš výsledok (ktorý naplníš ako CSE do bunky B2 a potiahneš toľko nadol, koľko potrebuješ):
=IF(OR(IF(ISNUMBER(E2:Q2)*((E2:Q2)>0)*((E2:Q2)<10);1;0)*(MOD(COLUMN(E2:Q2)-4;6)=1));MAX(ROW($B$1:INDIRECT("B"&ROW()-1))*(($B$1:INDIRECT("B"&ROW()-1))<>""));"")

Čo to robí?:
Ak aspoň v jednej z x-tých buniek v rozsahu stĺpcov E až Q aktuálneho riadka je číslo, ktoré je v intervale (0;10), tak výsledkom v bunke B aktuálneho riadka bude číslo riadka, v ktorom je toto všetko splnené pre predošlý prípad

V prílohe máš ukážku. Toľko by si mohol dokázať, aby si aspoň natvrdo dokázal takto demonštrovať požiadavku...
Inak, je dosť drsné napísať, že si to po sebe ani nebudeš čítať, či je to zrozumiteľné. To Ti naša práca na rade pre Teba ani nestojí za to, skontrolovať po sebe zrozumiteľnosť a presnosť textu?

Ak by sa Ti nechcelo ani prekladať funkcie, tak aj to Ti posielam:

Anglická verzia:
=IF(OR(IF(ISNUMBER(E2:Q2)*((E2:Q2)>0)*((E2:Q2)<10);1;0)*(MOD(COLUMN(E2:Q2)-4;6)=1));MAX(ROW($B$1:INDIRECT("B"&ROW()-1))*(($B$1:INDIRECT("B"&ROW()-1))<>""));"")

Česká verzia
=KDYŽ(NEBO(KDYŽ(JE.ČISLO(E2:Q2)*((E2:Q2)>0)*((E2:Q2)<10);1;0)*(MOD(SLOUPEC(E2:Q2)-4;6)=1));MAX(ŘÁDEK($B$1:NEPŘÍMÝ.ODKAZ("B"&ŘÁDEK()-1))*(($B$1:NEPŘÍMÝ.ODKAZ("B"&ŘÁDEK()-1))<>""));"")

A to som pozrel po sebe ešte i druhýkrát... aj keď... zaslaný príklad to preloží automaticky...
Opakujem: zadať ako maticový vzorec!

robert13 napsal: Inak, je dosť drsné napísať, že si to po sebe ani nebudeš čítať, či je to zrozumiteľné. To Ti naša práca na rade pre Teba ani nestojí za to, skontrolovať po sebe zrozumiteľnosť a presnosť textu?

8. Čekám odpověď, tohle nebudu číst, ale kratším slohem to popsat neumím.

To jsme se nepochopily, já to myslel tak, že mi někdo napíše, že ten můj sloh někdo číst nebude a napíše mi že to je moc dlouhý a číst to nebude. Pokud to bylo pochopeno jinak tak se omlouvám.

Jinak děkuji jdu to vyzkoušet.

To sme sa naozaj nepochopili, takže beriem späť...
Odvolávám, co jsem odvolal a slibuji co jsem slíbil... :-D
Naozaj neviem, či si chcel mať v stĺpci B to, čo som tam dal, alebo tam má byť nejaký výsledok vyplývajúci z poľa E÷Q z posledného vyššieho riadka, spĺňajúceho kritériá...
Ale myslím, že už sme aspoň bližšie...

Súhlasím s Dwaynem, nepíšeš, či sa vyhodnocuje, či sú všetky x-té bunky v poli E÷Q riadka prázdne alebo stačí, pokiaľ je jedna prázdna.
Potom v bode 5 píšeš, že je tam akékoľvek číslo... kde? V súčte? Alebo v tých x-tých bunkách riadka? Má byť súčet medzi 0 a 10 alebo tie jednotlivé bunky? Všetky x-té v riadku?

Ako nájdeš riadok najbližšie vyššie vyplnenej bunky v stĺpci B?:
Pokiaľ sa nechceš zacykliť, nemôžeš do vzorca zahrnúť rozsah, v ktorom sa nachádza bunka, v ktorej má byť výsledok. Preto vymyslíš vyhodnocovanie, ktoré bude dynamicky poskytovať rozsah len po predošlý riadok.
Do bunky B2 napíš vzorec:
=IF(AND(D2>0;D2<10);MAX(ROW($B$1:INDIRECT("B"&ROW()-1))*(($B$1:INDIRECT("B"&ROW()-1))<>""));"")
Zadaj ho ako CSE (Ctrl+Shift+Enter, t.j. maticový vzorec) a potiahni nadol.

Tento vzorec vyhodnocuje, či je v bunke D2 hodnota v intervale (0;10) a keď áno, v bunke stĺpca B bude uvedené číslo najbližšieho vyššieho riadka v stĺpci B, v ktorom bola splnená podmienka, že v bunke D toho riadka bude číslo v intervale (0;10).
Bunku D som zaviedol ako pomocnú, kvôli tomu, že stále nevieme vyhodnotenie poľa E÷Q. Pokiaľ budeme vedieť, ako vyhodnotiť pole E÷Q, tak týmto vyhodnotením sa nahradí odkaz na bunku D vo vzorci

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