我在 Excel 中有三列显示 Solved(1,0)、开始日期和 Lastchanged 日期。我所说的列是从 sql 数据库中读取的。我在制作一个公式时遇到了麻烦,该公式给出了 excel 中已解决 = 1 的网络日平均值。帮助?
3 回答
最简单的方法:
在单元格 D1 中键入“差异”。
在单元格 D2 中,键入
=(C2-B2)
获取两个日期之间的天数差异。将其向下拖动以获得两列的长度。
突出显示列标题 A1:D1,然后单击排序和筛选 -> 筛选。
现在单击第 1 列中的下拉菜单并取消选中“0”。只留下 1 的记录。
然后转到列的底部,在 D 列的第一个空单元格中,键入:
=average(D2:D...)
对于“...”,输入 D 列中您有数字的最后一个单元格。然后只需按回车键。
我想这个功能INDIRECT
可能有助于结合=AVERAGE(IF(A1:A?=1,NETWORKDAYS(B2:B?+0,C2:C?+0)))
. 来自 Excel 帮助:“[INDIRECT 函数] 返回由文本字符串指定的引用。立即评估引用以显示其内容。当您想要更改对公式中单元格的引用而不更改公式本身时,请使用 INDIRECT。”
此外(这不是专门回答您的问题,但您可能会发现它很有用),该功能SUBTOTAL
可以为您提供仅显示单元格的平均值(即,未隐藏或过滤)。因此,您可以应用过滤器来查看您正在寻找的平均值。
NETWORKDAYS
函数不接受范围作为开始日期或结束日期,但在 Excel 2007 或更高版本中,它接受“数组”,因此这样的数组公式将平均列 A 和 B 之间的工作日数,其中列 A = 1
=AVERAGE(IF(A2:A10=1,NETWORKDAYS(B2:B10+0,C2:C10+0)))
用CTRL+ SHIFT+确认ENTER
+0 将范围转换为可以处理B2:B10
的数组。NETWORKDAYS
由于那些 +0,您只能在 B2:C10 中使用数值(如日期)