繁体   English   中英

在 Google 表格中的日期列表之间自动填充日期并链接到其他列

[英]Auto-populate dates between list of dates in Google Sheets and link with additional column

我有一个电子表格,列出了员工何时要求离开公司。

数据馈送输入

请问我可以使用什么公式根据输入电子表格的数据生成以下输出?

我要求:

  • 要生成单独的行以显示员工休假的每一天,并链接到他们的姓名
  • 列表中包含所有员工的列表

所需的输出

这是一个包含我汇总的数据的示例电子表格 不幸的是,我遇到的唯一一个在日期之间自动填充的公式是:

=ArrayFormula((TO_DATE(row(indirect("A"&Input!B2):indirect("A"&Input!C2)))))

但是,这也不会带来 A 列的内容,也不会一次处理多行数据。

一种方法是使用sequence() ,如下所示:

=arrayformula( 
  query( 
    split( 
      flatten( 
        if( 
          ( D2:D <= sequence( 1, max(D2:E) - min(D2:E) + 1, min(D2:E) ) )
          *
          ( E2:E >= sequence( 1, max(D2:E) - min(D2:E) + 1, min(D2:E) ) ), 
          A2:A & "→" & trim( to_date( sequence( 1, max(D2:E) - min(D2:E) + 1, min(D2:E) ) ) ), 
          iferror(1/0) 
        ) 
      ), 
      "→", false, true 
    ), 
    "where Col2 is not null", 0 
  ) 
)

尝试:

=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(IF(DAYS(C2:C10, B2:B10)+1>=
 SEQUENCE(1, MAX(DAYS(C2:C10, B2:B10))), A2:A10&"×"&B2:B10+
 SEQUENCE(1, MAX(DAYS(C2:C10, B2:B10)), 0), )), "×"), "where Col2>0", ))

在此处输入图像描述

其他:

=ArrayFormula(IFERROR(QUERY(SPLIT(FLATTEN(FILTER(A2:A&"~"&IF((B2:B+SEQUENCE(1,60))>C2:C,,B2:B+SEQUENCE(1,60)),A2:A<>"")),"~",1,0),"Select * WHERE Col2 Is Not Null"),{"",""}))

这将一次处理最多 60 天的休假。 您可以将两个实例60设置为每人的最大连续休假天数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM