google-sheets - 在不同列中使用具有多个文本条件的 =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
我还添加了一个屏幕截图。我希望有人可以帮助我。会很棒,谢谢!
解决方案
在 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)
更改范围以适应。
推荐阅读
- php - 在迁移文件中获取表ID(laravel 5.8)
- c# - 我可以从我的 Windows 窗体应用程序中注册 neobux
- c - 在不断将数据写入文件(SDCard)时,应该多久打开和关闭一次文件?
- java - Java jar 文件无法识别从 gradle 添加的外部库
- delphi - 从 COM 指针到记录 / 如何执行(dotNet 的)Marshal.PtrToStructure 的 Delphi 版本
- reactjs - useFetch Can't perform a React state update on an unmounted component 警告
- reactjs - 去抖动 async/await 并更新组件状态
- asp.net-mvc - 客户端不显眼的验证未按预期工作
- javascript - 等待脚本在 VueJS 中加载?
- php - 如何在不运行 Composer 的情况下在 Google App Engine 上部署 php 应用程序?