Restar valores solo si todos son números

Restar valores solo si todos son números

Quiero restar cuatro celdas en Excel de una celda específica, pero solo si alguna de las cuatro celdas tiene un valor. Más específicamente en mi caso la fórmula en la celda L2 es actualmente

=IF(AND(ISNUMBER(E2),ISNUMBER(G2),ISNUMBER(I2),ISNUMBER(K2),),"",D2-E2-G2-I2-K2)

pero solo quiero que esto se calcule cuando alguna o todas las celdas E2,G2,I2,K2 tengan un valor. ¿Qué me falta en la fórmula para que L2 devuelva un 0 a menos que lo anterior sea cierto?

Respuesta1

Lo que deben hacer (y lo que deberíamos haberles pedido que hicieran hace dos días) es dar algunos ejemplos de los resultados que desean para cada insumo. Sí, sé que nos has dado algunos, pero deberían haber sidoeditadoen la pregunta; Los comentarios son un pésimo lugar para datos tabulares y fórmulas largas, y son elequivocadolugar para obtener la información necesaria para comprender la pregunta. De todos modos, he creado algunos datos de muestra para ti. Tenga en cuenta que no todas son correctas. Sé que no todas son correctas porque son inconsistentes, pero también me resultaría difícil corregirlas porque todavía me cuesta entender lo que quieres.

        Case       D        E        G        I        K        L (Result)
        fee       40        1                                  39
        fie       40        0.01                               39.99
        foe       40        0                                  40
        fum       40                                           40
        foo       40                                            0

Si los casos feey fieno reflejan lo que usted desea, tenemos un grave problema de comunicación. Si nunca, en un millón de años, tuvieras una verdadera0en E2, G2, I2o K2, entonces realmente no necesitamos preocuparnos por case foe. Entonces, la pregunta de los $40,000 es: ¿quieres fum( L2= 40) o  foo( L2= 0)?

fum( L2= 40)

Esto es simple. Establezca L2cualquiera de los siguientes,

  • =D2-E2-G2-I2-K2
  • =D2-(E2+G2+I2+K2)
  • =D2-SUM(E2,G2,I2,K2)

que son equivalentes.

foo( L2= 0)

Un poco más largo, pero igual de obvio:

=IF(OR(ISNUMBER(E2),ISNUMBER(G2),ISNUMBER(I2),ISNUMBER(K2)), D2-E2-G2-I2-K2, 0)

Esto puede resultarle familiar, ya que es la respuesta de Teylyn combinada con mi comentario (“Si desea que se calcule la resta si alguna o todas las celdas tienen un valor,... use ORen lugar de AND”).

¿Eh? ¿Qué?

Tu fórmula original,

=IF(AND(ISNUMBER(E2),ISNUMBER(G2),ISNUMBER(I2),ISNUMBER(K2),),"",D2-E2-G2-I2-K2)

es (como señaló Teylyn) llamar a la AND()función con cinco parámetros:

  • ISNUMBER(E2),
  • ISNUMBER(G2),
  • ISNUMBER(I2),
  • ISNUMBER(K2), y
  • (blanco).

Bueno, si un valor en blanco se utiliza como número en Excel, se trata como si fuera 0 (cero). Por eso fumfuncionan las fórmulas “ ”: las celdas que están en blanco se tratan como si contuvieran 0. Del mismo modo, si un valor en blanco se utiliza como booleano (es decir, valor lógico) en Excel, se trata como si fuera FALSO. Entonces tu fórmula actúa como

=SI(Y(ESNÚMERO(E2),ESNÚMERO(G2),ESNÚMERO(I2),ESNÚMERO(K2),FALSO),"",D2-E2-G2-I2-K2)

Como es , lo anterior se reduce aAND(anything, FALSE)FALSE

=IF(FALSE, "", D2-E2-G2-I2-K2)

o simplemente

=D2-E2-G2-I2-K2

Esto puede resultarle familiar, ya que es la fumfórmula " ".


¿Ya llegamos?

Si me he perdido algún aspecto arcano de tu pregunta, por favoredita tu preguntaaclararlo; por ejemplo, agregue datos de muestra donde ninguna de las respuestas anteriores proporcione los resultados que desea.

Respuesta2

Su fórmula devuelve una cadena vacía cuando se cumplen todas las condiciones. Creo que quieres el cálculo en ese lugar. Hay una coma perdida en la función AND().

Según su descripción verbal, la fórmula que probablemente necesite es

=IF(AND(ISNUMBER(E2),ISNUMBER(G2),ISNUMBER(I2),ISNUMBER(K2)),D2-E2-G2-I2-K2,0)

Esto sólo hará el cálculo si todas las celdas contienen un valor.

pero solo quiero que esto se calcule cuando alguna o todas las celdas E2,G2,I2,K2 tengan un valor.

Necesitas tomar una decisión. Si desea realizar el cálculo cuando alguna celda contiene un valor, no necesita una declaración IF. En ese caso, simplemente haz la resta.

Respuesta3

Estoy pensando que podrías necesitar una fila de ayuda. Podrías ponerlo justo debajo de las celdas en cuestión usando la fórmula

=SI(ESNÚMERO(E2),E2,0)
. Entonces podrías simplemente hacer una resta simple en la fila auxiliar. Por supuesto, esa fórmula se ingresaría en E3. Y, por cierto, una declaración AND es verdadera solo si todos sus argumentos son verdaderos, por lo que su fórmula solo funcionará cuando todas las celdas que contiene contengan números. Si solo una celda contuviera un valor no numérico, la fórmula se evaluaría como falsa y no se calcularía. FWIW Falso = 0; Verdadero = No Falso.

información relacionada