Excel FIND.VERT com texto parcial em uma tabela de palavras-chave

0

Eu preciso de uma função específica e acho que ela não existe no Excel padrão e provavelmente preciso de uma função VBA personalizada.

Esta função deve fazer algo como FIND.VERT, mas com pesquisa específica para encontrar texto parcial na string de destino.

=MYCUSTOM.FIND.VERT(A1;KeyTable!A:B;2;SpecialPartialLookup)

Estas são as células alvo (? é o lugar da fórmula):

+----------------------------------+---+
| Text with some keyword somewhere | ? |
| Another test for this function   | ? |
| I'm not very imaginative now     | ? |
+----------------------------------+---+

e uma tabela de palavras-chave:

+------------------+-----------+
|     KEYWORD      |   VALUE   |
+------------------+-----------+
| somewhere        | adverb    |
| test             | noun      |
| very imaginative | adjective |
| very imaginative | dontknow  |
+------------------+-----------+

Isso é o que eu quero:

+----------------------------------+-----------+
|               TEXT               | RESULT    |
+----------------------------------+-----------+
| Text with some keyword SOMEWHERE | adverb    |
| Another TEST for this function   | noun      |
| I'm not VERY IMAGINATIVE now     | adjective |
+----------------------------------+-----------+

(maiúscula é apenas para mostrar o jogo)

É possível?

    
por Tobia 16.12.2015 / 20:48

1 resposta

0

Esta é a resposta:

Function VerticalMatch(Value As Range, Matrix As Range, Index As Integer) As Variant
    Dim baseText As String
    Dim x As Integer
    x = 0
    baseText = LCase(Value.Item(1).Value)


    For Each cell In Matrix.Columns(1).Cells
        x = x + 1
        If baseText Like LCase(cell.Value) Then
            VerticalMatch = Matrix.Columns(Index).Rows(x).Value
            Exit Function
        End If
    Next

    VerticalMatch = CVErr(xlErrNA)

End Function

Isso funciona como Find.Vert, mas usando uma comparação "like".

Portanto, a entrada deve ser preenchida com curingas:

+--------------------+-----------+
|     KEYWORD        |   VALUE   |
+--------------------+-----------+
| *somewhere         | adverb    |
| *test*             | noun      |
| *very imaginative* | adjective |
| *very imaginative* | dontknow  |
+--------------------+-----------+
    
por 17.12.2015 / 09:23