Существует ли сокращенный способ сравнения диапазона ячеек с одним значением? - PullRequest
0 голосов
/ 26 апреля 2019

Я хотел бы написать формулу, которая возвращает «True», если ВСЕ из определенного набора ячеек помечены знаком «X».Например, ниже ....

  A B C D E
1 X
2
3 X X
4   X
5     X

Один из способов проверить, что ВСЕ из этих значений имеют 'X', - по формуле ниже

=IF( AND(A1 = "X", A3 = "X", B3 = "X", B4 = "X", C5 = "X"), "True", "false")

Однако A3: B3аналогичная группировка, но оператор сравнения не признает, что для целей

=IF( AND(A1 = "X", A3:B3 = "X", B4 = "X", C5 = "X"), "True", "false")

Существует ли сокращенный способ сравнения диапазона ячеек с одним значением?

Ответы [ 4 ]

1 голос
/ 26 апреля 2019

Вы также можете настроить шаблон на втором листе для ячеек, в которые вы хотите поместить X, а затем просто сравнить их:

=SUMPRODUCT((Sheet1!A1:C5=Sheet2!A1:C5)*(Sheet1!A1:C5="X"))

или для получения истинного / ложного результата:

=SUMPRODUCT((Sheet1!A1:C5=Sheet2!A1:C5)*(Sheet1!A1:C5="X"))=COUNTA(Sheet2!A1:C5)

Лист 2 (шаблон)

enter image description here

Лист 1 (для сравнения)

enter image description here

1 голос
/ 26 апреля 2019

Хотя вы не можете использовать «фигурные скобки» (например, { и } для создания непрерывного массива ссылок на ячейки (например, {A1, A3:B3, B4, C5}), вы можете использовать фигурные скобки для создания массива строковых литералов (например, {"A1", "A3:B3", "B4", "C5"} иINDIRECT использует строковые литералы для определения диапазонов.

=SUM(COUNTIF(INDIRECT({"A1","A3:B3","B4","C5"}),"X"))

COUNTIF создает массив результатов из массива строковых литералов, интерпретируемых INDIRECT. Сумма SUM принимает этот массив результатов.

Это дает точный COUNTIF. Если вы хотите TRUE / FALSE, сравните его с результатом, если бы все они были X.

'any contiguous part of the discontiguous union can be grouped
=SUM(COUNTIF(INDIRECT({"A1","A3","B3","B4","C5"}),"X"))=5
=SUM(COUNTIF(INDIRECT({"A1","A3:B3","B4","C5"}),"X"))=5
=SUM(COUNTIF(INDIRECT({"A1","A3","B3:B4","C5"}),"X"))=5

Это , а не формулы массива.

0 голосов
/ 26 апреля 2019

В ячейке F1 Тип:

=IF(COUNTA(A1:E1)>=5, "True", "False")

В приведенном вами примере он должен вернуть false для всех из них.Он вернет true, если во всех ячейках есть X.

0 голосов
/ 26 апреля 2019

Используйте Control-Shift-Enter при вводе второго, чтобы использовать массивы, такие как отдельные значения.

=IF( AND(A1 = "X", A3:B3 = "X", B4 = "X", C5 = "X"), "True", "false") <ctrl-shift-enter>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...