Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 使用过滤单元格上方的单元格按月分组_Date_Google Sheets_Google Sheets Formula_Array Formulas_Google Sheets Query - Fatal编程技术网

Date 使用过滤单元格上方的单元格按月分组

Date 使用过滤单元格上方的单元格按月分组,date,google-sheets,google-sheets-formula,array-formulas,google-sheets-query,Date,Google Sheets,Google Sheets Formula,Array Formulas,Google Sheets Query,我的电子表格如下所示: 我有两个我感兴趣的专栏,日期和计数。每隔几天,将有一个“总计”行,其中将汇总与该总计对应的所有计数。 我想要一个输出,看起来像右边的单元格,所有的总计数都是根据月份求和的。问题在于A列在单独的行中只有日期或总计,并且此布局无法更改,这使我认为需要引用A列中总计正上方的单元格,该单元格具有我想要分组总计的正确月份 我不能只按日期范围筛选列的原因是使用不一致,有时计数数据只在总计行中输入 我在互联网上搜索过过滤、间接、查询、SUMIFS等等。。。但却找不到确切的方法 我可

我的电子表格如下所示:

我有两个我感兴趣的专栏,日期和计数。每隔几天,将有一个“总计”行,其中将汇总与该总计对应的所有计数。 我想要一个输出,看起来像右边的单元格,所有的总计数都是根据月份求和的。问题在于A列在单独的行中只有日期或总计,并且此布局无法更改,这使我认为需要引用A列中总计正上方的单元格,该单元格具有我想要分组总计的正确月份

我不能只按日期范围筛选列的原因是使用不一致,有时计数数据只在总计行中输入

我在互联网上搜索过过滤、间接、查询、SUMIFS等等。。。但却找不到确切的方法


我可以很容易地过滤A:A=“TOTAL”的B列,但我认为我需要做的是使用A:A=“TOTAL”上面的每个单元格作为月份标准的范围,不知何故使用我在这里找到的:,用“>=”和D3表示,以及“查询公式适用于此类情况,但如果您计划查看多年数据,按月查看会带来问题:

=arrayformula(QUERY(QUERY({row(A:A),TEXT(A:A,"MMMM"),B:B},"SELECT max(Col1),Col2,sum(Col3) where Col3 is not null group by Col2 order by max(Col1) label Col2 'Month', sum(Col3) 'Count'"),"SELECT Col2,Col3"))

查询公式适用于此类情况,但如果您计划查看多年数据,按月查看会带来问题:

=arrayformula(QUERY(QUERY({row(A:A),TEXT(A:A,"MMMM"),B:B},"SELECT max(Col1),Col2,sum(Col3) where Col3 is not null group by Col2 order by max(Col1) label Col2 'Month', sum(Col3) 'Count'"),"SELECT Col2,Col3"))
尝试:

=ARRAYFORMULA(查询({IF((B2:B=”“)*(A2:A=”“)、VLOOKUP(行(A2:A)),
如果(A2:A“总计”{ROW(A2:A),DATEVALUE(“01/”&MONTH(A2:A)&“/2000”)}),2,1),
如果(A2:A=“总计”,A2:A,),B2:B},
选择Col1,求和(Col3)
其中较低(Col2)=‘总计’
Col1分组
标签和(Col3)'
格式Col1'mmmm'(0))
试试:

=ARRAYFORMULA(查询({IF((B2:B=”“)*(A2:A=”“)、VLOOKUP(行(A2:A)),
如果(A2:A“总计”{ROW(A2:A),DATEVALUE(“01/”&MONTH(A2:A)&“/2000”)}),2,1),
如果(A2:A=“总计”,A2:A,),B2:B},
选择Col1,求和(Col3)
其中较低(Col2)=‘总计’
Col1分组
标签和(Col3)'
格式Col1'mmmm'(0))
或另一种(偏移)方法:

=QUERY(FILTER({EOMONTH(INDIRECT("A1:A"&ROWS(B2:B)), 0), B2:B}, A2:A="total"),
 "select Col1,sum(Col2) 
  group by Col1 
  label sum(Col2)'' 
  format Col1'mmmm'", 0)
或另一种(偏移)方法:

=QUERY(FILTER({EOMONTH(INDIRECT("A1:A"&ROWS(B2:B)), 0), B2:B}, A2:A="total"),
 "select Col1,sum(Col2) 
  group by Col1 
  label sum(Col2)'' 
  format Col1'mmmm'", 0)

这可以将B列中A列不是“总计”的所有计数相加。但是,我需要的是对B列中每一行的总数求和。然后,我需要按月对它们进行分组。这是因为有时只有总计行才有我需要的计数。请看我编辑的图,为这个场景添加了一个视觉效果。@Leanna看起来你没有一个连贯的模式,一月份有多个总数,这有什么意义,是什么阻止total列意外地使用两个不同月份的组合?这可以将B列中a列不是“total”的所有计数相加。但是,我需要的是对B列中每一行的总数求和。然后,我需要按月对它们进行分组。这是因为有时只有总计行才有我需要的计数。请参见我编辑的图,为该场景添加了一个可视化效果。@Leanna您似乎没有一个连贯的模式,一月份有多个总计,这有什么意义,是什么阻止了总计列意外地使用两个不同月份的组合?完成!请查看添加的链接。完成!请查看添加的链接。这很有效!我会在查询中添加“order by Col1 desc”以使最近一个月显示在顶部吗?@Leanna是的,使用下面的命令会给我一个错误:=查询(过滤器({EOMONTH(INDIRECT(“A1:A”)和ROWS(C2:C)),0),C2:C},A2:A=“total”),“选择Col1,sum(Col2)按Col1标签sum分组(Col2)”'按Col1 desc设置Col1'mmmm'顺序,0)这部分的顺序重要吗?@Leanna是的,参数的顺序很重要。使用:
=QUERY(FILTER({EOMONTH(INDIRECT(“A1:A”)和ROWS(B2:B)),0),C2:C},A2:A=“total”),“select Col1,sum(Col2)group by Col1 order by Col1 desc label sum(Col2)”'format Col1'mmmm',0)
这是完美的。谢谢你的参考。这很有效!我会在查询中添加“order by Col1 desc”以使最近一个月显示在顶部吗?@Leanna是的,使用下面的命令会给我一个错误:=查询(过滤器({EOMONTH(INDIRECT(“A1:A”)和ROWS(C2:C)),0),C2:C},A2:A=“total”),“选择Col1,sum(Col2)按Col1标签sum分组(Col2)”'按Col1 desc设置Col1'mmmm'顺序,0)这部分的顺序重要吗?@Leanna是的,参数的顺序很重要。使用:
=QUERY(FILTER({EOMONTH(INDIRECT(“A1:A”)和ROWS(B2:B)),0),C2:C},A2:A=“total”),“select Col1,sum(Col2)group by Col1 order by Col1 desc label sum(Col2)”'format Col1'mmmm',0)
这是完美的。谢谢你的推荐。