Відняти значення можна лише у випадку, якщо всі є числами


1

Я хочу відняти чотири клітинки у excel з однієї конкретної клітини, але тільки якщо будь-яка з чотирьох клітин має значення. Більш конкретно в моєму випадку формула в комірці L2 в даний час

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

але я тільки хочу, щоб це було обчислено, коли будь-яка або всі клітини E2, G2, I2, K2 мають значення. Що я відсутній у формулі, щоб зробити L2 повернення 0 unlessthe вище це правда?


Ласкаво просимо до Суперкористувача. (1) Як ви помітили, питання на Super User дозволяють "тегам" вказувати на загальну предметну область. Заголовки призначені для використання для резюме конкретного питання. Хоча «Обчислювати формулу умовно» не було б великою назвою, це було б краще, ніж «Microsoft Excel 2010». (2) Що в E2, G2, I2, і , K2якщо не цифри? Бланки? Якщо ви хочете, щоб вирахування обчислювалося, якщо будь-яка або всі клітинки мають значення, використовуйте ORзамість AND. (Також внесіть зміни, запропоновані тейліном .)
Скотт

Так, якщо б не вводилося числове значення, клітинки були б порожніми. Крім того, "розсіяна кома" є єдиним способом, коли вихідна формула працюватиме, якщо ввести номер (K2). Без цієї коми клітина (L2) буде порожньою і не обчислюватиме нічого
Wade C

Відповіді:


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не відображають того, що ви хочете, у нас є серйозна проблема спілкування. Якщо ви ніколи, ніколи, в Gazillion років мають фактичний 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формула " ".


Ми ще є?

Якщо я пропустив якийсь таємний аспект вашого питання, відредагуйте своє питання, щоб пояснити його; наприклад, додайте зразкові дані, де жодна з наведених вище відповідей не дає бажаних результатів.


Формула "foo (L2 = 0), розміщена вище, є правильною формулою, яку я шукав. Мені шкода плутанини і відсутності хорошого початкового питання. Але спасибі. Це допоможе багато в моєму відстеженні матеріалу.
Уейд C

3

Ваша формула повертає порожній рядок, коли виконуються всі умови. Я думаю, ви хочете розрахунок в цьому місці. У функції AND () є кома.

Згідно з вашим словесним описом, формула, яку ви, напевно, потребуєте, є

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

Це буде робити лише обчислення, якщо всі клітинки містять значення.

але я тільки хочу, щоб це було обчислено, коли будь-яка або всі клітини E2, G2, I2, K2 мають значення.

Ви повинні зробити свій вибір. Якщо ви хочете зробити розрахунок, коли будь-яка клітина містить значення, вам не потрібна операція IF. У такому випадку просто зробіть віднімання.


Тейлін правильно. Excel буде розглядати всі порожні та нечислові комірки як нуль. Ви також можете використовувати "= D2- (SUM (E2, G2, I2, K2))".
BillDOe

Минулої ночі мені здалося, що я написав це і вимкнув свій комп'ютер, що якщо ви є клітинами результатом розрахунку і можливе значення помилки Excel (тобто # / DIV / 0, # / N / A і т.д. ), тоді ви хочете використовувати ISNUMBER як у моєму прикладі в іншій відповіді.
BillDOe

Я намагаюся використовувати формулу для розрахунку втрати труби, але тільки якщо зміна довжини. Якщо початкова довжина становить 40 (D2), а на ній 10 (E2), то додатковий розріз 10 (G2) і ніяких інших розрізів не зроблено (I2) & (K2) буде порожнім, тоді значення 20 буде в (L2). Потім на іншому шматку труби початкова довжина 45 (D2) і ніяких розрізів не робилися так (E2, G2, I2, K2) були б порожніми. Мені потрібен (L2), щоб повернути 0 не число 45 (D2). Краще пояснення? Або приклад
Wade C

Гаразд. Тоді це працює: = IF (SUM (E2, G2, I2, K2) = 0,0, D2-IF (ISNUMBER (E2), E2,0) -IF (ISNUMBER (G2), G2,0) -IF ( ISNUMBER (I2), I2,0) -IF (ISNUMBER (K2), K2,0))
BillDOe

0

Думаю, вам може знадобитися допоміжний рядок. Ви можете помістити його прямо під відповідні комірки за допомогою формули

= IF (ISNUMBER (E2), E2,0)
. Тоді ви можете просто зробити просте вирахування на допоміжній рядку. Звичайно, ця формула буде введена в Е3. І BTW, оператор AND є істинним, тільки якщо всі його аргументи є істинними, тому ваша формула буде працювати тільки тоді, коли всі клітини в ній містять числа. Якщо тільки одна клітина містила нечислове значення, формула оцінюється як помилкова, а не обчислюється. FWIW False = 0; True = Not False.


Формула повертає бажане значення, навіть якщо клітинки не містять числа. Якщо в якості прикладу 40 (D2) 10 (E2) 5 (G2) використовуються наступні числа, і жоден запис в клітинах I і / або K excel не обчислюватиме осередку (L2), щоб мати значення 25. клітинки нічого не вводяться, він поверне будь-який клапан D2. У випадку з прикладом він поверне 40.
Уейд С

Ось ще одна альтернатива, яка не передбачає використання допоміжного рядка: = D2-IF (ISNUMBER (E2), E2,0) -IF (ISNUMBER (G2), G2,0) -IF (ISNUMBER (I2), I2,0 ) -IF (ISNUMBER (K2), K2,0)
BillDOe

Наведена вище формула повертає #NAME? при введенні в мою електронну таблицю
Wade C

Уейд, дивно ... Я теж отримав це, коли я вставив цю формулу з цього сайту в таблицю. Схоже, виникла проблема з останнім виразом ISNUMBER. Просто поверніть його назад і повторно введіть його. Я повернувся б до знаку мінус.
BillDOe
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.