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

Excel fomel: hitta text returnera ett värde


Tufve

Rekommendera Poster

Hej!

Jag vill hitta en formel som hittar en text i en cell och returnerar en text om den hittar texten jag söker.

Vill kombinera så jag kan söka flera texter i samma sökning.

ex. söka efter

bil,båt,möbler

och returnera

motor,vatten,vila (där motor returneras om bil hittas, vatten om båt hittas etc)

 

Någon som kan hjälpa mig?

 

MVH

Per

 

Länk till kommentar
Dela på andra webbplatser

Oklart lite vad du menar, eller kanske snarare exakt vad du vill få ut och hur.

 

men en enkel sats kan vara denna:

=OM(ÄRFEL(HITTA("båt";A1));"Ingen båt";"Oj, en båt")

 

fast det är nog inte vad du söker.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

Inte riktigt..

Jag vill hitta ett ord i en cell med text i,

exempel "bil" i texten "blabla bil bla bla bla"

om jag hittar ordet vill jag returnera ett värde i formelcellen som är baserat på vad jag hittar i texten, exempel värde för bil blir då "motor".

 

Sen vill jag söka flera ord i samma sökning.

 

Detta pga av att jag har en ca 6500 rader att söka produkttext i där produktmärket ligger i produkttexten, och detta vill jag ha i en separat cell för att lätt sortera efter märke.

 

jag kan ju göra så att true visar sig om ett ord är hittat, men hur får jag den till att söka flera ord i en sökning med olika värden??

 

Hoppas det klargjorde lite..

 

MVH

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Ja du, kanske VBA är en enkel lösning, men samtidigt är det bäst om man kan sköta det genom formler.

 

Men:

HITTA- söker en text inom en cell.

OM kan returnera om ett värde är sant.

ELLER kan fixa så att flera värden kan kollas.

ÄRFEL krävs för att kolla om HITTA hittat en text.

 

fast - om du vill exempelvis söka på båt och returnera vatten samtidigt som du söker efter bild och vill returnera motor och vill ha båda svaren i en cell, ja då kan formlerna bli långa...

 

ja, nä, jag orkar inte just nu...

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

jag får luska lite till, är ju värt att hitta en fin formel till det... lite väl mycket jobb annars :-

 

Tack för hjälpen ändå.

Ha de bra

 

mvh

 

Länk till kommentar
Dela på andra webbplatser

Nu är jag åter här...

 

Men bara för att snabbt tipsa om XLDennis sida där kanske hjälp/inspiration kan ges:

http://www.xldennis.com

 

 

Någon "allmän" formel som kan lösa det åt dig tror jag inte finns. Det är nog en lång OM-HITTA sats som krävs eller lite VBA kod.

Antingen en av typ "FIND-bil-skriv-i-cell-bredvid" eller en funktion med lämpligt antal argument (i par) som söker efter argument ett i cellen och returnar argument två om funnet.

 

Ja, typ denna "dummy"-funktion:

[color="#0000ff"]Function[/color] HITTA_M(target As Range, ParamArray arr() As Variant) As [color="#0000ff"]String[/color]

    [color="#0000ff"]Dim[/color] s As Integer
    [color="#0000ff"]Dim[/color] i As Integer
    [color="#0000ff"]If[/color] ([color="#0000ff"]UBound[/color](arr) Mod 2) = 0 [color="#0000ff"]Then[/color]
        i = [color="#0000ff"]LBound[/color](arr)
        [color="#0000ff"]While[/color] i < [color="#0000ff"]UBound[/color](arr())

            [color="#0000ff"]If[/color] ([color="#0000ff"]InStr[/color](1, target.Text, arr(i)) <> 0) [color="#0000ff"]Then[/color]
                HITTA_M = arr(i + 1)
                [color="#0000ff"]Exit[/color] [color="#0000ff"]Function[/color]
            [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
            i = i + 2

        [color="#0000ff"]Wend[/color]
        HITTA_M = CVErr(1)

    [color="#0000ff"]Else[/color]
        HITTA_M = CVErr(1)
    [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]



[color="#0000ff"]End[/color] [color="#0000ff"]Function[/color]

 

target - cellen du ska söka i

arr - array med par av värden. Värde i paret det som söks efter i target, värde två i paret det som ska returneras. Måste alltid vara par av värden, annars returneras ett felvärde. Likaså returnerar ett felvärde om inget hittas.

exempelvis:

=HITTA_M(A1;"båt";"en båt";"bil";"en bil")

 

Klistra in koden i en modul.

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

Men vad är det för fel på din ursprungliga formel? det är ju bara att plussa ihop ett gäng, t.ex

 

=OM(ÄRFEL(SÖK("bil";A1));"";"motor ")&OM(ÄRFEL(SÖK("båt";A1));"";"vatten ")&OM(ÄRFEL(SÖK("möbler";A1));"";"villa ")

 

osv, dvs ett &OM och standardformeln för varje sak man vill söka. Kommer naturligtvis att ge dubbletter om flera sökord förekommer.

Vill man vara säker på att slippa delar av ord (möbeln billy ger ju träff på bil) så får man tuffa till sökningen med mellanslag, typ:

SÖK(" bil ";

Men då missar man även bilbarnstol osv

 

Länk till kommentar
Dela på andra webbplatser

Jovisst fungerar en lång lång nästlad om, men tycker nog att den blir lite omständig om man säger så. Dessutom har jag ingen aning om hur många artiklar det är som det ska sökas efter.

 

men ja, det fungerar med om så länge det inte blir mer än 256 tecken (?) som jag vill minnas är Excels övre gräns vad gäller en formel. Och mmh, ja billy kommer hittas av min funktion oxo...

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

Jo, men hela grejjen är att den inte behöver vara nästlad. Man bara staplar dom efter varndra. Rätt elegant om man är obtinat "formler är bättre än VBA"-anhängare. Men det är väl ingen i den här tråden :). Det bästa vore om man kunde göra en "VÄLJ" fomel med valfria invärden, men dom fungerar ju bara med tal<30 :-(

 

Länk till kommentar
Dela på andra webbplatser

och ja, det som går att göra utan VBA ska göras utan VBA...

 

Det brukar jag alltid säga, så jag går lite emot min doktrin i denna tråd.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

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