В Google Sheets есть ли способ вывести значения последнего месяца, перечисленные в каждом году, в таблицу ежемесячных данных, охватывающих многие годы? - PullRequest
0 голосов
/ 02 мая 2019

У меня есть таблица необработанных финансовых данных, показывающая, какой была стоимость счета на конец определенного месяца (обозначается в формате даты MM/1/YY для нормализации). В этой таблице представлены данные за несколько лет, поэтому у меня может быть что-то вроде этого (пожалуйста, игнорируйте точные значения, они просто заполнители):

1/1/18  $123
2/1/18  $21
3/1/18  $34
4/1/18  $45
5/1/18  $76
6/1/18  $1
7/1/18  $123
8/1/18  $4343
9/1/18  $2
10/1/18 $53
11/1/18 $123
12/1/18 $12
1/1/19  $213
2/1/19  $123
3/1/19  $34
4/1/19  $123

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

Таким образом, для вышесказанного будет выведено:

12/1/18 $12
4/1/19 $123

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

2018 $12
2019 $123

Когда я пытаюсь повернуть необработанные данные, ни один из параметров «Суммировать по» не приводит к желаемому результату.

Ожидается, что таблица необработанных данных будет со временем увеличиваться в размерах, поэтому идеальное решение остается актуальным без необходимости ручного обновления. Таким образом, поскольку таблица выросла до 2020 года, она просто добавила бы значение более позднего месяца с этого года до конца выпуска.

Ответы [ 2 ]

1 голос
/ 03 мая 2019
=ARRAYFORMULA(IFERROR(VLOOKUP(UNIQUE(YEAR(INDIRECT("A1:A"&COUNTA(A1:A)))), 
 QUERY(SORT({A1:A,B1:B}, 1,0,2,0), "select year(Col1),Col2"), {1,2}, 0)))

0

0 голосов
/ 02 мая 2019

В Google Sheets вы можете сделать это, используя сортировку по году, используя опцию 2 (игнорировать дубликаты):

=sortn(sort(filter({year(A:A),A:B},A:A<>""),2,false),999,2,1,true)

Данные предварительно отсортированы по убыванию по дате (с использованием сортировки), поэтому sortn выбирает строку с самой последней датой в каждом году.

enter image description here

Разбивка ступеней

(1) Добавить год к данным, используя обозначение {}. Обратите внимание, что это преобразует пустые ячейки в 1899, которые должны быть удалены:

{year(A:A),A:B}

enter image description here

(2) Отфильтровать пустые ячейки:

filter({year(A:A),A:B},A:A<>"")

enter image description here

(3) Сортировать по убыванию даты:

sort(filter({year(A:A),A:B},A:A<>""),2,false)

enter image description here

(4) Сортировка в порядке возрастания года, но с отбрасыванием всех дат, кроме первой (самой последней) каждого года:

=sortn(sort(filter({year(A:A),A:B},A:A<>""),2,false),999,2,1,true)

enter image description here

...