SE função com múltiplas opções em uma célula

2

Eu tenho alguns dados que são respostas para um dos meus formulários de perguntas.

Algumas perguntas podem ter várias respostas. Por exemplo:

What is your hobby?

  1. Traveling
  2. Filming
  3. Sport
  4. Dancing

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

i.e. 1 é para viajar, 2 para filmagem, etc.

Algumas das células têm várias respostas.

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

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

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

Mas com várias respostas, tenho um problema. Como separar números, então o Excel pode entender, que a célula A3 tem 3 respostas: Viajando (1), Esporte (3) e Dançando (4)?

    
por mzfx 21.09.2016 / 11:49

3 respostas

1

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

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

Nota: este método (usando SUBSTITUTE pode ser repetido até um máximo de número 9. Embora eu não recomende isso porque se tornará um pouco ilegível.

    
por 21.09.2016 / 16:32
1

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

    
por 21.09.2016 / 14:13
1

Experimente a seguinte Funçã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

FunçõesDefinidaspeloUsuário(UDFs)sãomuitofáceisdeinstalareusar:

  1. ALT-F11exibeajaneladoVBE
  2. ALT-IALT-Mabreumnovomódulo
  3. coleomaterialefecheajaneladoVBE

Sevocêsalvarapastadetrabalho,aUDFserásalvacomela.SevocêestiverusandoumaversãodoExcelposteriora2003,deverásalvaroarquivocomo.xlsmemvezde.xlsx.

PararemoveroUDF:

  1. abrirajaneladoVBEcomoacima
  2. limpeocódigo
  3. fecheajaneladoVBE

ParausaroUDFdoExcel:

=MultiReturns(A1)

Parasabermaissobremacrosemgeral,consulte:

link

e

link

e para detalhes sobre UDFs, consulte:

link

As macros devem estar ativadas para que isso funcione!

    
por 21.09.2016 / 14:23