Função SE com múltiplas escolhas em uma célula

Função SE com múltiplas escolhas em uma célula

Tenho alguns dados que são respostas a um dos meus formulários de perguntas.

Algumas perguntas podem ter múltiplas respostas. Por exemplo:

Qual é o seu hobby?

  1. Viajando
  2. filmando
  3. Esporte
  4. Dançando

Cada resposta tem seu próprio número (como mostrado acima).

ou seja, 1 é para viagens, 2 para filmagens, etc.

Algumas células têm múltiplas respostas.

Por exemplo: a célula A3 tem 1,3,4 dentro. Os números são separados por vírgulas.

Em outra planilha Excel estou escrevendo a tabela com respostas que são representadas não como números, mas como nomes (palavras). Com respostas únicas é fácil fazer pela função SE:

IF(A1=1,"Traveling",IF(A1=2,"Filming",IF(A1=3,"Sport",IF(A1=4,"Dancing","Error"))))

Mas com múltiplas respostas, tenho um problema. Como separar os números, para que o Excel entenda, que a célula A3 tem 3 respostas: Viajar(1), Esporte(3) e Dançar(4)?

Responder1

Aqui está uma solução simples, com sua 1,3,4string na célulaA1a seguinte fórmula retornará Travelling,Sport,Dancing, conforme necessário:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,1,"Travelling"),2,"Filming"),3,"Sport"),4,"Dancing")

Nota: este método (o uso SUBSTITUTEpode ser repetido até no máximo o número 9. Embora eu não aconselhe isso porque ficará um tanto ilegível.

Responder2

Tente usarPROCURARlike IF(SEARCH("1",A1),"Traveling")em vez de IF(A1=1,"Traveling")e assim por diante (por exemplo IF(SEARCH("3",A1),"Sport"))

Responder3

Tente o seguinteFunção definida pelo usuário (UDF):

Public Function MultiReturns(sIN As String) As String
    Dim i As Long

    nums = Array("1", "2", "3", "4")
    lets = Array("Traveling", "Filming", "Sport", "Dancing")

    MultiReturns = ""
    If sIN = "" Then Exit Function

    ary = Split(Replace(sIN, " ", ""), ",")

    For Each a In ary
        For i = LBound(nums) To UBound(nums)
            If a = nums(i) Then MultiReturns = MultiReturns & "," & lets(i)
        Next i
    Next a

    MultiReturns = Mid(MultiReturns, 2)
End Function

insira a descrição da imagem aqui

Funções definidas pelo usuário (UDFs) são muito fáceis de instalar e usar:

  1. ALT-F11 abre a janela VBE
  2. ALT-I ALT-M abre um novo módulo
  3. cole o material e feche a janela do VBE

Se você salvar a pasta de trabalho, a UDF será salva com ela. Se você estiver usando uma versão do Excel posterior a 2003, deverá salvar o arquivo como.xlsmem vez de.xlsx.

Para remover a UDF:

  1. abra a janela VBE como acima
  2. limpar o código
  3. feche a janela do VBE

Para usar a UDF do Excel:

=MultiReturns(A1)

Para saber mais sobre macros em geral, consulte:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

e

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

e para obter detalhes sobre UDFs, consulte:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

As macros devem estar habilitadas para que isso funcione!

informação relacionada