< 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 22x)
Jméno
Kontrola
Text
  b i u s img code url hr   1 2 3 4 5 6 7 8 9 10

#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 15x)
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 16x)
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

Makro smyčka

MilanKop • 19.4. 10:46

Makro smyčka

elninoslov • 19.4. 9:02

Čas od do

elninoslov • 19.4. 8:46

Čas od do

jarek1111 • 18.4. 13:46

Čas od do

lubo • 18.4. 11:13

Čas od do

jarek1111 • 18.4. 8:32

Čas od do

jarek1111 • 18.4. 8:31