Неадгезивные ячейки как входные данные для функции массива (MIN и ISBLANK) - PullRequest
1 голос
/ 11 декабря 2019

Этот вопрос был задан, и поскольку ответом на конкретный вопрос была опечатка, он был удален:

https://stackoverflow.com/questions/59289065/excel-non-adjecent-cells-as-input-to-array-function-min-and-isblank

Вот вопрос:

Я пытаюсь найти минимум две (не смежные) ячейки на столбец и суммировать их для количества столбцов (всего 13).

Что усложняет то, что я хотел бы, чтобы функция обрабатывала пустые ячейки как ноль.

Я могу заставить его работать, пока ячейки смежны, но если нет, Excel дает всплывающее окно «слишком много аргументов для этой функции».

Формула, которую я имею для прилагательных ячеек, такова (не совсем красиво, извините!):

{=SUM(MIN(IF(ISBLANK(P3:P4);0;P3:P4));MIN(IF(ISBLANK(Q3:Q4);0;Q3:Q4));MIN(IF(ISBLANK(R3:R4);0;R3:R4));MIN(IF(ISBLANK(S3:S4);0;S3:S4));MIN(IF(ISBLANK(T3:T4);0;T3:T4));MIN(IF(ISBLANK(U3:U4);0;U3:U4));MIN(IF(ISBLANK(V3:V4);0;V3:V4));MIN(IF(ISBLANK(W3:W4);0;W3:W4));MIN(IF(ISBLANK(X3:X4);0;X3:X4));MIN(IF(ISBLANK(Y3:Y4);0;Y3:Y4));MIN(IF(ISBLANK(Z3:Z4);0;Z3:Z4));MIN(IF(ISBLANK(AA3:AA4);0;AA3:AA4));MIN(IF(ISBLANK(AB3:AB4);0;AB3:AB4)))}

Это дает желаемый результат в столбце "человеко-месяцы"итого ".

enter image description here

Я пытался использовать функцию CHOOSE для несмежных ячеек в качестве теста (аналогично этому вопросу ), но это дает всплывающее окно «Что-то не так с этой формулой»

=SUM(MIN(IF(ISBLANK(CHOOSE{1;2};P16;P18));0;CHOOSE({1;2};P16;P18)))

Так что теперь мне интересно, можно ли это вообще сделать? Я что-то пропустил?

Буду признателен за помощь!

С наилучшими пожеланиями, Эми


Хотя ответ на этот вопрос был о том, что после пропавшего (первый CHOOSE, я начал работать над более простой версией этой отвратительной длинной формулы и хотел опубликовать ее здесь. Поэтому возникает вопрос: «Есть ли более простой метод, не использующий vba?»

1 Ответ

2 голосов
/ 11 декабря 2019

Поскольку диапазоны фактически соседствуют по строкам, но сравнивая столбец за столбцом, мы можем использовать MMULT в виде массива. Используя MMULT, мы можем создать массив наименьших чисел и 0 s и суммировать их:

=SUM(MMULT(N(IF(A1:E1>A2:E2,IF(A2:E2<>"",A2:E2),IF(A1:E1<>"",A1:E1))),TRANSPOSE(COLUMN(A1:E1)^0)))

Это формула массива, которая должна быть подтверждена Ctrl-Shift-Enter вместо Enter при выходережим редактирования.

enter image description here


РЕДАКТИРОВАТЬ: гораздо более продуманно, это гораздо проще:

=SUM(IF(A1:E1>A2:E2,IF(A2:E2<>"",A2:E2),IF(A1:E1<>"",A1:E1)))

Тем не менееформула массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...