Función SI con múltiples opciones en una celda

Función SI con múltiples opciones en una celda

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?

  1. De viaje
  2. Rodaje
  3. Deporte
  4. 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,4cadena 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 SUBSTITUTEse 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

ingrese la descripción de la imagen aquí

Las funciones definidas por el usuario (UDF) son muy fáciles de instalar y utilizar:

  1. ALT-F11 abre la ventana VBE
  2. ALT-I ALT-M abre un módulo nuevo
  3. 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:

  1. abrir la ventana VBE como arriba
  2. borrar el código
  3. 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!

información relacionada