Permalänk
Medlem

Hjälp med funktion i Excel!

Tjena!
Tänkte att någon här säkert kan hjälpa mig med ett problem jag har i Excel.

"REGNR" MÄRKE ÅRSMOD FÄRG UTRUSTNING ANTAL_MIL PRIS
ATD406 Audi 100 Avant 86 grön 7 500 82 000 kr
TLP751 Audi 1002.3 Avant 88 svart sollucka klim 9 300 118 900 kr
FCB810 Audi 80 1.9E 87 blå 12 000 76 000 kr
CPZ489 BMW 316i 92 ljusblåm clås sollucka komf 500 157 900 kr
YXI572 BMW 316i 91 vit clås sollucka 800 150 000 kr
OOB692 BMW 318i 88 vit 4 300 80 000 kr
BPU864 BMW 318i 89 vit 7 200 85 000 kr
FRB561 BMW 320i 91 silverm lyxutr 1 200 219 500 kr
DBL951 Opel Kadett Caravan 88 vit drag 4 800 49 900 kr

Såhär ser då mitt excel ut och frågan som lyder är då:

"Du blir påkörs av en bil som sedan smiter. Du hann se att den var vit, att andra bokstaven
i registreringsnumret var B och näst sista siffran var 5. Vilket märke var det på bilen ?"

Hur returnerar jag bilens märke? Jag kan inte lyckas hitta någon funktion som först letar upp alla dessa kriterier och sedan returnerar bilens märke/alternativt vilken cellrad som uppfyller kriterierna.

tack!

Permalänk
Medlem

Skicka över excel dokumentet till access, skulle iaf jag gjort.

Visa signatur

Moderkort ASUS RAMPAGE IV EXTREME LGA-2011 CPU Intel Core i7 3930K
GPU ASUS GeForce GTX 580 1536MB Matrix Platinum Minnen Dominator GT Quad 16GB DDR3 PC3-17000 2133MHz Chassi Fractal Design Define XL Svart Ljud Creative X-Fi Titanium Fatal1ty Pro PSU Cooler Master Silent Pro Gold 1000W
CPU kylare Corsair H80 Hydro

Permalänk
Skrivet av zebi:

Jag kan inte lyckas hitta någon funktion som först letar upp alla dessa kriterier och sedan returnerar bilens märke/alternativt vilken cellrad som uppfyller kriterierna.

Är det rimligt att en sådan unik funktion skulle finnas i excel? Om inte, är då kanske meningen med din skoluppgift att man ska ska lösa programmet med en funktion utan att använda flera funktioner?
Där det finns if, and or etc att bugga funktioner av.

Visa signatur

[Core i7-3930K med 32GB ram, 2*256GB SSD] & [Core i7 3770K med 16 GB RAM, 256GB SSD] som tillsammans har ett [HD 5850 1GB] och 3st 24".

Permalänk
Medlem

Låter lite som en skoluppgift och det är säkert meningen att du ska lösa den själv.
Det enklaste vore en liten kodsnutt i VBA men det går väl att lösa på några olika sätt utan. Du har inte skrivit om allt måste ligga i en cell. Jag antar dessutom att texten är placerad i kolumn A och inte uppdelad.

Mha funktionerna SEARCH("*vit*";A1;1) och SEARCH("*B6*";A1;1) kan du kolla om en cell innehåller det du vill åt.
Exempelvis kan du i kolumnen B skriva =SEARCH("*vit*";A1;1)&SEARCH ("*B6*";A1;1) och fylla på neråt för alla rader.
Den returnerar ett fel om den inte finner texten, så för att få det lite snyggare kan du använda =ISERROR(ovanstående uttryck)
Du bör då få en B-kolumn som ser ut:
TRUE
TRUE
TRUE
...
FALSE

Därefter kan du använda MATCH för att komma på i vilken rad FALSE finns och INDEX för att få ut texten i den cellen.
=MATCH(FALSE;B1:B9;0)
=INDEX(A1:A9;ovanstående uttryck;1)

Nu har du raden med bilen och vill få ut bilmärket som står mitt i texten.
mha FIND finner du positionen för mellanrum och mha MID tar du ut en del av en sträng.

=FIND(" ";textsträngen;1) finner första mellanrummet
=FIND(" ";textsträngen;FIND(" ";textsträngen;1)+1) finner andra mellanrummet genom att flytta startpositionen efter första

=MID(textsträngen;FIND(" ";textsträngen;1);FIND(" ";textsträngen;FIND(" ";textsträngen;1)+1)-FIND(" ";textsträngen;1))
Den klipper ut från textsträngen och startar där du fann första mellanslaget och slutar vid andra mellanslaget (som är positionen för andra minus positionen för första).

Detta blev en fruktansvärt lång beskrivning
Uttrycket är i alla fall:

=MID(INDEX(A1:A9;MATCH(FALSE;D1:D9;0);1);FIND(" ";INDEX(A1:A9;MATCH(FALSE;D1:D9;0);1);1);FIND(" ";INDEX(A1:A9;MATCH(FALSE;D1:D9;0);1);FIND(" ";INDEX(A1:A9;MATCH(FALSE;D1:D9;0);1);1)+1)-FIND(" ";INDEX(A1:A9;MATCH(FALSE;D1:D9;0);1);1))

(TRUE TRUE FALSE TRUE ligger i kolumn D)

Visa signatur

Solen i africa! Hjälp snabbt. Tävling i klassen!
Det var High noon.
Om solen i Africa en truckförare kommer från East till Weast på huvudvägen. och exact vid eqvatorn vid Africa. Landskapet är totalt slät. På en tidpunkt var solen så ett par telestolpar gjorde så att det blev skugga.
3 gissar jag på, men kan inte förklara?

Permalänk
Medlem

tack! skall prova detta

Skrivet av glemmy:

Låter lite som en skoluppgift och det är säkert meningen att du ska lösa den själv.
Det enklaste vore en liten kodsnutt i VBA men det går väl att lösa på några olika sätt utan. Du har inte skrivit om allt måste ligga i en cell. Jag antar dessutom att texten är placerad i kolumn A och inte uppdelad.

Mha funktionerna SEARCH("*vit*";A1;1) och SEARCH("*B6*";A1;1) kan du kolla om en cell innehåller det du vill åt.
Exempelvis kan du i kolumnen B skriva =SEARCH("*vit*";A1;1)&SEARCH ("*B6*";A1;1) och fylla på neråt för alla rader.
Den returnerar ett fel om den inte finner texten, så för att få det lite snyggare kan du använda =ISERROR(ovanstående uttryck)
Du bör då få en B-kolumn som ser ut:
TRUE
TRUE
TRUE
...
FALSE

Därefter kan du använda MATCH för att komma på i vilken rad FALSE finns och INDEX för att få ut texten i den cellen.
=MATCH(FALSE;B1:B9;0)
=INDEX(A1:A9;ovanstående uttryck;1)

Nu har du raden med bilen och vill få ut bilmärket som står mitt i texten.
mha FIND finner du positionen för mellanrum och mha MID tar du ut en del av en sträng.

=FIND(" ";textsträngen;1) finner första mellanrummet
=FIND(" ";textsträngen;FIND(" ";textsträngen;1)+1) finner andra mellanrummet genom att flytta startpositionen efter första

=MID(textsträngen;FIND(" ";textsträngen;1);FIND(" ";textsträngen;FIND(" ";textsträngen;1)+1)-FIND(" ";textsträngen;1))
Den klipper ut från textsträngen och startar där du fann första mellanslaget och slutar vid andra mellanslaget (som är positionen för andra minus positionen för första).

Detta blev en fruktansvärt lång beskrivning
Uttrycket är i alla fall:

=MID(INDEX(A1:A9;MATCH(FALSE;D1:D9;0);1);FIND(" ";INDEX(A1:A9;MATCH(FALSE;D1:D9;0);1);1);FIND(" ";INDEX(A1:A9;MATCH(FALSE;D1:D9;0);1);FIND(" ";INDEX(A1:A9;MATCH(FALSE;D1:D9;0);1);1)+1)-FIND(" ";INDEX(A1:A9;MATCH(FALSE;D1:D9;0);1);1))

(TRUE TRUE FALSE TRUE ligger i kolumn D)

Permalänk
Medlem

Har nu försökt mig på och suttit sjlälv men lyckas fortfarande inte lösa det. Vad jag skulle vilja få ut är alltså en LETARADfunktion som då returnerar mitt värde i första kolumnen, problemet här är då att jag inte lyckas använda mig av jokertecken som man kan använda sig av i OMF funktionen, finns det något sätt att kringgå detta?

Såhär skulle det kunna se ut, men jockertecken funkar alltså inte: =LETARAD("*?B??5?*";A137:D201;1)

Permalänk
Medlem

Tror att det är filter du vill ha (Data-fliken -> Filter i den engelska versionen).

Där kan du skapa ett filter för varje kolumn, t.ex. ett "Contains", med ? som wildcard för ett tecken och * för noll eller flera.