Tengo algunos datos que son respuestas a uno de mis formularios de preguntas.
Algunas preguntas podrían tener múltiples respuestas. Por ejemplo:
¿Cuál es tu pasatiempo?
- De viaje
- Rodaje
- Deporte
- Baile
Cada respuesta tiene su propio número (como se muestra arriba).
es decir, 1 es para viajar, 2 para filmar, etc.
Algunas de las celdas tienen múltiples respuestas.
Por ejemplo: la celda A3 tiene 1,3,4 en su interior. Los números están separados por comas.
En otra hoja de Excel estoy escribiendo la tabla con las respuestas que no están representadas como números, sino como nombres (palabras). Con respuestas únicas es fácil hacerlo mediante la función SI:
IF(A1=1,"Traveling",IF(A1=2,"Filming",IF(A1=3,"Sport",IF(A1=4,"Dancing","Error"))))
Pero con múltiples respuestas tengo un problema. ¿Cómo separar números, para que Excel pueda entender, que la celda A3 tiene 3 respuestas: Viajar(1), Deporte(3) y Bailar(4)?
Respuesta1
Aquí tienes una solución sencilla, con tu 1,3,4
cadena en la celda.A1la siguiente fórmula devolverá Travelling,Sport,Dancing
, según sea necesario:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,1,"Travelling"),2,"Filming"),3,"Sport"),4,"Dancing")
Nota: este método (el uso SUBSTITUTE
se puede repetir hasta un máximo del número 9. Aunque no lo recomendaría porque se volverá algo ilegible.
Respuesta2
Tratar de usarBUSCARcomo IF(SEARCH("1",A1),"Traveling")
en lugar de IF(A1=1,"Traveling")
y así sucesivamente (por ejemplo IF(SEARCH("3",A1),"Sport")
)
Respuesta3
Prueba lo siguienteFunción definida por el usuario (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
Las funciones definidas por el usuario (UDF) son muy fáciles de instalar y utilizar:
- ALT-F11 abre la ventana VBE
- ALT-I ALT-M abre un módulo nuevo
- pegue las cosas y cierre la ventana de VBE
Si guarda el libro de trabajo, la UDF se guardará con él. Si está utilizando una versión de Excel posterior a 2003, debe guardar el archivo como.xlsmen vez de.xlsx.
Para eliminar la UDF:
- abrir la ventana VBE como arriba
- borrar el código
- cerrar la ventana VBE
Para utilizar la UDF desde Excel:
=MultiReturns(A1)
Para obtener más información sobre las macros en general, consulte:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
y
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
y para obtener detalles sobre las UDF, consulte:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
¡Las macros deben estar habilitadas para que esto funcione!