< návrat zpět

MS Excel


Téma: Vrácení hodnoty na základě 2 podmínek rss

Zaslal/a 8.4.2021 11:40

Ahoj, prosím o radu jak sestavit vzorec pro vrácení hodnoty na základě dvou podmínek.

Příklad:

V tabulce Prodeje mám ve sloupci A kód zboží a ve sloupci B cenu zboží. V tabulce Ceník je zboží s cenovými hladinami kde ve sloupci A je vždy kód zboží a v dalších sloupcích B - H jsou ceny dle slevových hladin.

No a já bych potřeboval do sloupce C v listu Prodeje napsat vzorec tak, aby našel v listu Ceník např: kód 123456 (Prodeje A5 s cenou 42 (Prodeje B5), kterou najde v ceníku v D5 a vrátí hodnotu pojmenování sloupce z buňky D1 (Cena 3) atd. když vzorec rozkopíruju aby mně to za splnění podmínky shody kódu a ceny vždy vrátilo název cenové hladiny)

Děkuji

Příloha: xlsx50346_vzor.xlsx (10kB, staženo 14x)
Zaslat odpověď >

#050347
avatar
Třeba takto:
=VYHLEDAT(B2;NEPŘÍMÝ.ODKAZ("Ceník!A"&POZVYHLEDAT(A2;Ceník!$A$2:$A$8;)+1&":H"&POZVYHLEDAT(A2;Ceník!$A$2:$A$8;)+1;PRAVDA);Ceník!$A$1:$H$1)
Příloha: xlsx50347_50346_vzor.xlsx (11kB, staženo 10x)
citovat
#050349
elninoslov
Prípadne o kúsok kratší:
=LOOKUP(B2;OFFSET(Ceník!$B$1:$H$1;MATCH(A2;Ceník!$A$2:$A$8;0););Ceník!$B$1:$H$1)
=VYHLEDAT(B2;POSUN(Ceník!$B$1:$H$1;POZVYHLEDAT(A2;Ceník!$A$2:$A$8;0););Ceník!$B$1:$H$1)
citovat
#050351
avatar
Použil a upravil jsem tento vzorec do svých ostrých dat a funguje.

Původní:
=VYHLEDAT(B2;POSUN(Ceník!$B$1:$H$1;POZVYHLEDAT(A2;Ceník!$A$2:$A$8;0););Ceník!$B$1:$H$1)

Upravený:
=VYHLEDAT(J2;POSUN('[Zásoby 8.4.2021.xlsx]List1'!$K$1:$BO$1;POZVYHLEDAT(C2;'[Zásoby 8.4.2021.xlsx]List1'!$A:$A;0););'[Zásoby 8.4.2021.xlsx]List1'!$K$1:$BO$1)

Vypadá to, ale že hledá jen přibližnou nikoli přesnou shodu.

Co s tím?

Díkycitovat
#050353
elninoslov
=INDEX(Ceník!$B$1:$H$1;;MATCH(B2;OFFSET(Ceník!$B$1:$H$1;MATCH(A2;Ceník!$A$2:$A$8;0););0))
=INDEX(Ceník!$B$1:$H$1;;POZVYHLEDAT(B2;POSUN(Ceník!$B$1:$H$1;POZVYHLEDAT(A2;Ceník!$A$2:$A$8;0););0))
citovat
#050354
avatar
Děkuji za úpravu, předěláno do ostrých dat a funguje perfektně.citovat
#050361
avatar
Můžu poprosit ještě o vzorec, který mně vrátí hodnotu (cenu) na základě splnění dvou podmínek (IČ a kód)? Respektive to samé co nyní, ale teď to porovnávalo kód a cenu a vracelo pojmenování sloupce. Já teď potřebuji aby mně to vracelo cenu na základě shody IČ a kódu.
Příloha: xlsx50361_vzor-2.xlsx (10kB, staženo 9x)
citovat
#050362
elninoslov
Maticový vzorec (Ctrl+Shift+Enter):
=INDEX(Ceník!$C$2:$C$8;MATCH(1;(Ceník!$A$2:$A$8=A2)*(Ceník!$B$2:$B$8=B2);0))
=INDEX(Ceník!$C$2:$C$8;POZVYHLEDAT(1;(Ceník!$A$2:$A$8=A2)*(Ceník!$B$2:$B$8=B2);0))

alebo normálny, ale iba pre prípad, že sú zoskupené IČ aj Kódy:
=INDEX(Ceník!$C$2:$C$8;MATCH(B2;OFFSET(Ceník!$B$1;MATCH(A2;Ceník!$A$2:$A$8;0);;COUNTIF(Ceník!$A$2:$A$8;A2));0)+MATCH(A2;Ceník!$A$2:$A$8;0)-1)
=INDEX(Ceník!$C$2:$C$8;POZVYHLEDAT(B2;POSUN(Ceník!$B$1;POZVYHLEDAT(A2;Ceník!$A$2:$A$8;0);;COUNTIF(Ceník!$A$2:$A$8;A2));0)+POZVYHLEDAT(A2;Ceník!$A$2:$A$8;0)-1)

EDIT:
Ešte ma napadol jeden normálny nematicový, keď nemusia byť zoskupené, ale musí byť dodržané, že IČ a Kód nie sú nikdy rovnaké, a dvojica sa v cenníku vyskytuje iba 1x:
=INDEX(Ceník!$C$2:$C$8;MATCH(2;MMULT(COUNTIF($A2:$B2;Ceník!$A$2:$B$8);{1;1});0))
=INDEX(Ceník!$C$2:$C$8;POZVYHLEDAT(2;SOUČIN.MATIC(COUNTIF($A2:$B2;Ceník!$A$2:$B$8);{1;1});0))
citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

ADO DBF/FoxPro

Barth • 11.8. 17:50

Automaticke vlozenie riadku aj v druhom Zosite

danis • 11.8. 17:28

Macro pro leteckou dopravu

Jiří497 • 11.8. 17:15

Macro pro leteckou dopravu

Nosal • 11.8. 13:00

Macro pro leteckou dopravu

Jiří497 • 11.8. 11:45

Macro pro leteckou dopravu

Nosal • 11.8. 8:14

Macro pro leteckou dopravu

Jiří497 • 10.8. 21:35