/ / Prática recomendada de macro do Excel para várias opções na instrução If ou Case - excel, excel-vba, if-statement, pesquisa, vlookup, vba

Melhores Práticas de Macros do Excel para Múltiplas opções em If Statement ou Case - excel, excel-vba, if-statement, lookup, vlookup, vba

Eu tenho vários "Tipos de chamada" (de "Roaming" a "Internacional") e preciso de um vlookup para aplicar a taxa correta, dependendo do tipo em uma macro do Excel.

Qual é a melhor prática para fazer isso?

Se CategoryType = "Roaming" AND País coainted na lista A Então

Se a lista B Então

Eu uso matrizes? Como você verifica se uma string está em uma matriz em uma instrução IF?


Resolvido: usei Case e incluí sub-casos para atribuir uma nova categoria:

Select Case otype
Case "International"
Select Case country
Case "Australia", "China", "Singapore"
ActiveCell.Offset(0, 68).Value = "R01"
Case Else
ActiveCell.Offset(0, 68).Value = "R02"
End Select
End Select

Respostas:

1 para resposta № 1

Você pode usar algo como a seguinte fórmula (fórmula da matriz, use Ctrl + Shift + Enter para aplicar)

=MAX((B4:B7=B10)*(IF(ISERROR(SEARCH(B11,C4:C7)),0,1))*D4:D7)

O único problema é que você pode obter um resultado falso se o país que você está procurando for uma substring de outro país. A única correção para isso seria colocar todos os nomes de países como |France|Canada|UK| e adicione os tubos ao redor da entrada do país de pesquisa.

insira a descrição da imagem aqui


0 para resposta № 2

Também poderia haver outra opção. Ao lidar com esses cálculos, tento evitar colocar vários valores em um único campo. Em vez disso, tento tratá-lo como um banco de dados:

insira a descrição da imagem aqui