【问题标题】:Count unique dates from log list if matches cell如果匹配单元格,则从日志列表中计算唯一日期
【发布时间】:2016-08-24 01:02:09
【问题描述】:

我有一份公司员工记录的工作时间列表。我正在寻找一个可以计算每个员工记录的唯一日期数的函数,如下图所示。

Emplyee     Date            Employee    Unique logged dates
John        2016-08-20      John        3
John        2016-08-21      Fredrik     5
John        2016-08-22      Josefine    2
Fredrik     2016-08-20          
Fredrik     2016-08-21          
Fredrik     2016-08-22          
Fredrik     2016-08-23          
Fredrik     2016-08-24          
Josefine    2016-08-20          
Josefine    2016-08-21      

Here's an example of the list

使用此功能,我可以计算唯一日期的数量,但不能计算员工列表。所以一个函数来提出“唯一记录的日期”

=SUMPRODUCT((B2:B11<>"")/COUNTIF(B2:B11,B2:B11))

【问题讨论】:

  • 您也可以将该表格发布为文本吗? (进入您的原始帖子,并使用{} 格式)
  • 日期是否总是唯一的(每个名称部分),如您的示例所示?如果是这样,您可以只做一个 COUNTIF 公式并去掉 A 列中的名称而不是日期。
  • @BruceWayne,现在你有桌子了。您的功能几乎可以工作,但是当我放大它时它没有显示正确的数字。丢失几个日期。不过真的很感激再试一次。谢谢
  • @tigeravatar,可以有多个日期。因此,一个人可以拥有许多具有相同日期的日志(列表中还有几个小时在这里并不重要)。

标签: excel


【解决方案1】:

你很接近,我认为这应该适合你(我假设你的 A 列有名称,B 有日期,D2 是一个名称):

=RoundUp(SumProduct((($A$2:$A$11=D2))/Countif($B$2:$B$11,$B$2:$B$11)),0)

并作为数组输入(使用 CTRL+SHIFT+ENTER

【讨论】:

  • 正如我之前写的那样,您的函数几乎就在那里,但是当按比例放大时,结果却低于实际值。
【解决方案2】:

使用您提供的示例,在单元格 E2 中并向下复制以下 数组 公式:

=SUM(IF(FREQUENCY(IF($A$2:$A$100=D2,IF($B$2:$B$100<>"",MATCH($B$2:$B$100,$B$2:$B$100,0))),ROW($A$2:$A$100)-ROW($A$2)+1),1))

注意,数组公式必须用Ctrl+Shift+Enter确认,而不仅仅是Enter

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 2019-10-31
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多