Как создать двухнедельную схему оплаты в зависимости от месяца - PullRequest
0 голосов
/ 20 апреля 2019

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

=DATE(YEAR(F1),MONTH(F1),1+1*7)-WEEKDAY(DATE(year(F1),month(F1),8-5))

где F1 - 1-е число месяца, в которое я вручную ввожу бюджет, для которого я планирую.

Поскольку не всегда 5-й четверг, я написал заявление if, в котором будет указана дата 5-го четверга этого месяца, если таковая существует, но если нет, то заполняется как «Итого:» (оплата рассчитывалась в следующем столбце так же). Таким образом, если бы был 5-й четверг, дата была бы заполнена, и строка под ней была бы «Всего:», но если нет, то эта ячейка 5-го четверга была бы заполнена как «Всего:». (C9 - четвертая дата четверга)

=if(C9+7>=F1+31,"Total:",DATE(YEAR(F1),MONTH(F1),1+5*7)-WEEKDAY(DATE(year(F1),month(F1),8-5)))

Теперь я хочу сделать то же самое, но раз в две недели. То есть я хочу, чтобы даты выплат отображались с определенным месяцем в двухнедельном графике, но только если они находятся в этом месяце. Пример: для мая, в частности, день выплаты жалованья 5/10/19, а затем следующий 5/24/19 (две недели каждую пятницу).

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

Бонус: есть ли способ заставить Google Sheets автоматически дублировать лист (возможно, даже назвать его и / или изменить значение ячейки (F1)) в определенный день месяца? Допустим ... 27 числа каждого месяца.

1 Ответ

0 голосов
/ 20 апреля 2019
=ARRAYFORMULA(FILTER(TEXT(FILTER(TO_DATE(ROW(
 INDIRECT("A"&        DATE(YEAR(F1), MONTH(F1), 1)):
 INDIRECT("B"&EOMONTH(DATE(YEAR(F1), MONTH(F1), 1), 0)))), 
 REGEXREPLACE(TEXT(TO_DATE(ROW(
 INDIRECT("A"&        DATE(YEAR(F1), MONTH(F1), 1)):
 INDIRECT("B"&EOMONTH(DATE(YEAR(F1), MONTH(F1), 1), 0)))), "ddd"),
 "Mon|Tue|Wed|Thu|Sat|Sun", "♠")<>"♠"), "dd-mmm-yyyy"), 
 MOD(ROW(INDIRECT("A2:A"&COUNTA(FILTER(TO_DATE(ROW(
 INDIRECT("A"&        DATE(YEAR(F1), MONTH(F1), 1)):
 INDIRECT("B"&EOMONTH(DATE(YEAR(F1), MONTH(F1), 1), 0)))), 
 REGEXREPLACE(TEXT(TO_DATE(ROW(
 INDIRECT("A"&        DATE(YEAR(F1), MONTH(F1), 1)):
 INDIRECT("B"&EOMONTH(DATE(YEAR(F1), MONTH(F1), 1), 0)))), "ddd"),
 "Mon|Tue|Wed|Thu|Sat|Sun", "♠")<>"♠"))+1)), 2)))

0

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