Формула ячейки Excel для подсчета ключей из одной таблицы, если их значения в другой таблице соответствуют определенным критериям - PullRequest
0 голосов
/ 30 апреля 2019

Мне кажется, что ответ на этот вопрос прост, но я просто не могу обдумать это: у меня есть большая таблица исторических данных (пример справа) о том, когда были отправлены конкретные номера деталейи относятся ли они к одной из двух категорий (пример слева).

Part    Type       |    Part Shipped   Date Shipped
Part#1  W          |    Part#3         23-Apr
Part#2  W          |    Part#3         25-Apr
Part#3  W          |    Part#5         17-Apr
Part#4  U          |    Part#2         18-Apr
Part#5  W          |    Part#6         25-Apr
Part#6  U          |    Part#1         18-Apr

Я пытаюсь получить формулу COUNTIFS для подсчета всех записей [Part Shipped], которые были между [Последний понедельник]и [Последняя пятница], но только в том случае, когда [Тип] имеет тип "W".Я сократил критерии даты, но не могу понять, как передать диапазон критериев [Поставка детали] в другую таблицу, чтобы сослаться и сосчитать [Тип]

Входные данныеданные берутся из живого потока данных (Odata, файл atomvc), поэтому я использую полные столбцы в качестве диапазона критериев, таких как «ДАННЫЕ»! X: X.

Я вычислил критерии даты как таковые:

">=" & ((TODAY() - 7) - (WEEKDAY(TODAY()) - 2))
"<=" & ((TODAY() - 7) + (WEEKDAY(TODAY()) - 6))

, и моя полная формула пока такова:

=COUNTIFS('SO Progress'!X:X, ">=" & ((TODAY() -7) - (WEEKDAY(TODAY()) -2)), 'SO Progress'!X:X, "<=" & ((TODAY()-7) + (WEEKDAY(TODAY())-6)))

, но это не имеет никаких критериев для подсчета типов.Я думал об использовании простого VLOOKUP и сравнении его с «W», но моя главная проблема - выяснить, как передать полный диапазон в формулу VLOOKUP и получить результаты для каждой строки в диапазоне.

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

[EDIT]

Используя приведенные выше данные, предполагая, что столбцы являются смежными A: D, я смотрю первые даты отгрузки (D: D), которые попадают в последнюю неделю с понедельника по пятницу.Например, используя сегодня (4/29), этот диапазон будет от 4/22 до 4/26.

Эта исходная пара критериев даст мне три результата: Часть № 3, Часть № 3 и Часть №6.Однако часть № 6 относится к типу «U», что иллюстрируется столбцами A и B, поэтому мой конечный результат должен быть равен 2.

Таблица A: B содержит уникальные номера деталей и их типы для справки., но отправленные детали в таблице C: D могут быть дубликатами и в большинстве случаев будут намного больше, чем справочная таблица типов.

Ответы [ 2 ]

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

Потребовалось некоторое время, чтобы понять, но вы можете использовать следующую формулу массива (используйте Ctrl + Shift + Введите , и вы должны увидеть скобки в панель формул, если вы все сделали правильно):

=SUMPRODUCT(--(D2:D7=TRANSPOSE(A2:A7))*TRANSPOSE(B2:B7=H2)*(E2:E7>=(Today-WEEKDAY(Today,2)-6))*(E2:E7<=(Today-WEEKDAY(Today,2)-2)))

enter image description here

Я думаю, что это должно сработать, я попытался немного поиграть с разными значениями, и это, похоже, держалось нормально. На приведенном снимке Today - это H1.

Конечно, потребуется много времени, чтобы рассчитать, насколько велики ваши наборы данных, и в этом случае я бы порекомендовал выполнить упражнение на SQL, которое больше подходит для этого типа операций (быстрее и проще сделать).

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

Если вы хотите подсчитать вхождения, где дата больше x, AND date меньше Y, AND z = "W", то просто добавьте еще один критерий кваша COUNTIFS() функция.

В приведенной ниже формуле предполагается, что даты указаны в столбце D, а тип - в столбце B - очевидно, отрегулируйте их в соответствии с вашими рабочими листами.

=COUNTIFS(D:D, ">=" &TODAY()-7-WEEKDAY(TODAY()-2),D:D, "<=" & TODAY()-7+WEEKDAY(TODAY()-6),B:B,"=W")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...