首页 > 解决方案 > 在不同列中使用具有多个文本条件的 =averageifs

问题描述

我正忙于创建一个电子表格,我可以在其中获取带有特定标签(目的地)的假期交易的平均价格。当我只为一个标签列执行此操作时,公式正在工作:):

=averageifs(C4:C10,E4:E10,L1,F4:F10,"Frankrijk vakantie")

但是......我总共有 10 多个标签列,并且在每一列中都可以找到类似“Frankrijk vakantie”的内容。我的简单想法是,好吧,让我们将 F4:F10(在此示例中)更改为 F4:G10 以在两列中查找“Frankrijk vakantie”。但是……这个公式不起作用。

电子表格链接:https ://drive.google.com/file/d/1Gw5VC5qT1bzbFIPBu5j4dLXBmJjh7GuW/view?usp=sharing

我还添加了一个屏幕截图。我希望有人可以帮助我。会很棒,谢谢!

电子表格的屏幕截图

标签: google-sheetsgoogle-sheets-formula

解决方案


在 L2 中尝试

=query({C4:C11, ArrayFormula(N(mmult(N(F4:O11="Frankrijk vakantie"), transpose(column(F3:O3)^0))>0))}, "Select AVG(Col1) where Col2 > 0 label AVG(Col1) '' ")

看看这是否有效?

编辑:包括一个月/年过滤器尝试

=query({C4:C11, ArrayFormula(N(mmult(N( (F4:O11="Frankrijk vakantie")*(E4:E11=L1)), transpose(column(F3:O3)^0))>0))}, "Select AVG(Col1) where Col2 > 0 label AVG(Col1) '' ")

该公式使用了一个虚拟数组,其中包含 C 列的值和 mmult() 函数的输出。如果在该行中找到 'Franrkijk vakantie' 并且 E 列中的日期与 L1 中的日期匹配,则后者创建一个带有 1 的列。然后查询对列 C 中的值进行平均,并过滤掉不满足 MMULT() 条件的行。

编辑2:要检查行中的“双重匹配”,请尝试

=query({C4:E11, transpose(query(transpose(F4:S11),,9^99))}, "Select AVG(Col1) where Col3='"&L1&"' and Col4 contains 'Frankrijk vakantie' and Col4 contains 'Europa vakantie' label AVG(Col1)''", 0) 

更改范围以适应。


推荐阅读