En Excel, tengo una expresión larga y compleja (Expresión A) que estoy usando en una fórmula. Quiero que esta fórmula devuelva el valor de la Expresión A, excepto en el caso en que esa expresión sea igual a algún valor específico (0, por ejemplo), en cuyo caso devuelve algo más, como "(ninguno)".
¿Hay alguna forma de escribir =IF(<Expression A> = 0, "(none)", <Expression A>)
que no requiera que repita la totalidad de la Expresión A dos veces? (Más o menos como IFERROR
funciona, excepto con una condición personalizada)
microsoft-excel
worksheet-function
Ajedi32
fuente
fuente
IFERROR(INDEX(Table1,ROWS(C$2:C2),COLUMN(C2)), IFERROR(INDEX(Table2,ROWS(C$2:C2)-ROWS(Table1),COLUMN(C2)), ""))
(Esta es la fórmula real que estoy usando para la Expresión A.)COLUMN(C2)-1
. La ventaja, aparte de una fórmula más limpia, es que reduce a la mitad el tiempo de cálculo, ya que la operación debe realizarse solo una vez. Y para evitar abarrotar lo visual, simplemente oculte la columna con la expresión A.Respuestas:
En el caso en que desee mostrar algo más en lugar de cero específicamente , podría forzar un error cuando la expresión se resuelva a cero dividiendo 1 por ese resultado, por ejemplo, con la función IFERROR, disponible en Excel 2007 o posterior
=IFERROR(1/(1/<Expression A>),"(none)")
o use un formato personalizado donde cero se muestre como "(ninguno)", por ejemplo
0;-0;"(none)"
fuente
'No', sujeto a la advertencia habitual, no sin VBA.
Pero con un enfoque diferente puede ahorrarse algunos problemas, digamos con el formato condicional.
fuente
Esto se puede hacer con bastante facilidad en VBA. Aquí hay un par de funciones de ejemplo:
La
DISPLAY_0_DEFAULT
función hace lo que describiste en tu pregunta, tomando "Expresión A" como argumento. LaDISPLAY_3_ARGS
función hace lo mismo, excepto que le permite especificar el "valor específico" (para comparar) y el valor a mostrar si "Expresión A" coincide con el "valor específico". Aquí hay una ilustración de su uso:fuente
Hay un par de opciones:
Columna oculta
Puede escribir
<Expression A>
en una celda separada en una columna oculta, luego consulte eso.Formato de número
Solo usa la fórmula
=<Expression A>
, no te preocupes por laIF
función.Establezca el formato de la celda en Personalizado:
0;-0;"(none)"
fuente