Google sheets 根据非正常工作日(因节假日)计算每周变化

Google sheets 根据非正常工作日(因节假日)计算每周变化,google-sheets,array-formulas,google-sheets-formula,Google Sheets,Array Formulas,Google Sheets Formula,如何根据不规则的工作日计算每周变化,例如包含四个工作日的周 如果一周只有四天,我想用“countif”,然后对change%的数据进行sum(day1:day4) 如果有五天,那么求和(第1天:第5天) 但是,我无法以代码格式编写此内容。在下面的回答中,有必要在数据范围(weeknum和weekday)中创建两个额外的列(如果需要,可以隐藏),再加上一个每周查找帮助表。辅助表可以在单独的表上;它可以/应该有52行长(每个工作周一行) 整个解决方案如下所示: 公式为: 工作日数据范围 周数(单

如何根据不规则的工作日计算每周变化,例如包含四个工作日的周

如果一周只有四天,我想用“countif”,然后对change%的数据进行
sum(day1:day4)

如果有五天,那么求和(第1天:第5天)


但是,我无法以代码格式编写此内容。

在下面的回答中,有必要在数据范围(
weeknum
weekday
)中创建两个额外的列(如果需要,可以隐藏),再加上一个
每周查找帮助表
。辅助表可以在单独的表上;它可以/应该有52行长(每个工作周一行)

整个解决方案如下所示:

公式为:
工作日数据范围

  • 周数(单元格B2)
    =周数(A2,1)
  • 工作日(单元格C2)
    =工作日(A2)
  • 值(单元格D2)
    用户输入
  • 每日变化(单元格E2)
    =(C2-C3)/C3
  • 每周变化(单元格F2)
    =IF(iSeries错误(vlookup(B2&“和C2,$H$4:$K$7,4,假)),“”,vlookup(B2&“和C2,$H$4:$K$7,4,假))
查找表

  • 查找键(单元格H4)
    =I4&&J4
  • 周(单元I4)-用户输入;创建一个52行长的表格,并在此列中输入周数1到52
  • maxifs(单元格J4)
    =maxifs($C$2:$C$B$2:$B,I4)
  • 每周变化(单元格K4)
    =sumif($B$2:$B,I4,$E$2:$E)

逻辑
助手表
助手表很重要。
maxifs
:提取每个星期的最大工作日数。
每周变化
:按周数对每日变化求和。 查找键只是“week”和“maxifs”值的串联;这将是一个独特的价值

工作日范围
“weeknum”
“weekday”
为每天创建相关值。

Friday weekly change
是一个vlookup函数,在weeknum/weekday上搜索(作为字符串),搜索范围是helper表。weeknum和weekday的组合将是一个唯一的值,它使vlookup成功。

粘贴到D2单元格中并向下拖动:

=ARRAYFORMULA(IF(TEXT(A2, "ddd")="Fri", 
 TEXT(SUMPRODUCT(QUERY(QUERY(TO_TEXT({C$2:C, WEEKNUM(A$2:A), YEAR(A$2:A)}), 
 "where Col3 !=''"), 
 "select Col1 
  where Col2 = '"&WEEKNUM(A2)&"' 
    and Col3 = '"&YEAR(A2)&"'")), "0.00%"), ))

欢迎光临。“每周变化”。。。我已经看了你的问题和图片10分钟了,我不明白“每周变化”到底意味着什么。请提供一个解释,说明您正试图计算什么。你可能会发现这本书很有用。每周变动指的是每周五,我想计算5个工作日(如果有假期,则为4个工作日)变动的总和%。因此,如果第1天是5%,第2天是-2%,第3天是0%,第4天是1%,第5天是6%,我想计算每天变化的总和,即10%。然而,有些星期只有4个工作日,所以我不能重复使用求和函数。答案中的颜色完全是随机的(手动),以帮助视觉识别给定一周中的天数。OP的颜色完全不同,为CF,标识一周中的哪一天(如周一、周二等)。