Just nu i M3-nätverket
Gå till innehåll

Fel hämta data m VLOOKUP


solbulle

Rekommendera Poster

Nu har jag ytterligare ett problem som jag inte riktigt fattar varför det uppstår.

 

Jag har ett blad från vilket jag hämtar data med hjälp av VLOOKUP,

Det har fungerat bra vid test, men när jag prövar fler ariklar kan den inte matcha min "sökning", jag trodde jag löst det med TRIM, men då hittar den inte dom värden jag hittade tidigare.(?)

 

Jag antar att det kan vara formateringen av mina celler i den kolumn jag skriver in värden saom VLOOKUP söker på som är fel.

 

Jag vil helst slippa att, manuellt, röra bladet där datan hämtas från.

 

Någon ide som kan vara fel? GÅr det att lösa felet "direkt" eller kan man lägga in ngt sorts script som kollar vad man ska göra/hämta?

 

[inlägget ändrat 2002-01-10 00:59:55 av solbulle]

Länk till kommentar
Dela på andra webbplatser

 

YES! Jag löste det:

 

=IF(A15<>0;VLOOKUP((IF(ISTEXT(A15);A15;TRIM(A15)));Priser!$B$8:$C$212;2;FALSE);"")

 

Felet bestod i att kolumnen där jag hämtade datan var blandad text/sifferceller.

 

 

 

Länk till kommentar
Dela på andra webbplatser

Antag att du i cellerna A1 till A5 har följande värden:

A1 5

A2 3

A3 7

A4 6

A5 4

 

Om du vill hitta talet 3 (i cell A2) skriver du =LETARAD(3;A1:A5;1;FALSKT). Första argumentet är talet du vill hitta, andra argumentet är sökområdet, tredje argumentet anger första kolumnen och fjärde argumentet (FALSKT) anger två saker. Om det är FALSKT behöver inte värdena vara sorterade, men då måste det värde du söker efter finnas, annars får du att värdet saknas. Om det är SANT måste värdena vara sorterade och då söker den upp det värde som ligger närmast. Om du har engelsk Office skriver du =VLOOKUP(3;A1:A5;1;FALSE) i stället.

 

Länk till kommentar
Dela på andra webbplatser

 

Hallå, där ser man, inte bara jag som är vaken. Som du ser har jag precis löst det, men stort tack ändå.

 

 

 

Länk till kommentar
Dela på andra webbplatser

Japp, men snart dags att lägga sig. Min lösning förutsätter dock att du enbart har en typ (tal). Om du hade angivit den informationen hade det blivit heeeelt annorlunda 8)

 

Länk till kommentar
Dela på andra webbplatser

 

Jo, det var det jag försökt förklara i min första fråga, och tyvärr inser jag nu att problemt inte är löst. Just eftersom det är både text och tal jag vill jämföra mot, så min fråga kvarstår.

 

Men nu går i alla fall jag o lägger mig.

God Natt.

 

 

 

Länk till kommentar
Dela på andra webbplatser

Sover folk aldrig?

 

Tyvärr fungerar inte det, excel klagar på koden.

 

Kanske man kan stuva om i koden?

Jag försöker.

 

(red. svammlade nog lite mycket...)

 

[inlägget ändrat 2002-01-10 09:24:20 av solbulle]

Länk till kommentar
Dela på andra webbplatser

solbulle,

 

Det är därför inte svaren alltid blir helt korrekta!

 

Se efter om följande "duger":

=IF(A15<>0;VLOOKUP(IF(OR(ISTEXT(A15);ISNUMBER(A15));A15;TRIM(A15));Priser!$B$8:$C$212;2;FALSE);"")

 

Eller då i svensk tappning:

=OM(A15<>0;LETARAD(OM(ELLER(ÄRTEXT(A15);ÄRTAL(A15));A15;RENSA(A15));Priser!$B$8:$C$212;2;FALSKT);"")

 

Mvh

Dennis

http://www.xldennis.com

 

Länk till kommentar
Dela på andra webbplatser

 

Hmm, koden fungerar såtillvida (ett ord?) att den fungerar i cellen, men den klarar inte riktigt av det jag vill att den skall göra. Kanske har jag förklarat dåligt.

Det är alltså cellen jag HÄMTAR som kan vara i både text eller nummerformat, men som jag ser det borde det gå med din formel.

Om man hårdkodar med antingen trim el. inte så fungerar det!?!

 

 

 

Länk till kommentar
Dela på andra webbplatser

solbulle,

 

Såvitt jag har förstått så är det uppslagsvärdet i cellen A15 det rör sig om:

 

SÅ här ser logiken ut i formeln:

- Det får ej anta värdet 0

- Är det text hämtas värdet

- Är det tal hämtas värdet

- Är det ??? ska det värdet rensas från

skräptecken.

 

Här brister logiken - varför ett bättre förfarande är:

 

=IF(ISTEXT(A15);TRIM(A15);A15)

 

Mvh

Dennis

http://www.xldennis.com

 

Länk till kommentar
Dela på andra webbplatser

Nja, jag har som sagt svårt att förklara mig, problemet är kanske enklare än vad jag tror.

 

1. Jag vill hämta data från ett annat blad med hjälp av VLOOKUP.

2. Detta vill jag göra genom att i en cell, A15, fylla i ett värde (numeriskt).

3. Första IF-satsen kikar om det överhuvudtaget är ifyllt något värde jag vill kolla upp, annars skriv blankt.

4. Om något i A15 så: VLOOKUP tittar efter mitt ifyllda värde i ett annat blad. (Priser)

5. I det område(en kolumn) VLOOKUP tittar i efter mitt numeriska värde från (A15) så är cellerna, eller dess värden blandade text/numeriskt.

Det är däri mitt problem består, så som jag förstår det.

 

Kör jag min ursprungliga formel:

 

=IF(A15<>0;VLOOKUP(A15;Priser!$B$8:$C$212;2;FALSE);"")

 

Fungerar så länge det är numeriska värden i det ANDRA bladet.

 

Skriver jag:

 

=IF(A15<>0;VLOOKUP(TRIM(A15);Priser!$B$8:$C$212;2;FALSE);"")

 

Så funkar det med dom celler som innehåller textvärden.

 

Min tanke var alltså att på något sätt göra en "enkel" IF-sats på detta men det verkar som om det är klurigare än väntat.

 

Till saken hör att värdena det handlar om är ALLTID ett fyrsiffrigt nummer, typ 1234.

 

Den enklaste lösningen ter sig iofs till att se till att ändra alla celler/värden i det "andra" bladet, Priser, till numeriskt, men då går ju mycket av vitsen med användarvänlighet smat smidighet förlorat om man alltid manuellt skall "fixa" till listorna.

 

Länk till kommentar
Dela på andra webbplatser

Har jag förstått det rätt om det är på följande sätt.

 

Du skriver in ett tal i A1 (tex 1111). Du vill testa om det värdet (1111) finns i B8 till B12. Om det finns vill du visa värdet i motsvarande cell i C8 till C12. Dvs om 1111 finns i B11 vill du visa värdet som finns i C11.

 

Stämmer detta eller är jag ute och cyklar?

 

Länk till kommentar
Dela på andra webbplatser

Stämmer bra, med det tilägget att:

"Du skriver in ett tal i A1 (tex 1111). " (=Blad1)

 

Finns i mitt arbetsblad. Och: "B8 till B12. " Är i ett annat arbetsblad. (=Blad2)

 

Och sen vill jag då:

"visa värdet i motsvarande cell i C8 till C12." (=Blad2)

 

Det nuvarande egentliga problemet är att jag kan skriva in tex "1111" och det står även "1111" i cellen jag jämför med MEN ibland står det som nummer ibland står det som text. (Så som jag har uppfattat det.)

 

Tex kör jag: =ISTEXT(B10) i Blad2 får jag på en del celler TRUE, på en del celler FALSE fast det i princip kan stå 1111 i båda cellerna. -Eller kanske rättare sagt 1110 i en cell, 1111 i en annan. Aldrig två lika värden.

Jag blir inte klok på det här.

 

 

 

Länk till kommentar
Dela på andra webbplatser

Ack, ack, ack... med den informationen var det inga problem att förstå det. Prova följande:

=IF(A15<>0;IF(ISTEXT(VLOOKUP(A15;Priser!$B$8:$C$212;2;FALSE));VLOOKUP(A15;Priser!$B$8:$C$212;2;FALSE);VLOOKUP(TRIM(A15);Priser!$B$8:$C$212;2;FALSE));)

 

Kan det bli enklare??? (förmodligen)

 

Länk till kommentar
Dela på andra webbplatser

 

Super, det där fungerade kanon.

 

Jag sa ju att det inte var svårt... ;)

 

(Tycker iofs att jag förklarade så bra hela tiden...)

Tack än en gång till alla som engagerar sig.

 

 

Länk till kommentar
Dela på andra webbplatser

Bra att det till sist (!) löste sig.

 

Kan det bli enklare??? (förmodligen)

 

Vi kan ju alltid börja laborera med olika alternativ och sedan räkna antal tecken varje alternativ har MEN din lösning fungerar ju alldeles utmärkt - Bra!

 

 

Mvh

Dennis

http://www.xldennis.com

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...