-1

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

Например:

   |   A  |   B  |
---+------+------+
 1 | 1200 |  N/A |
 2 |  400 |  400 |
 3 |  100 |  600 |

Я хочу вычесть A1 из A3 и так далее на листе. Тем не менее, в столбце B есть N/A, поэтому я хотел бы вместо этого вычесть B2 из B3 .

Как бы я написал это утверждение If/Then?

2 ответа2

2

Я добавлю это только для полноты. Вопрос немного двусмысленный относительно того, является ли "N/A" преднамеренным текстовым значением или условием ошибки # N/A, поэтому я рассмотрю оба.

Как указано в вопросе, вы можете использовать тест IF по-разному для проверки содержимого ячейки. Если целевым значением является текстовая строка «N /A», вы можете проверить это с помощью равенства (A1="N/A"). Если это целевое значение на самом деле является ошибкой # N /A, или вы просто хотите убедиться, что ячейка содержит число, существуют даже специальные тестовые функции, такие как ISNA и ISNUMBER. Это даст вам результат True /False для условия IF без использования равенства для проверки значения ячейки с другим значением. Такой подход будет выглядеть в целом так:

IF(ISNA(A1),A3-A2,A3-A1)

или же

IF(ISNUMBER(A1),A3-A1,A3-A2)

Ответ Скотта Крэйнера часто - лучший подход. IFERROR - это специальный специализированный тест IF с двумя преимуществами. Во-первых, он будет обрабатывать любые ошибки, а не только # N/A. Например, если ячейка содержит какое-либо условие ошибки или текст (включая «N/A»), который вы пытаетесь использовать в арифметике, IFERROR обработает результат.

Второе преимущество заключается в том, что это "короткая форма" теста IF. Он не требует трех нормальных аргументов (условие теста, истинный результат, ложный результат). Для этого требуется только "нормальная" формула и альтернативная формула или результат, который следует использовать, если нормальная формула выдает ошибку. Это часто экономит время на тестировании формулы, а затем на повторении формулы для ее использования. Сама формула служит условием проверки.

Однако я могу вспомнить одну ситуацию, когда IFERROR может быть нежелательным. Допустим, ваши данные содержат текстовую строку «N /A» в качестве преднамеренного заполнителя для пропущенных данных. Вы также хотите использовать только этот заполнитель, чтобы определить, какую формулу использовать. Кроме того, если есть какой-либо другой нечисловой контент ячейки или какое-либо условие ошибки, важно знать это. В этом случае вы хотели бы использовать тест IF, который проверяет специально для «N /A». Это будет выглядеть так:

IF(A1="N/A",A3-A2,A3-A1)
1

Я бы использовал IFERROR:

=IFERROR(A3-A1,A3-A2)

И скопировать через. Если значение в A1 является ошибкой или текстом, оно будет ошибочным, и следующая функция разрешится.

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