1

Я хочу вычесть четыре ячейки в Excel из одной конкретной ячейки, но только если какая-либо из четырех ячеек имеет значение. Более конкретно в моем случае формула в ячейке L2 в настоящее время

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

но я хочу, чтобы это вычислялось только тогда, когда значение имеет одна или все ячейки E2, G2, I2, K2. Что мне не хватает в формуле, чтобы L2 вернул 0, если выше - правда?

3 ответа3

3

Ваша формула возвращает пустую строку, когда все условия выполнены. Я думаю, что вы хотите расчет в этом месте. В функции AND() есть случайная запятая.

Согласно вашему устному описанию, формула, которая вам, вероятно, нужна

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

Это будет сделано только в том случае, если все ячейки содержат значение.

но я хочу, чтобы это вычислялось только тогда, когда значение имеет одна или все ячейки E2, G2, I2, K2.

Вы должны принять решение. Если вы хотите выполнить расчет, когда любая ячейка содержит значение, вам не нужен оператор IF. В этом случае просто сделайте вычитание.

0

Я думаю, тебе может понадобиться вспомогательный ряд. Вы можете поместить это прямо под клетки, о которых идет речь, используя формулу

=IF(ISNUMBER(E2),E2,0)
, Тогда вы можете просто сделать вычитание в строке помощника. Конечно, эта формула будет введена в E3. И, кстати, оператор AND является верным, только если все его аргументы верны, поэтому ваша формула будет работать только тогда, когда все ячейки в ней содержат числа. Если бы только одна ячейка содержала нечисловое значение, формула имела бы значение false и не рассчитывалась. FWIW False = 0; True = не False.
0

Что вам нужно сделать - и то, что мы должны были попросить вас сделать два дня назад, - это привести несколько примеров того, каких результатов вы хотите получить и для каких вкладов.  Да, я знаю, что вы дали нам несколько, но они должны были быть отредактированы в вопросе; комментарии - отвратительное место для табличных данных и длинных формул, и они являются неподходящим местом для информации, необходимой для понимания вопроса.  Во всяком случае, я создал несколько образцов данных для вас.  Обратите внимание, что они не все правильно.  Я знаю, что они не все правильные, потому что они противоречивы, но у меня также были бы проблемы с их правильностью, потому что я все еще пытаюсь понять, что вы хотите.

        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

Если случаи fee и fie не отражают то , что вы хотите, у нас есть серьезные проблемы со связью.  Если вы никогда не получите фактический 0 в E2 , G2 , I2 или K2 , то нам не нужно беспокоиться о случае foe .  Итак, вопрос за 40 000 долларов: хотите ли вы fum (L2 = 40) или foo (L2 = 0)?

fum (L2 = 40)

Это просто  Установите L2 на любой из следующих,

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

которые эквивалентны.

foo (L2 = 0)

Немного дольше, но так же очевидно:

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

Это может показаться знакомым, поскольку это ответ Тейлина в сочетании с моим комментарием («Если вы хотите, чтобы вычитание вычислялось, если какая-либо или все ячейки имеют значение,… используйте OR вместо AND ».)

А?  Какие?

Ваша оригинальная формула,

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

это (как указал Тейлин) вызов функции AND() с пятью параметрами:

  • ISNUMBER(E2) ,
  • ISNUMBER(G2) ,
  • ISNUMBER(I2) ,
  • ISNUMBER(K2) и
  • (Пробел).

Хорошо, если пустое значение используется как число в Excel, оно обрабатывается так, как если бы оно было 0 (ноль).  Вот почему формулы « fum » работают: пустые ячейки обрабатываются так, как если бы они содержали 0.  Аналогично, если пустое значение используется как логическое значение (т. Е. Логическое значение) в Excel, оно обрабатывается так, как если бы оно было FALSE.  Так что ваша формула действует как

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

Поскольку AND(anything, FALSE) равно FALSE , приведенное выше сводится к

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

или просто

=D2-E2-G2-I2-K2

Это может показаться знакомым, так как это формула « fum ».


Мы уже на месте?

Если я пропустил какой-то непонятный аспект вашего вопроса, отредактируйте его, чтобы уточнить его; Например, добавьте пример данных, где ни один из приведенных выше ответов не дает желаемых результатов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .