Fórmula do Excel para pesquisa inline (apenas na fórmula)

0

Suponha que eu tenha um mapeamento de string para string da seguinte forma:

  • "laranja" = > "balão"
  • "vermelho" = > "bicicleta"
  • "azul" = > "pássaro"

Existe uma fórmula que pode ser construída (digamos em B1) de tal forma que ela irá procurar o valor de outra célula (digamos A1) e remover a referência da string?

Por exemplo, se A1 for "vermelho", B1 seria "bicicleta". Se a cor não existir (por exemplo, "púrpura"), quero enviar uma string como "NOT FOUND".

Eu preciso que isso seja completamente em linha - na própria fórmula, sem gravar os dados em nenhuma célula / tabela.

Além disso, prefira se não for apenas uma grande fórmula If / Then / Else (que é o meu plano punt). Procurando por algo mais conciso.

    
por SFun28 15.02.2018 / 17:43

2 respostas

2
=IFERROR(INDEX( {"balloon","bicycle","bird"}, MATCH("orange", {"red","blue"}, 0)),"NOT FOUND")
    
por 15.02.2018 / 17:56
3

Se você está certo em criar uma UDF ( U ser D efinado F ) dentro do VBA, então você pode fazer algo nos moldes de:

Function dereferenceCell(ByVal strReference As String) As String

    If strReference = vbNullString Then Exit Function

    Select Case strReference
        Case "orange"
            dereferenceCell = "balloon"
        Case "red"
            dereferenceCell = "bicycle"
        Case "blue"
            dereferenceCell = "bird"
        Case Else
            dereferenceCell = "NOT FOUND"
    End Select

End Function

Then in your B1 (or B2 with headers) cell, you can just use the formula =dereferenceCell(A2)

enter image description here

    
por 15.02.2018 / 17:59