根据不规则的工作日计算每周变化(由于假期)

问题描述 投票:1回答:2

如何根据不规则的工作日计算每周更改,例如包含四个工作日的周数?

如果一周只有四天,我正在考虑'countif',然后做sum(day1:day4) on change%'s data

如果有五天,那么sum(day1:day5)

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

google-sheets array-formulas google-sheets-formula
2个回答
1
投票

粘贴在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%"), ))

0


1
投票

在下面的答案中,有必要在数据范围(weeknumweekday)加上Weekly Lookup Helper Table创建两个额外的列(必要时可以隐藏)。帮助者表可以在单独的表格上;它可以/应该是52行(每个工作周一个)。

整个解决方案如下所示: enter image description here

公式是: 工作日数据范围

  • 每周数量(细胞B2)=weeknum(A2,1)
  • 平日(细胞C2)=weekday(A2)
  • 价值(细胞D2)User input
  • 每日变化(细胞E2)=(C2-C3)/C3
  • 每周变化(细胞F2)=IF(ISERROR(vlookup(B2&" "&C2,$H$4:$K$7,4,false)), "", vlookup(B2&" "&C2,$H$4:$K$7,4,false))

查找表

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

逻辑 帮手表 帮助表非常重要。 maxifs:这将提取每周数字的最大工作日。 Weekly Change:按周数汇总每日变化。查找键只是“week”和“maxifs”值的串联;这将是一个独特的价值。

工作日范围 "weeknum""weekday"为每一天创造相关价值。 Friday weekly change是一个在weeknum / weekday上搜索的vlookup函数(作为字符串),搜索范围是帮助表。 weeknum和weekday的组合将是一个唯一值,使vlookup成功。

© www.soinside.com 2019 - 2024. All rights reserved.