FnSI: Devolver varios valor depend de varias celdas

Ok Así va mi problema. Quiero hacer una función que me devuelva un valor positivo (verdadero, si, correcto...), si se cumple con una serie de condiciones de varias celdas (la condición, si ayuda que me puedan responder, es el mismo valor que se va a devolver(verdadero, si, correcto...)). Hasta ahí es fácil, uso la función SI, pero aquí va el problema, si no se cumple una de las condiciones, no solo quiero que me devuelva el valor negativo, sino que me diga cual de las celdas evaluadas no esta cumpliendo con las condiciones. Por ejemplo:
         A                               B
Tiene un plato                   Si
El plato tiene comida        No
Tiene cuchara                    No
Puede comer Aquí va la función, esta evalúa si B1, B2 y B3 son "Si". En este
ejemplo debería devolver: No, le falta "El plato tiene comida" y "Tiene cuchara"
Con la función SI no se puede porque no permite sumar valores en el argumento para la condición de falso.(Yo probé con +, no sé si hay otra manera)
Para los últimos 2 textos entre comillas, ¿hay alguna función (que se introducirá dentro de la función principal), que haga que se puedan insertar automáticamente o los tengo que digitar yo definitivamente?
Nota: Manejo un poquito de programación, sí que si hace falta una Macro para solucionar, no duden en ponerla; siempre que haya sido probada y no de ningún tipo de error en Excel... O en la computadora :S
Muchas gracias de antemano por sus respuestas

1 Respuesta

Respuesta
1
Prueba con esta fórmula, es un poco liosa pero funciona:
=SI(B1="no";SI(B2="no";SI(B3="no";"no le falta " & A1 & ", " & A2 & ", " & A3;"no, le falta " & A1 & ", " &  A2);SI(B3="no";"no, le falta " & A1 & ", " &  A3;"no, le falta " & A1));SI(B2="no";SI(B3="no";"no, le falta " & A2 & ", " &  A3;"no, le falta " & A2);SI(B3="no";"no, le falta " &A3;"SI puede comer")))
o prueba cone esta macro:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Or Target.Row > 3 Then Exit Sub
Dim Mensaje
Dim N As Integer
For N = 1 To 3
If Range("b" & N) = "no" Then Mensaje = Mensaje & ", " & Range("a" & N)
Next N
If Len(Mensaje) > 0 Then
    Range("b4") = "No puede comer, le falta " & Mensaje
Else
    Range("b4") = "Si puede comer"
End If
End Sub
Comentame si te ha válido
Pues me ha funcionado muy bien la fórmula, es cierto que es algo complicada pero funciona. La macro no la probé, no la leí mucho pero para la próxima por una pequeña explicación de como utilizarla. Muchas gracias amigo, me has ahorrado mucho tiempo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas