Суммирование значений по нескольким таблицам на основе даты - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь суммировать значения по нескольким таблицам (рабочим книгам) Google Sheet, сгруппированным по датам. Например, я хочу суммировать все значения Delta за 2 марта 2020 года для нескольких электронных таблиц, и каждая электронная таблица будет иметь 0 или более значений на эту дату.

Вот пример с 2 электронными таблицами:

Электронная таблица 1:

Date        Start   Stop    Delta
Mon 02Mar20 16:51   16:56   0:05
Mon 02Mar20 16:56   17:00   0:03
Tue 03Mar20 18:45   18:49   0:03
Tue 03Mar20 19:04   19:06   0:01

Электронная таблица 2:

Date        Start   Stop    Delta
Mon 02Mar20 8:38    8:49    0:11
Tue 03Mar20 4:47    4:50    0:03
Tue 03Mar20 17:42   17:55   0:13
Tue 03Mar20 17:58   18:45   0:47
Tue 03Mar20 18:53   19:03   0:10

Я хочу иметь динамическую c сумму столбцов Delta для электронных таблиц за каждый день в отдельной электронной таблице. Итак, вот что я хотел бы сгенерировать. В частности, сумма значений Delta для электронной таблицы 1 и электронной таблицы 2 для каждого дня (0:08, 0:11, 0:04, 1:10):

Date        Total   Spreadsheet 1   Spreadsheet 2
Mon 02Mar20 0:19    0:08            0:11
Tue 03Mar20 1:14    0:04            1:10

Я пытался использовать ВАЖНО но я не уверен, как сделать суммы динамическими c за каждый день. Я не знаю заранее, сколько записей у меня будет для каждой даты в Таблице 1 и 2, поэтому я хочу, чтобы у меня был способ автоматически определять, сколько строк суммировать каждый день для Таблицы 1 и 2. Я думаю, мне нужно будет использовать QUERY или FILTER , чтобы отфильтровать все импортированные значения из IMPORTRANGE, но я не уверен, как это сделать.

1 Ответ

1 голос
/ 04 марта 2020

Я сделал простой набор данных для подведения итогов. Получил электронную таблицу следующим образом:

enter image description here

Как видите, значения общей суммы для 2nd march будут 2, а для 3rd March будут 20.

В другой электронной таблице у меня есть панель инструментов:

enter image description here

Формула, которую я использовал в B2:

=SUMPRODUCT(--(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1rnap9LJQJaqriiJLSsF7EWQLwBUiNviktxDAMFfW0ZE";"Hoja 1!A1:A4")=$A2);IMPORTRANGE("https://docs.google.com/spreadsheets/d/1rnap9LJQJaqriiJLSsF7EWQLwBUiNviktxDAMFfW0ZE";"Hoja 1!B1:B4"))

Вот как это работает:

  1. --(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1rnap9LJQJaqriiJLSsF7EWQLwBUiNviktxDAMFfW0ZE";"Hoja 1!A1:A4")=$A2) сравнивает значения столбца A в Рабочей книге 1 с датой в столбце A на главной панели. Поскольку мы использовали двойной унарный оператор , он будет возвращать массив 1 и 0, если есть совпадение или нет (в этом случае это будет массив, подобный {1;1;0;0}
  2. IMPORTRANGE("https://docs.google.com/spreadsheets/d/1rnap9LJQJaqriiJLSsF7EWQLwBUiNviktxDAMFfW0ZE";"Hoja 1!B1:B4") вернет в виде массива значения столбца B в Рабочей книге 1, в этом случае он вернет {1;1;10;10}
  3. SUMPRODUCT умножит оба массива и суммирует значения, в данном случае {1;1;0;0} * {1;1;10;10} = {1;1;0;0} и сумма этого окончательного массива равна 2.

Те же логики c, примененные ко второй дате, мы получили бы {0;0;1;1} * {1;1;10;10} = {0;0;10;10} -> 20

Просто добавьте каждую книгу в 1 разных столбец с той же формулой, а затем выполните обычное суммирование на главной панели, чтобы получить общую итоговую сумму для всех значений во всех книгах за указанную c дату:

enter image description here

Надеюсь, что это поможет.

УВЕДОМЛЕНИЕ: Конечно, этот метод будет работать, только если ваши даты являются датами (не строками / текстами), а время в Delta дата / время тоже (не строки / тексты)

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