Google sheets 查询where子句中的数组单元格引用
Google Sheets示例文件: 我试图计算每个人每个月的平均值。我要匹配的两个变量是日期的名称和月份。当前,如果我使用以下公式将公式应用于每个单元格,我可以获得正确的值:Google sheets 查询where子句中的数组单元格引用,google-sheets,google-sheets-formula,Google Sheets,Google Sheets Formula,Google Sheets示例文件: 我试图计算每个人每个月的平均值。我要匹配的两个变量是日期的名称和月份。当前,如果我使用以下公式将公式应用于每个单元格,我可以获得正确的值: =IFERROR(查询(Sheet2!A:C,“选择平均值(C),其中A='”&A2&'”和月(B)=月(日期)”&文本(日期(2021年,月(日期值($A$1&“)),1),“yyyy-mm-dd”)&“)标签平均值(C)”,“-” 我想做的是能够做一个arrayformula,这样我只需要输入一次公式,而不必担心输
=IFERROR(查询(Sheet2!A:C,“选择平均值(C),其中A='”&A2&'”和月(B)=月(日期)”&文本(日期(2021年,月(日期值($A$1&“)),1),“yyyy-mm-dd”)&“)标签平均值(C)”,“-”
我想做的是能够做一个arrayformula,这样我只需要输入一次公式,而不必担心输入的名称数量。我试着用这个公式:
=ARRAYFORMULA(iError(查询(Sheet2!A:C,“选择平均值(C),其中A=”)&A2:A&“和月(B)=月(日期)”&文本(日期(2021年,月(日期值($A$1&“1”)),1),“yyyy-mm-dd”)&“标签平均值(C)”,“-”)
,但它只计算该行的平均值
如果可能,解决方案也应该使用查询,因为在我将使用它的数据中,由于某种原因,我无法使用sumifs/averageifs。尝试:
=QUERY('data source'!A2:C,
"select A,avg(C)
where month(B)+1 = "&MONTH(A1&1)&"
group by A
label avg(C)''")
=ARRAYFORMULA({SORT(UNIQUE(FILTER('data source'!A2:A,'data source'!A2:A'))),
IFNA(VLOOKUP(排序(唯一(筛选器('data source'!A2:A,'data source'!A2:A'))),
查询('数据源'!A2:C,“选择A,平均值(C),其中月份(B)+1=”&
月份(A1和1)和“按标签分组平均值(C)”,2,0),“-”})
根据需要解决问题!解决这个问题的主要方法是在查询后添加vlookup@player0再次非常感谢您提供快速而优雅的解决方案!
=ARRAYFORMULA({SORT(UNIQUE(FILTER('data source'!A2:A, 'data source'!A2:A<>""))),
IFNA(VLOOKUP(SORT(UNIQUE(FILTER('data source'!A2:A, 'data source'!A2:A<>""))),
QUERY('data source'!A2:C, "select A,avg(C) where month(B)+1 = "&
MONTH(A1&1)&" group by A label avg(C)''"), 2, 0), "-")})