我有以下数据:
我尝试了许多公式,不断返回#Div/0 或#Value,但我得到了一个我认为可以工作的公式,但我不知道如何调整它,我对公式很陌生:
=SUM(IF(FREQUENCY(MATCH(C1,B2:B10,0),MATCH(C1,B2:B10,0))>0,1))
据我所知,通过使用 Ctrl + Shift + Enter,它创建了一个数组,在这种情况下返回 1,在这种情况下是正确的,因为“H72”只有 1 个唯一值
如果我将公式更改为:
=SUM(IF(FREQUENCY(MATCH(B2:B10,B2:B10,0),MATCH(B2:B10,B2:B10,0))>0,1))
通过按 Ctrl+Shift+Enter,我得到一个值 3,这也是正确的,因为列表中有 3 个唯一值(H72、H7、T122)。
但是,我想做的是从 A 列获取唯一日期的数量,其中 B 列 = 单元格 C1(在本例中为 H72),但我不知道如何调整这个公式。所以换句话说,在这种情况下必须返回的值是 3,因为 H72 在 3 个不同的日期内。但是,如果有重复:
日期 |数据
2017-12-01 | H72
2017-12-01 | H72
2017-12-02 | H72
总数应该只有 2,因为 H72 属于 2 个唯一日期
-----更新-----
所以我尝试了另一个公式,利用
SUMPRODUCT
和 COUNTIF
它给出了我正在寻找的结果,除非有重复的日期,然后显示 2.5 而不是显示 3:=SUMPRODUCT(((A2:A10 <> "")*(B2:B10=C1))/COUNTIF(A2:A10,A2:A10 & ""))
请问有人可以帮忙吗?
在此先感谢您的帮助。
最佳答案
因为日期是数值,所以您不需要使用 match
=SUM(IF(FREQUENCY(IF(B2:B10=C1,A2:A10),A2:A10)>0,1))
见 support article
此外,此公式确实忽略了空白值。
和之前一样,需要用 CtrlShiftEnter 输入
关于excel - 使用 Excel 公式计算某个值落在的唯一天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48783024/