为什么不这样做:
粘贴到单元格D2:
=ARRAYFORMULA(FILTER(
QUERY(TO_DATE(ROW(INDIRECT(DATEVALUE(C2)&":"&DATEVALUE(C2)+SUM(B2:B)*2))),
"where not dayofweek(Col1) matches '1|7'"),
IF(REGEXMATCH(TO_TEXT(ROW(INDIRECT("A1:A"&COUNTA(
QUERY(TO_DATE(ROW(INDIRECT(DATEVALUE(C2)&":"&DATEVALUE(C2)+SUM(B2:B)*2))),
"where not dayofweek(Col1) matches '1|7'"))))), "^"&JOIN("$|^",
IF(A2:A="",,MMULT(TRANSPOSE((ROW(A2:A)<=TRANSPOSE(ROW(A2:A)))*(B2:B)),
SIGN(B2:B))))&"$"), "♀", )="♀"))
粘贴到单元格C3:
=ARRAYFORMULA(IF(A3:A="",,FILTER(
QUERY(TO_DATE(ROW(INDIRECT(DATEVALUE(C2)&":"&DATEVALUE(C2)+SUM(B2:B)*2))),
"where not dayofweek(Col1) matches '1|7'"),
IF(REGEXMATCH(TO_TEXT(ROW(INDIRECT("A1:A"&COUNTA(
QUERY(TO_DATE(ROW(INDIRECT(DATEVALUE(C2)&":"&DATEVALUE(C2)+SUM(B2:B)*2))),
"where not dayofweek(Col1) matches '1|7'"))))), "^"&JOIN("$|^",
IF(A2:A="",,MMULT(TRANSPOSE((ROW(A2:A)<=TRANSPOSE(ROW(A2:A)))*(B2:B)),
SIGN(B2:B))+1))&"$"), "♀", )="♀")))
带假期列表:
=ARRAYFORMULA(FILTER(
QUERY(TO_DATE(ROW(INDIRECT(DATEVALUE(C2)&":"&DATEVALUE(C2)+SUM(B2:B)*2))),
"where not dayofweek(Col1) matches '1|7' and not Col1 matches '"&
TEXTJOIN("|", 1, H2:H)&"'"),
IF(REGEXMATCH(TO_TEXT(ROW(INDIRECT("A1:A"&COUNTA(
QUERY(TO_DATE(ROW(INDIRECT(DATEVALUE(C2)&":"&DATEVALUE(C2)+SUM(B2:B)*2))),
"where not dayofweek(Col1) matches '1|7' and not Col1 matches '"&
TEXTJOIN("|", 1, H2:H)&"'"))))), "^"&JOIN("$|^",
IF(A2:A="",,MMULT(TRANSPOSE((ROW(A2:A)<=TRANSPOSE(ROW(A2:A)))*(B2:B)),
SIGN(B2:B))))&"$"), "♀", )="♀"))