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?
- Viajando
- filmando
- Esporte
- 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,4
string 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 SUBSTITUTE
pode 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
Funções definidas pelo usuário (UDFs) são muito fáceis de instalar e usar:
- ALT-F11 abre a janela VBE
- ALT-I ALT-M abre um novo módulo
- 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:
- abra a janela VBE como acima
- limpar o código
- 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!