Google sheets 从按天加权的每周数据得出的一个月的总和

Google sheets 从按天加权的每周数据得出的一个月的总和,google-sheets,google-sheets-formula,array-formulas,google-sheets-query,google-query-language,Google Sheets,Google Sheets Formula,Array Formulas,Google Sheets Query,Google Query Language,我有一张周值表,我想计算一下月值是多少。问题是,如果一周的值(比如70)分为两个月(比如1月的3天和2月的4天),我希望1月的计算(求和)值取一周的值,1月的(3/7)x70=30,2月的(4/7)x70=40 此处的示例表: 如果您能提供任何帮助,我们将不胜感激 =ARRAYFORMULA(REGEXREPLACE(TO_TEXT(QUERY({TEXT(TRANSPOSE(D1:1), "m♦mmmm yyyy"), TRANSPOSE(D2:2)-IF(MOD(RO

我有一张周值表,我想计算一下月值是多少。问题是,如果一周的值(比如70)分为两个月(比如1月的3天和2月的4天),我希望1月的计算(求和)值取一周的值,1月的(3/7)x70=30,2月的(4/7)x70=40

此处的示例表:

如果您能提供任何帮助,我们将不胜感激

=ARRAYFORMULA(REGEXREPLACE(TO_TEXT(QUERY({TEXT(TRANSPOSE(D1:1), "m♦mmmm yyyy"), 
 TRANSPOSE(D2:2)-IF(MOD(ROW(INDIRECT("A1:A"&COLUMNS(D1:1))), 4)=0, 
 DAYS(EOMONTH(TRANSPOSE(D1:1), 0), TRANSPOSE(D1:1))/7*TRANSPOSE(D2:2), )+
 QUERY({""; IF(MOD(ROW(INDIRECT("A1:A"&COLUMNS(D1:1))),4)=0, 
 DAYS(EOMONTH(TRANSPOSE(D1:1), 0), TRANSPOSE(D1:1))/7*TRANSPOSE(D2:2), )}, 
 "limit "&COLUMNS(D1:1), 0)}, 
 "select Col1,sum(Col2) where not Col2 = 0 group by Col1 label sum(Col2)''", 0)), 
 "(.+)♦", ))


修正:

工作表是私人的。很抱歉,我打开了它-谢谢您的回复。这个公式给了我每个月的值,但我想将2019年1月28日开始的一周的值75除以1月和2月1日1/28 1/29 1/30 1/31 2/1 2/3 2/4是周M-F,所以对于1月,我想计算4天值:(4/7)*75=42.85 2月3天值:(3/7)*75=32.14,并将这些值分别添加到1月和2月。我不确定是否理解。能否在工作表中提供所需输出的示例?添加了一个示例手动行。我想为每一天计算一个值,因为一些星期(周一到周日)跨越几个月,我需要一个公式,以每个月的天数为权重计算跨越迷宫的周数,非常感谢!这是否需要在输出方面进行转换?谢谢玩家0!
=ARRAYFORMULA(TRANSPOSE(QUERY({REGEXREPLACE(TO_TEXT(QUERY({TEXT(TRANSPOSE(D1:1), "m♦mmmm yyyy"), 
 TRANSPOSE(D2:2)-IF(MOD(ROW(INDIRECT("A1:A"&COLUMNS(D1:1))), 4)=0, 
 DAYS(EOMONTH(TRANSPOSE(D1:1), 0), TRANSPOSE(D1:1))/7*TRANSPOSE(D2:2), )+
 QUERY({""; IF(MOD(ROW(INDIRECT("A1:A"&COLUMNS(D1:1))),4)=0, 
 DAYS(EOMONTH(TRANSPOSE(D1:1), 0), TRANSPOSE(D1:1))/7*TRANSPOSE(D2:2), )}, 
 "limit "&COLUMNS(D1:1), 0)}, 
 "select Col1,sum(Col2) where not Col2 = 0 group by Col1 label sum(Col2)''", 0)), 
 "(.+)♦", ), 
 IF(LEN(QUERY(REGEXREPLACE(TO_TEXT(QUERY({TEXT(TRANSPOSE(D1:1), "m♦mmmm yyyy"), 
 TRANSPOSE(D2:2)-IF(MOD(ROW(INDIRECT("A1:A"&COLUMNS(D1:1))), 4)=0, 
 DAYS(EOMONTH(TRANSPOSE(D1:1), 0), TRANSPOSE(D1:1))/7*TRANSPOSE(D2:2), )+
 QUERY({""; IF(MOD(ROW(INDIRECT("A1:A"&COLUMNS(D1:1))),4)=0, 
 DAYS(EOMONTH(TRANSPOSE(D1:1), 0), TRANSPOSE(D1:1))/7*TRANSPOSE(D2:2), )}, 
 "limit "&COLUMNS(D1:1), 0)}, 
 "select Col1,sum(Col2) where not Col2 = 0 group by Col1 label sum(Col2)''", 0)), 
 "(.+)♦", ),"select Col1",0)), MONTH(LEFT(
 QUERY(REGEXREPLACE(TO_TEXT(QUERY({TEXT(TRANSPOSE(D1:1), "m♦mmmm yyyy"), 
 TRANSPOSE(D2:2)-IF(MOD(ROW(INDIRECT("A1:A"&COLUMNS(D1:1))), 4)=0, 
 DAYS(EOMONTH(TRANSPOSE(D1:1), 0), TRANSPOSE(D1:1))/7*TRANSPOSE(D2:2), )+
 QUERY({""; IF(MOD(ROW(INDIRECT("A1:A"&COLUMNS(D1:1))),4)=0, 
 DAYS(EOMONTH(TRANSPOSE(D1:1), 0), TRANSPOSE(D1:1))/7*TRANSPOSE(D2:2), )}, 
 "limit "&COLUMNS(D1:1), 0)}, 
 "select Col1,sum(Col2) where not Col2 = 0 group by Col1 label sum(Col2)''", 0)), 
 "(.+)♦", ),"select Col1", 0), 3)&1)&RIGHT(
 QUERY(REGEXREPLACE(TO_TEXT(QUERY({TEXT(TRANSPOSE(D1:1), "m♦mmmm yyyy"), 
 TRANSPOSE(D2:2)-IF(MOD(ROW(INDIRECT("A1:A"&COLUMNS(D1:1))), 4)=0, 
 DAYS(EOMONTH(TRANSPOSE(D1:1), 0), TRANSPOSE(D1:1))/7*TRANSPOSE(D2:2), )+
 QUERY({""; IF(MOD(ROW(INDIRECT("A1:A"&COLUMNS(D1:1))),4)=0, 
 DAYS(EOMONTH(TRANSPOSE(D1:1), 0), TRANSPOSE(D1:1))/7*TRANSPOSE(D2:2), )}, 
 "limit "&COLUMNS(D1:1), 0)}, 
 "select Col1,sum(Col2) where not Col2 = 0 group by Col1 label sum(Col2)''", 0)), 
 "(.+)♦", ),"select Col1", 0), 4), )*1}, 
 "select Col1,Col2 order by Col3")))