Rob.. Postad 17 oktober, 2006 Share Postad 17 oktober, 2006 Hur gör jag när jag vill använda en vlookup med intervall? Exempelvis allt mellan 1-1,15 ska ge en 2 allt mellan 1,16-2,34 ska ge en 5 osv osv Har engelsk excel (xp) [inlägget ändrat 2006-10-17 11:02:58 av R..] Länk till kommentar Dela på andra webbplatser More sharing options...
MH2 Postad 17 oktober, 2006 Share Postad 17 oktober, 2006 Tror inte att Vlookup är rätt verktyg. Om intervallen är helt ojämna så får du nog göra en 3-kolumnig hjälptabell, typ: Min_____Max_____Värde 1_______1,5_______2 1,5_____2,34______5 Sedan använder du en matrisformel, eller Produktsumma för att slå upp värdet (egentligen summera de som uppfyller villkoret). Exempel om hjälptabellen ligger i blad2: =PRODUKTSUMMA((Blad1!A1>Blad2!$A$2:$A$55)*(Blad1!A1<=Blad2!$B$2:$B$55)*(Blad2!$C$2:$C$55)) Eller matrisvarianten {=SUMMA(OM((Blad1!A1>Blad2!$A$1:$A$55)*(Blad1!A1<=Blad2!$B$1:$B$55)=1;Blad2!$C$1:$C$55;""))} ***engelska sa du ju*** =SUMPRODUCT((Blad1!A1>Blad2!$A$2:$A$55)*(Blad1!A1<=Blad2!$B$2:$B$55)*(Blad2!$C$2:$C$55)) {=SUM(IF((Blad1!A1>Blad2!$A$1:$A$55)*(Blad1!A1<=Blad2!$B$1:$B$55)=1,Blad2!$C$1:$C$55,""))} **************** PS, de här formlerna kommer att returnera 0 om dom inte hittar något. PPS Om du har Svensk windows så får du använda ; istället för , som skiljetecken. Även i den engelska formeln. [inlägget ändrat 2006-10-17 13:48:37 av MH2] Länk till kommentar Dela på andra webbplatser More sharing options...
Rob.. Postad 17 oktober, 2006 Trådskapare Share Postad 17 oktober, 2006 Får nu fram siffror, tack! Men jag får många noller fastän dem ligger inom intervallet vad beror det på? En del värden är inte ernbart siffror exempelvis även + och -. Vidare verkar det bli problem när man hamnar precis på intervallsgränsen. [inlägget ändrat 2006-10-17 15:26:21 av R..] [inlägget ändrat 2006-10-17 15:28:35 av R..] Länk till kommentar Dela på andra webbplatser More sharing options...
MH2 Postad 17 oktober, 2006 Share Postad 17 oktober, 2006 Hej. När det gäller intervallgränserna så får du bestämma själv hur det skall hanteras. Exprimentera med < mindre än <= mindre än eller lika med osv Formeln ovan är bara avsedd för att hantera siffror (går liksom inte att säga att en text är större eller mindre än ett tal). Testa att översätta "värdet" till ett tal med hjälp av swe TEXTNUM(A1) eng VALUE(A1) dvs du ersätter Blad1!A1 med VALUE(A1) i din formel Länk till kommentar Dela på andra webbplatser More sharing options...
Rob.. Postad 17 oktober, 2006 Trådskapare Share Postad 17 oktober, 2006 Ok ska testa vidare, men när jag menar värden så syftar jag på hjälptabellens värde dvs 1-1,15= 6+ Det måste väl kunna gå? Länk till kommentar Dela på andra webbplatser More sharing options...
MH2 Postad 17 oktober, 2006 Share Postad 17 oktober, 2006 Ajfan, nej. Den bygger ju på att man summerar värden i tredje kolumnen, inte att man gör ett uppslag (som Vlokup). Måste fundera lite. Borde gå med lite trixande. Länk till kommentar Dela på andra webbplatser More sharing options...
MH2 Postad 17 oktober, 2006 Share Postad 17 oktober, 2006 Det här blir löjligt långt... =INDIRECT("G"&SUMPRODUCT((A1>$E$2:$E$15)*(A1<=$F$2:$F$15)*(ROW($E$2:$E$15)))) Det man gör är att returnera radnumret när villkoren är uppfyllda istället för värdet i 3:e kolumnen ROW() Sen läger vi helt enkelt ihop Texten "G" (den kolumn du vill slå i) med det radnummret och ber excel returnera värdet i cell G INDIRECT("G" & radnummer) Du kan naturligtvis använda index istället: =INDEX(G:G;SUMPRODUCT((A1>$E$2:$E$15)*(A1<=$F$2:$F$15)*(ROW($E$2:$E$15)));0) Orkar inte göra natrisformeln. ************** PS: Om du vill ha ett "öppet" sista intervall (allt större än 10 tex) så måste du fortfarande skriva in ett maxvärde i tabellen. Skriv in ett löjligt högt tal bara. [inlägget ändrat 2006-10-17 17:13:07 av MH2] Länk till kommentar Dela på andra webbplatser More sharing options...
Monshi Postad 17 oktober, 2006 Share Postad 17 oktober, 2006 Jag har en annan metod... enkel som bara den... Skriv upp en lista med dina gränsvärden sorterade. Skriv i kolumnen bredvid de värden du vill erhålla. Dvs i kolumn A skriver du 1, 1.15, 5 osv i kolumn B skriver 0 (värden under 1?), 2, 5 osv Sedan skriver du en Letarad/Vlookup sats som ser ut såhär på engelska: =VLOOKUP(D1,A:B,2,TRUE) där du skriver in ditt värde i D1. Voila - klart! Edit: Oops - missade lite i formeln, ska nog vara rätt nu. Hoppas jag. Ja, du förstår den väl och kan fixa den om den är fel. /T Even when we know we´ll never find the answers, we have to keep on asking questions. [inlägget ändrat 2006-10-17 18:14:52 av Monshi] Länk till kommentar Dela på andra webbplatser More sharing options...
MH2 Postad 17 oktober, 2006 Share Postad 17 oktober, 2006 Nämen va xxxxxx. AAAGggggggghhhhhh. Tänkte inte på att det går att använda TRUE för "sorterad matchning", trots alla gånger man fått obegripliga fel på grund av ett glömt FALSE. Det svider, det svider... <, > < ,> Länk till kommentar Dela på andra webbplatser More sharing options...
Rob.. Postad 18 oktober, 2006 Trådskapare Share Postad 18 oktober, 2006 Hej! Jag fattar inte riktigt, vad menar du med kolumn B. Som det är nu har jag A kolumn med minvärdena o i b kolumnen maxvärdena samt c kolumnen med det värde som intervallet ger dvs A B C 1 1,64 1+ Alltså 1,58(som jag har i d) ska ge 1+. edit haha nu gick det, super! [inlägget ändrat 2006-10-18 09:21:33 av R..] Länk till kommentar Dela på andra webbplatser More sharing options...
Rekommendera Poster
Arkiverat
Det här ämnet är nu arkiverat och är stängt för ytterligare svar.