Что вам нужно сделать - и то, что мы должны были попросить вас сделать два дня назад, - это привести несколько примеров того, каких результатов вы хотите получить и для каких вкладов.
Да, я знаю, что вы дали нам несколько, но они должны были быть отредактированы в вопросе; комментарии - отвратительное место для табличных данных и длинных формул, и они являются неподходящим местом для информации, необходимой для понимания вопроса.
Во всяком случае, я создал несколько образцов данных для вас.
Обратите внимание, что они не все правильно.
Я знаю, что они не все правильные, потому что они противоречивы, но у меня также были бы проблемы с их правильностью, потому что я все еще пытаюсь понять, что вы хотите.
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
».
Мы уже на месте?
Если я пропустил какой-то непонятный аспект вашего вопроса, отредактируйте его, чтобы уточнить его; Например, добавьте пример данных, где ни один из приведенных выше ответов не дает желаемых результатов.