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

referenssträng


pallar

Rekommendera Poster

hej!

 

lite knivigare problem här... Har en lista i A1:A1000 som fylls på efterhand med nummer någonting mellan och 1-10000

 

Sedan har jag en referenslista med ett gäng olika tal i B1:B20

 

Det jag skulle vilja få fram i C1 är vilket tal i A1:A1000 som senast matchar ett tal från B1:B20 och returnera det talet.

 

Likt exemplet nedan

 

A B C

1 3 2

1 2

1 5

1 10

3

2

1

1

1

 

Eftersom "2" är det senaste talet i "A" som matchar ett tal i "B" är det et som jag vill få fram i C..

 

Någon som har en lösning på detta?

 

tack!

Länk till kommentar
Dela på andra webbplatser

det blir en trestegsraket.

Alla formler utgår från ditt exempel

 

Steg 1: Hitta sista rad med givet värde på, en matrisformel. Det vill säga kopiera inte måsvingarna utan låt Excel skriva in dem när du matar in formeln via att avsluta inmatningen med CTRL+Shift+Enter.

{ =MAX(($A$1:$A$9=B1)*RAD($A$1:$A$9)) }

kopiera ned utmed dina värden du ska kontrollera.

 

Steg 2: Hitta största raden som har hittats i steg 1

=MAX(C1:C4)

 

Steg 3: Hämta värdet

=INDEX(A1:A9;D1)

 

Tyvärr inget sätt att lösa detta i en enda cell, en formel.

Länk till kommentar
Dela på andra webbplatser

  • 2 veckor senare...

Hej och tack!

 

Om man även skulle vilja få fram i vilke ordning talen finns från "A" om vi använder samma exempel som innan skulle jag alltså i kolumnen "E" vilja få fram vilket tal från "B" som först finns i "A" och vilket som är nästa osv. Alltså i vilken ordning dom kommer i "A". I exemplet ovan skulle då kolumnen "E" Se ut så här..

 

A B C D E

1 3 2......3

1 2.........2

1 5

1 10

3

2

1

1

1

 

 

Tack!

Länk till kommentar
Dela på andra webbplatser

Den var enklare när väl polletten föll ned. Trestegsraket även denna gång.

 

1: Sök talen. PASSA fungerar bra då, skriv exempelvis

=PASSA(B1;$A$1:$A$10;0)

och du får ett tal som svar om värdet i B1 återfinns i A1:A10 eller ett felvärde.

Felvärden måste dock bort. Har du Excel 2007 skriver vi

=OMFEL(PASSA(B1;$A$1:$A$10;0);"")

eller om tidigare version

=OM(ÄRFEL(PASSA(..);"";PASSA(...))

 

2: Sedan ska vi söka reda på vilken som kom först

=MINSTA($E$1:$E$10;RAD())

Notera RAD() - första raden denna funktion ska skrivas på måste detta utryck ge värdet noll. Om formlerna börjar på rad 2 skriver vi

=MINSTA($E$1:$E$10;RAD()-1)

exempelvis.

 

3: Okej, nu har vi de minsta värdena i ordning, då ska de bara hämtas.

=INDEX(A1:A10;F1)

 

Alla formler, kopiera ned så många rader du behöver. Fel behöver dessutom hanteras även i antingen punkt två eller tre.

 

Kan gå att göra detta i färre steg men formlerna blir mer komplexa då så det låter vi bero.

 

Hänger du med i mina steg?

Länk till kommentar
Dela på andra webbplatser

Jag hänger med..

 

Men om man då dessutom vill "sortera" in resterade tal från "B" efter talen från "E" Likt exemplet här i "F" kolumnen. Där övriga tal passas in. Uppskattar hjälpen, när jag försöker mig på dessa själv leder det mestadels till cirkelreferenser.. =(

 

A B C D E F

1 3 2......3 3

1 2 ........2 2

1 5 ........7 7

1 10 .........5

3 7 ..........10

2 6 ...........6

1

1

1

7

1

1

7

2

1

 

 

 

 

Tack!

Länk till kommentar
Dela på andra webbplatser

Nämen Pallar, snart tröttnar jag... du är aldrig nöjd ;)

Det börjar snart luta åt att det kommer att krävas ett makro för att lösa det du vill.

 

men men, hoppas du har Excel 2007 för nu orkar jag inte beskriva mer, ta en titt på arket jag skickat med. Om du inte har Excel 2007 får jag göra om några OMFEL till OM(ÄRFEL();..;..)

tabellsorteingplus.xlsx

Länk till kommentar
Dela på andra webbplatser

Hehe, en sjuka jag lider av :rolleyes:.. Men nu är jag nöjd.. Man knyter in sig i hörn. Sedan blir det bara värre och värre att bygga sig ut..

 

Stort Tack!

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...