=IF((F2-E2)=0,"No mismatch",IF(AND((F2-E2)>0,E2=0),"Extra Item","Extra Qty"),IF(AND((F2-E2)<0,F2>0),"Short Qty","Not received"))
Me da error de demasiados argumentos
Respuesta1
Te falta un corchete de cierre al final de la fórmula porque tienes un corchete de cierre adicional en la AND(...), ...)
cláusula.
'fixed
=IF((F2-E2)=0,"No mismatch",IF((F2-E2)>0,"Extra Qty",IF(AND(F2-E2<0,F2<E2),"Short Qty","Not received")))
'improved
=IF((F2-E2)=0,"No mismatch",IF((F2-E2)>0,"Extra Qty",IF(F2<E2,"Short Qty","Not received")))
'check for blanks added
=IF(COUNT(E2:F2)<>2,"Not received",IF(F2-E2=0,"No mismatch",IF(F2-E2>0,"Extra Qty","Short Qty")))
'alternate
=IF(COUNT(E2:F2)<>2,"Not received", CHOOSE(SIGN(F2-E2)+2,"Short Qty","No mismatch", "Extra Qty"))
Minimizar el uso de brackets a lo absolutamente necesario.
Respuesta2
Además de cualquier otra preocupación, no estás anidando el `IF()' correctamente. Parece ser un problema conceptual, aunque fácilmente solucionable.
Por ejemplo, el primero IF()
sigue la IF()'s
forma anidada tradicional: SI esto, entonces ESO, DE LO CONTRARIO este nuevo SI. Todo está bien. El primer argumento prueba algo, el segundo es lo que quieres si es VERDADERO, el tercer argumento es el siguiente SI.
Sin embargo, el siguiente IF()
, el primero con an AND()
es "completo": tiene los tres argumentos utilizados y, por lo tanto, finaliza su fórmula:
IF(AND((F2-E2)>0,E2=0),"Artículo adicional","Cantidad adicional")
- El AND((F2-E2)>0,E2=0) es lo que se está probando.
- "Artículo adicional" es lo que obtienes si es VERDADERO.
- "Cantidad adicional" es lo que obtienes si es FALSO.
No hay ningún lugar donde IF()
considerar el próximo. La fórmula se detiene aquí, pero usted escribió más y le indica que hay demasiado. La forma real de las cosas hace que el siguiente sea IF()
un cuarto argumento y el último IF()
un quinto argumento, por lo que da el mensaje de "demasiados argumentos".
Una suposición de cómo pudo haber sucedido es que podría estar usando una "plantilla" de fórmula de algún lugar y se supone que debe reemplazar los resultados que están entre comillas con lo que más le guste para el primero de cada par, luego reemplazar lo segundo que está entre comillas con toda la siguiente IF()
cláusula, pero en su lugar cambió la primera dejando la segunda intacta. Pero eso es sólo una suposición (¿pobre?).
Tus AND()
cláusulas están perfectamente bien. NO ha omitido ningún paréntesis ni los ha colocado mal en esas cláusulas tal como yo las veo, aunque la pregunta ha sido editada y tal vez así era originalmente, pero ahora está arreglada (aunque no parece que sea así cuando trato de descifrar la edición). PODRÍAS colocar los () alrededor de las partes "F2-E2", pero es posible que sientas que esto lo hace más legible para ti. O quizás tu jefe. O, dado que las fórmulas en ocasiones pueden volverse muy diferentes si se omiten los paréntesis, es posible que alguien le haya enseñado a usarlas más de lo estrictamente necesario. (Extraño = a veces una función puede funcionar con un rango entre paréntesis, pero falla sin ellos, sin ninguna razón obvia). Absolutamente nada de lo que esté haciendo aquí los hace necesarios si desea eliminarlos como otros presionan.