Excel 基于日期的值的 MEDIAN 公式

Excel 基于日期的值的 MEDIAN 公式

如果你能帮助我,我又被一个公式难住了:)

我需要找到具有某个标准的日期范围的中位数,例如:

code   date    time

5X     08 Feb  5115

5P     08 Feb  5225

5P     09 Feb  5652

5X     09 Feb  5655

5X     10 Feb  5896

那么,2 月 9 日所有 5X 值的中位数是多少?我用 SUMIF 算出来了,而且成功了(A856 和 A857 是日期)

=SUMIFS($Q$2:$Q$132242,$B$2:$B$132242,"5X",$C$2:$C$132242, ">="&$A856,$C$2:$C$132242, "<="&$A857)

有没有办法模拟 MEDIANIFS 公式?另外,我无法手动输入日期,因为我多年来有数千个条目,这会花费太长时间。我需要能够复制公式。

如果你能帮忙的话请告诉我。提前谢谢。

更新(编辑): 此文件是该问题的模型:电子表格模型 该公式需要在 Excel 2013 上运行(因此,没有 XLOOKUP)。它还需要是动态的(无需手动输入日期)。实际文件包含多年中的许多日期,因此,我需要能够为任何给定的日期范围选择一个中位数。应该找到 5X 和 5P 的中位数。那里有一个 5X 的目标需要测试。

答案1

您可以使用以下数组公式:

=MEDIAN(IF(($A$2:$A$11=A2)*($B$2:$B$11=B2),$C$2:$C$11,""))

ctrl编辑后的数组公式按+ shift+确认enter

在此处输入图片描述

编辑

如果数据包含空值,公式已补充:

=MEDIAN(IF(($A$2:$A$11=A2)*($B$2:$B$11=B2)*ISNUMBER($C$2:$C$11),$C$2:$C$11))

还有数组公式。

在此处输入图片描述

编辑

对于日期期间,数组公式必须补充一个条件:

=MEDIAN(IF(($A$1:$A$58=I57)*($B$1:$B$58>=J57)*($B$1:$B$58<=K57)*ISNUMBER($C$1:$C$58),$C$1:$C$58))

在此处输入图片描述

答案2

您可以使用这个简单的数组(CSE)公式:

在此处输入图片描述

  • 单元格中的公式C42

    {=MEDIAN(IF($A$36:$A$40="5X",IF($B$36:$B$40=DATE(2020,2,9),$C$36:$C$40)))}
    

完成公式Ctrl+Shift+Enter

注意:

如果要使公式动态化,则用单元格引用替换5XDATE(2020,02,09),公式应该是这样的,

{=MEDIAN(IF($A$36:$A$40=A$34,IF($B$36:$B$40=B$34,$C$36:$C$40)))}

哪里A34F第一个标准,5X,并且B34s第二个是日期02/09/2020

根据需要调整单元格引用和日期格式。

相关内容