我的工作簿中只有几张 Excel 表,我需要使用以下公式来获得结果:
=AVERAGEIFS(Motor!E:F;Motor!A:A;">="&DATE(2014;1;1);Motor!A:A;"<="&DATE(2014;12;31))
因此,上述公式适用于范围乙:乙但它不适用于范围乙:丙
如果在公式中直接输入日期,而我把范围列和日期放在里面,那么这个公式是有效的,但我试图最小化工作表中的输入数据文件。例如,如果我有:
=AVERAGEIFS(Motor!E:E;Motor!A:A;Final_Data!F6;Motor!A:A;Final_Data!E6)
在里面F6我有个约会>=2014年1月1日并在E6有日期<=2014年12月31日那么它就起作用了。
它看起来应该是这样的:
任何帮助将不胜感激!
答案1
您应该正确使用日期格式。这意味着,日期实际上是起始位置为 1.1.1900 且值为“1”的数字。因此,如果您在任何单元格中插入“1”并将单元格的格式更改为“日期”,您将看到 1.1.1900。对您来说,最好的方法是使用带有函数日期的公式,而不是条件中的计划日期。
所以公式就是
=AVERAGE(AVERAGEIFS(Motor!E:E;Motor!A:A;">="&DATE(2014;01;01);Motor!A:A;"<="&DATE(2014;12;31));AVERAGEIFS(Motor!F:F;Motor!A:A;">="&DATE(2014;01;01);Motor!A:A;"<="&DATE(2014;12;31)))
但是在“Final_Data!”后面仍然缺少一些东西,因为它仅定义了一些工作表,但没有定义您想要评估的单元格。
答案2
抱歉,Eidrizi,但这个缺陷比目前为止提到的要严重得多。(这个致命缺陷是 Muji 在评论中提到的根本原因。)
该函数AVERAGEIFS()
要求标准范围在形状和大小上与“sum_range”(即“average_range”)物理匹配。
您希望将其设置为 sum_range(您的平均值范围)宽两列,而两个条件范围宽一列。
第二个公式不起作用,因为你篡改了日期的显示方式。它起作用是因为你将要求平均值的范围移到了单列,该范围与公式中的单列条件范围相匹配。
我将为该问题提供具体的解决方案,因为它可以通过稍微重新组织或将两列物理地(辅助列,实际上只是合并列内容等)或虚拟地(将内容的串联或连接放在公式中而不是单元格引用中(尽管出于某种原因这对我来说不起作用...))变成单个列来解决,以便它符合标准范围的形状和大小。但是...我完全不清楚这里到底发生了什么,因为显示的范围似乎与它们应该的范围相反。
当然,第三种方法是完全使用不同的函数。所以这似乎是完全可以解决的。但如果 flat 不能按建议的方式工作。-IF/-IFS 函数在使用和条件形式上的这种二分法困扰着 Excel 的几乎每一种配对(计数如果/数数独立财务顾问我的意思是-IF/-IFS配对)。