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

Returnera sista värdet tillsammans med om formel

Rekommendera Poster

Hej 

 

Mitt första inlägg här. Jag har ett litet bekymmer som jag skall försöka förklara. Jag har ett kalkylark med tusentals rader av data. 

Kolumn A

1. Bananer

2. Äpple

3. Päron

4. Persiko

5. Bananer

6. Bananer

 

Kolumn B 

1. 10

2. 12

3. 11

4. 15

5. 11

6. 22

 

I flik2 har jag alla värden ifrån kolumn A uppsatta. 

 

Jag skulle i flik 2 vilja ha en formel som både kollar OM flik 1 kolumn A innehåller ordet Bananer samt att jag då också skulle vilja se det senaste värdet alltså 22 i exemplet ovan. OM det är så att värdet jag har i flik 2 saknas i flik1 kolumn A så vill jag att den returnerar ingenting. 

 

Hoppas ni kan hjälpa mig här. TACK!

 

Formel excel eforum.xlsx

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Du kan få reda på det högsta radnummer som har "banan". Kan kräva olika formler beroende på vilken version av excel du har.

=MAX((Datablad!A:A="banan")*RAD(Datablad!A:A))

eller så här om du vill hämta texten "banan" från tabellen på blad2:

=MAX((Datablad!A:A=A2)*RAD(Datablad!A:A))

I Äldre excel måste du berätta att det är en matrisformel på något sätt:

=produktsumma(MAX((Datablad!A:A=A2)*RAD(Datablad!A:A)))

 

Sen använder du INDEX för att hämta värdet i B-kolumnen för den raden:

=INDEX(Datablad!B:B;MAX((Datablad!A:A=A2)*RAD(Datablad!A:A)))

 

Men, för att kunna dölja de rader som saknar värden får du göra en liten knorr som tvingar fram "rätt" felmeddelande när data saknas.

INDEX(Datablad!B:B;1/(1/MAX((Datablad!A:A=A2)*RAD(Datablad!A:A))))

Lägg in i en OMFEL() formel

=OMFEL(INDEX(Datablad!B:B;1/(1/MAX((Datablad!A:A=A2)*RAD(Datablad!A:A))));"")

 

Om du envisas med att lägga in skräp i din tabell (som mellanslagen i slutet av "äpplen " i ditt exempel) så måste du även städa. Typ:

=OMFEL(INDEX(Datablad!B:B;1/(1/MAX((RENSA(STÄDA(Datablad!A:A))=RENSA(STÄDA(A2)))*RAD(Datablad!A:A))));"")

(det är naturligtvis bättre att städa rådata)

 

Ähh, se bifogad fil

Formel excel från eforum.xlsx

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Men för i H£@€

Jag glömmer ju bort de nya funktionerna hela tiden (kräver uppdaterad 365):

 

Så här kort kan formeln bli:

=XLETAUPP(A2;Datablad!A:A;Datablad!B:B;"";;-1)

"" betyder att den skall lämna tomt om inget hittas och den sista -1 betyder att den skall börja att leta nedifrån. 

 

Men du har fortfarande kvar problemet med "smutsiga" data (dina mellanslag)

Städa båda tabellerna med Sök/ersätt eller kör formeln:

=XLETAUPP(RENSA(STÄDA(A2));RENSA(STÄDA(Datablad!A:A));Datablad!B:B;"";;-1)

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Hmm får det inte att fungera. Slarv av mig att ge ett exempel där det var med mellanslag. Det är inga sådana i rådatan så där känner jag mig trygg och 365 har vi inte så XLETAUPP fungerar inte heller. 

 

Kräver nedan formel att Datablad!B:B att det inte får finnas någon formel som är bakomliggande denna? Måste jag omforma dessa till tal? När jag i min fil som jag tyvärr inte kan dela pga känslig kundinfo så är Datablad!B:B;1 egentligen S kolumnen i filen behöver jag då göra detta till en matris eller nåt? och använda 1an som något kolumnindex eller? 

 

=OMFEL(INDEX(Datablad!B:B;1/(1/MAX((Datablad!A:A=A2)*RAD(Datablad!A:A))));"")

 

Jag har datum på varje rad som kan hjälpa och problemet löste sig med en enkel letarad formel om jag bara valde att filtrera på nyast till äldst i datumkolumnen. Det löser problemet men jag kan dock inte riktigt släppa att jag hade velat ha en snygg formel så jag slapp filtrera varje gång.

 

//Nic

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Plus på att du använder nya Excel-funktioner!

I gamla Excel kan ett knep även vara att skapa en hjälpkolumn i tabellen som tar fram senaste värdet i denna bara. Då slipper man de matrisliknande formlerna som finns i exemplet, minskar komplexiteten i lösningen.

 

Samt alltid bra att formatera som tabell, då kan exempelvis XLETAUPP bli lite renare:

=XLETAUPP(A2;tbFrukt[Frukt];tbFrukt[värde];"";;-1)

och matrisfunktionerna får färre rader att beräkna

=OMFEL(INDEX(tbFrukt[värde];1/(1/MAX((tbFrukt[Frukt]=A2)*RAD(tbFrukt[Frukt]))));"")

fast det vet du redan MH så ingen rättning av ditt, mer en applåd för bra exempel!

👏

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...