使用Excel公式计算某个值落下的唯一天数

使用Excel公式计算某个值落下的唯一天数,excel,excel-formula,Excel,Excel Formula,我有以下数据: 我尝试过许多公式,它们不断返回#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:B1

我有以下数据:

我尝试过许多公式,它们不断返回#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
,它给出了我想要的结果,除了如果有重复的日期,那么它显示的不是3,而是2.5:

=SUMPRODUCT((A2:A10“”)*(B2:B10=C1))/COUNTIF(A2:A10,A2:A10&“”)
有人能帮忙吗

提前感谢您的帮助。

试试这个:

=SUM(IF(FREQUENCY(IF(B2:B10=C1,IF(A2:A10<>"",MATCH(A2:A10,A2:A10,0))),ROW(A2:A10)-ROW(A2)+1),1))
=和(如果(频率)(如果(B2:B10=C1,如果(A2:A10)”,匹配(A2:A10,A2:A10,0))),行(A2:A10)-行(A2)+1)
注:

  • C1
    是您的查找值,例如
    H72
  • 公式必须作为数组公式{CTRL+SHIFT+ENTER}输入
试试这个:

=SUM(IF(FREQUENCY(IF(B2:B10=C1,IF(A2:A10<>"",MATCH(A2:A10,A2:A10,0))),ROW(A2:A10)-ROW(A2)+1),1))
=和(如果(频率)(如果(B2:B10=C1,如果(A2:A10)”,匹配(A2:A10,A2:A10,0))),行(A2:A10)-行(A2)+1)
注:

  • C1
    是您的查找值,例如
    H72
  • 公式必须作为数组公式{CTRL+SHIFT+ENTER}输入

因为日期是数值,所以不需要使用match

=SUM(IF(FREQUENCY(IF(B2:B10=C1,A2:A10),A2:A10)>0,1))

此外,此公式不会忽略空白值


与以前一样,需要使用CtrlShift Enter输入日期,因为日期是数值,所以不需要使用match

=SUM(IF(FREQUENCY(IF(B2:B10=C1,A2:A10),A2:A10)>0,1))

此外,此公式不会忽略空白值


与以前一样,需要使用CtrlShift输入

感谢您的回复!你的解决方案奏效了,但你一定认为汤姆的解决方案更简单,这也是我不接受你的解决方案的唯一原因。谢谢你,谢谢你的回复,亚历克斯!你的解决方案奏效了,但你一定认为汤姆的解决方案更简单,这也是我不接受你的解决方案的唯一原因。谢谢你,谢谢汤姆!这正是我想要的!非常简单!非常感谢。谢谢你,汤姆!这正是我想要的!非常简单!非常感谢。