Gå til innhold

LookUp-formel


Anbefalte innlegg

Holder på med et lite prosjekt, men har satt meg fast. Håper noen har mulighet til å hjelpe.

 

Hva jeg ønsker å gjøre er å lage en formel som søker gjennom, og henter ut et spesifkk part av en celle som har fellestrekk fra en database av navn. Lettest forklart gjennom et eksempel, saa har lagt et ved.

 

I feltet "description" er det en hel setning, som inneholder et navn. Har testet med lookup-formel til å hente ut resten av navnet fra "sheet", og deretter sette inn riktig cost center til gitt navn.

Får det til om bare navnet står alene i description, men i mitt tilfelle er dette dessverre ikke mulig.

 

 

 

 

 

eksempelProblem.xlsx

Lenke til kommentar
Videoannonse
Annonse

Er sikkert en måte å gjøre det på med formler, men hvis VBA er en mulighet så kan du mappe dette til en shape:

 

Note; tar ikke høyde for sammensatte ord slik som "HRG-nordmann's" som i filen din, men det kan gjøres ved noen flere loops.

 

 

 

Sub main()
   
    Dim resultTable As ListObject
    Dim searchTable As ListObject
    
    Set resultTable = ActiveSheet.ListObjects("ResultTable")
    Set searchTable = Sheets("Name").ListObjects("DataTable")
    
    Dim resultWords() As String
    Dim searchWords() As String
    
    Dim searchValue As String
    Dim resultValue As String
    
    For i = 1 To resultTable.Range.Rows.Count
        resultWords = Split(resultTable.Range.Cells(i, 2))
        
        For Each res In resultWords
            resultValue = replaceData(res)
                
            For j = 1 To searchTable.Range.Rows.Count
                searchWords = Split(searchTable.Range.Cells(j, 2))
                
                For Each sea In searchWords
                    searchValue = replaceData(sea)
                        
                    If LCase(resultValue) = LCase(searchValue) Then
                        resultTable.Range.Cells(i, 4) = searchTable.Range.Cells(j, 4)
                    End If
                Next sea
            Next j
        Next res
    Next i
End Sub

Private Function replaceData(text) As String
    Dim val As String
    val = replace(text, ",", " ")
    val = replace(val, ".", " ")
    val = replace(val, "'", " ")
    val = replace(val, "-", " ")
    val = replace(val, "_", " ")
    replaceData = replace(val, " ", "")
End Function

 

 

eksempelProblemMacroFix.zip

Endret av stelar7
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...