Обратный список массивов динамически - PullRequest
0 голосов
/ 28 января 2020

У меня есть список массивов в столбце A (начиная с A2) с использованием:

{=IFERROR(INDEX(MonthSpend,MATCH(0,COUNTIF($A$1,A1,MonthSpend),0)),""}`

Где MonthSpend - именованный диапазон из таблицы на отдельном листе.

Я скопировал формулу до A300, но вставил пробелы в число строк.

Из рисунка вы увидите, что у меня каждый месяц появляется только в каждом 6-м ряду. В A8 формула имеет вид:

{=IFERROR(INDEX(MonthSpend,MATCH(0,COUNTIF($A$1:A2,MonthSpend),0)),"")}

, а в A3:A7 ничего нет).

Я назвал этот диапазон в столбце A MonthAcc.

В столбце B (начиная с B2) я попытался использовать:

=IF(MonthAcc>10,INDEX(MonthAcc,COUNTA(MonthAcc)+ROW(MonthAcc)-ROW(),1),"")

, чтобы перевернуть этот список.

Это не сработало, потому что функция обращения в B2 ссылается на строку в нижней части списка MonthAcc, которая пуста.

Я пытаюсь получить его так, чтобы в B2 (на рисунке ниже) было бы January 1, 2020, а затем в B8 было бы December 1, 2019, а затем в B14 было бы November 1, 2019 и так далее.

Список MonthSpend является динамическим c, поэтому он может быть абсолютно разной длины.

Как поменять даты, чтобы они начинались сверху и только в каждой шестой строке?

enter image description here

enter image description here

На втором рисунке вы увидите столбец с именем Month. Он использует функцию =IF(E3="","",DATE(YEAR(C3),MONTH(C3),1)), начиная с F3, и копирует всю таблицу. Это именованный диапазон MonthSpend. Это динамично c в том смысле, что для другого проекта у вас могут быть даты в период с апреля 2017 года по январь 2020 года и т.д. c. Поэтому месяцы, которые отображаются в столбце Month, - это то, что мне нужно в моем новом перевернутом списке, с интервалом в 6 строк.

1 Ответ

0 голосов
/ 01 февраля 2020

С помощью столбца Week ending вы можете использовать следующую формулу:

=IF((MOD(ROW()+4,6)=0),LOOKUP(2,1/(COUNTIF(C$1:$C1,$A$2:$A$25-DAY($A$2:$A$25)+1)=0),$A$2:$A$25-DAY($A$2:$A$25)+1),"")

Возвращает отдельные даты из списка, преобразованного в первый день месяца (вы также можете преобразовать в другие форматы, используя соответствующие функции. ) в обратном порядке каждый шестой ряд. Даты должны быть отсортированы в исходном столбце в порядке возрастания. НО! Для пустых ячеек возвращается первый день ХХ века, поэтому я ввожу эту дату вручную в C2, если это мешает, ее можно скрыть

enter image description here

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