有中断的谷歌工作表增量天数

时间:2021-04-13 14:21:21

标签: google-sheets increment weekday

我有一个谷歌表,它给了我一个动态的日增量。我现在使用的公式是这样的:

=IF(ISTEXT(A1),1,IF(WEEKDAY(B2)=7,,IF(WEEKDAY(B2)=1,,INDEX(FILTER($A$1:A2,$A$1:A2<>""),COUNT(FILTER($A$1:A2,$A$1:A2<>"")))+1)))

第一部分 (ISTEXT) 检查上面的单元格,看看它是否有文本...恰好是列标题。如果是,我们从 1 开始计数。之后,只要 B 列中的日期不是周末(星期六或星期日),它就会增加 +1。如果是,它将留空。然后,一旦它再次到达星期一,它就会从上次停止的地方继续计数。

这为我提供了一种动态计算 20 个工作日时间表的方法。我可以插入开始日期,它会计算出 20 天的工作日时间表,跳过周末。我正在尝试添加一个额外的机制来将其他中断纳入工作日时间表,例如假期。我有一列 (F) 用于放置注释。我想在原始公式中加入类似的内容:

=if(F2="Holiday","H",<do the other stuff>)

我遇到的问题是我在这个原始公式中所做的一切都是基于空格。一旦 H 被放置在字段中,它就会中断递增。我在想,也许我把这件事弄得太复杂了,或者做错了什么,但希望有人能在这里帮助我。

示例:Google Sheets

1 个答案:

答案 0 :(得分:2)

我复制了表格(参见标签 JPV_HELP)并输入到 B3

=sequence(eomonth(B2, 0)-B2, 1, B2+1, 1)

在 A2 中

=Arrayformula(if(C2:C<>"", regexreplace(C2:C, "[^A-Z]",), if( (weekday(B2:B) = 1)+(weekday(B2:B) = 7), ,countifs (weekday(B2:B), ">1", weekday(B2:B), "<7", C2:C, "", row(B2:B), "<="&row(B2:B)))))

如果在 C 列中输入任何内容,则公式将提取大写字母以在 A 列中输出。

看看这对你有用吗?