22. september 2010 - 15:29Der er
23 kommentarer og 1 løsning
INDEKS med to gange SAMMENLIGNING (inkl. MINDSTE) eller?
Mit regneark ser således ud: [code] Ark1 Kolonne A (vare) Kolonne B 1 Hårtørrer 2 Badebold 3 Giraf 4 5 Billigste vare: Hårtørrer ___________________________________________
Ark2 Kolonne A (vare) Kolonne B (pris) 1 Hårtørrer 10 2 Badebold 25 3 Giraf 42 [/code] Jeg ønsker ét (og kun ét) felt (B5) der beregner hvilket af felterne i Ark1!A:A der har den mindste værdi jf. Ark2. I ovenstående tilfælde skal feltet altså returnere 'Hårtørrer'.
Jeg vil IKKE have de enkelte priser i Ark1.
Jeg har forsøgt mig frem med forskellige funktioner som INDEKS/SAMMENLIGNING osv., men kan ikke rigtig greje den. Det er sikkert simpelt :)
hvis du bruger excel, er der funktionen "mindste" i excel 2007 Den kunne du så kombinere med lookup funktionen - den hedder lopslag såvidt jeg husker. For overskuelighedens skyld, kan du lave en celle med "mindste" formlen og så en der med udgangspunkt i resultatet - bruger lopslag til at se hvilken vare der svarer til den fundne værdi
(overvej hvad der skal ske hvis der er flere varer med den samme lave værdi)
Når de to formler virker, bliver det mere overskueligt at samle dem til een formel vh
=INDEX(A1:B3;MATCH(SMALL(B1:B3; 1);B1:B3;0);1) vil fungere - men det kræver igen at jeg har en kolonne med LOPSLAG i Ark1 (da der er flere end de 3 varer i Ark2).
Ah - jeg havde ikke opfattet at der var forskel på varerne i ark 1 og 2 (det fremgår ikke af eksemplet og teksten havde jeg vist fået skimmet lige hurtigt nok :o)
Interessant problemstilling, men jeg tror ikke det er så simpelt - så nu spørger jeg bare dumt: hvorfor kan/vil du ikke have priserne i ark 1 i en skjult kolonne?
Alternativt, ville det være en løsning for dig at det blev lavet i VBA? Og bare for at få skåret det fuldstændig ud i pap for mig: - Varerne i ark A vil være en delmængde af varerne i ark B, antager jeg? - Kan man forvente at de står i samme rækkefølge eller kan de stå i vilkårlig orden?
#8 Jeg har overvejet det her til aften - alternativt i et tredje ark. Synes bare ikke det er optimalt. (der er rigtig meget data i mit regneark i forvejen).
#9 Jeg vil helst undgå VBA, hvis det er muligt, da jeg meget gerne vil kunne overføre det til Google Spreadsheet på et senere tidspunkt. Så hvis det kan holdes til funktioner er det at foretrække.
Og ja, beklager hvis det ikke var klart nok i min første post :) - varer i Ark1 er en delmængde af varer i Ark2, og de står ikke nødvendigvis i samme rækkefølge desværre.
Og så i øvrigt fordi at det er første gang jeg er stødt på at jeg ikke umiddelbart kan lave en beregning i én omgang (én celle) i Excel. Jeg må bare vide om det er muligt :)
Mit bud er at det ikke kan lade sig gøre med en enkelt formel i en enkelt celle - når der ikke er lige mange rækker og de står i vilkårlig orden, vil jeg mene at der skal nogle "værktøjer" til, man ikke har i Excel - noget a la "inner join" Men jeg vil meget gerne se løsningen hvis jeg tager fejl :o)
Anlus formel virker upåklageligt. Den skal blot oversættes til dansk: =INDEKS(Ark2!$A$1:$A$3;SAMMENLIGN(MIN(Ark2!$B$1:$B$3);Ark2!$B$1:$B$3;0)) Husk at bruge Ctrl, Shíft og Enter ved indtastning
Glem det med Ctrl, Shíft og Enter. Det virker også ved normal indtastning
Synes godt om
Slettet bruger
23. september 2010 - 01:10#15
Måske denne matriksformel (omend jeg ikke er sikker): =MIN(IF((Sheet2!A1:A10=Sheet1!A1)+(Sheet2!A1:A10=Sheet1!A2)+(Sheet2!A1:A10=Sheet1!A3);Sheet2!B1:B10))
Oversæt IF og Sheet til HVIS og Ark, hvis du bruger dansk Excel.
Jeg kan, som anlu skriver i #12, tænke mig til at det er et forholdsvist simpel query i f.eks. SQL (ved brug af joinede tabeller), jeg kan ikke forstå det ikke er muligt i Excel :)
#16 Det giver et forkert resultat til at starte med - det vil finde lavest værdi på tværs af alle varerne - og ikke de 3 varer i Ark1
Ja, elegant ser det ikke ud, men med følgende formel virker det, når der ikke er mere end 3 eksempler på sheet 1: =OFFSET(A1;IF(VLOOKUP(A1;Sheet2!$A$1:$B$8;2;FALSE)=MIN(VLOOKUP(A1;Sheet2!$A$1:$B$8;2;FALSE);VLOOKUP(A2;Sheet2!$A$1:$B$8;2;FALSE);VLOOKUP(A3;Sheet2!$A$1:$B$8;2;FALSE));1;IF(VLOOKUP(A2;Sheet2!$A$1:$B$8;2;FALSE)=MIN(VLOOKUP(A1;Sheet2!$A$1:$B$8;2;FALSE);VLOOKUP(A2;Sheet2!$A$1:$B$8;2;FALSE);VLOOKUP(A3;Sheet2!$A$1:$B$8;2;FALSE));2;3))-1;)
Synes godt om
Slettet bruger
24. september 2010 - 07:42#19
Jeg prøver igen. Følgende ser for mig ud til at virke, dog kun hvis der ikke er gengangere af priserne.
Jeg har set at du har accepteret forslaget i #18, men hvad er der galt med #19? Har du indtastet som matriksformel?
Det ville være rart med bare en lille indikation af, hvad du konkret mener med "#19 kan jeg ikke få til at virke". Med den givne respons har jeg jo ingen mulighed for at blive klogere.
Jeg havde indsat formlen i Sheet2 (hvorved det virkede fint, også uden det manglende arknavn). Men du har selvfølgelig ret i at formlen skulle have stået i Sheet1.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.