Ниже приведен пример сводной таблицы со странами в качестве столбцов и датами в качестве строк. Данные для этого поворота основаны на A1: C13. Ячейки F1: G3 - это то, что может настроить пользователь этой модели. Они могут изменить страну и / или диапазоны дат.

Мне нужна единственная формула для вывода суммы их выбора . Поскольку мой фактический набор данных содержит много стран, простого написания вложенного оператора IF будет недостаточно. Набор данных также должен быть в сводной таблице - отсюда требование GETPIVOTDATA.

Я прошел примерно половину пути, используя вот эту формулу:

=SUM(GETPIVOTDATA("Sum of Value",$A$15,"Date",ROW(INDIRECT(F2&":"&F3)),"Country",F1:G1))

Проблема здесь в том, что эта формула не является динамической для разных дат в разных странах.

Кто-нибудь может помочь?

enter image description here

1
Chris 26 Фев 2021 в 03:19

2 ответа

Лучший ответ

Вам понадобится отдельный GETPIVOTDATA для каждой страны:

=SUM(GETPIVOTDATA("Sum of Value",$A$15,"Date",ROW(INDIRECT(F2&":"&F3)),"Country",F1),GETPIVOTDATA("Sum of Value",$A$15,"Date",ROW(INDIRECT(G2&":"&G3)),"Country",G1))

enter image description here

2
basic 26 Фев 2021 в 02:30

Ответ, предоставленный @basic, является наиболее близким к исходному вопросу, то есть с использованием GETPIVOTDATA для расчета общей суммы по заданным параметрам.

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

=SUMPRODUCT((A2:A13=F1:G1)*(B2:B13>=F2:G2)*(B2:B13<=F3:G3)*(C2:C13))

Чтобы сделать вышеуказанный расчет «динамическим», т. Е. Расчет обновляется по мере расширения строк в таблице, вы можете поместить исходные данные в Структурированную справочную таблицу , присвоив Имя для каждого столбца, например «List_Ctry» для столбца A, «List_Date» для столбца B и «List_Value» для столбца C, тогда диапазон за каждым именем будет обновляться автоматически при изменении исходных данных. Используя эти имена, формула будет выглядеть примерно так:

=SUMPRODUCT((List_Ctry=F1:G1)*(List_Date>=F2:G2)*(List_Date<=F3:G3)*List_Value)

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

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

enter image description here

Не стесняйтесь, дайте мне знать, если у вас возникнут вопросы :)

1
Terry W 4 Мар 2021 в 03:34