我有一张 Excel 表,其中:
- 在 A 栏:周数
- 在 B 列:日期(时间表条目)
我需要知道每周的工作天数。因此我需要每周的特定日期条目数。
我找到了可以在固定范围内处理这个问题的公式(数组和非数组),但我希望将结果放在另一列(每周数)。
以下示例数据集的结果将是(冒号只是为了清楚起见):
14: 2
15: 3
17: 6
20: 2
21: 3
如果这是源数据:
14: 4/04/2012
14: 4/04/2012
15: 10/04/2012
15: 10/04/2012
15: 11/04/2012
17: 26/04/2012
17: 26/04/2012
17: 26/04/2012
17: 26/04/2012
17: 27/04/2012
17: 27/04/2012
20: 14/05/2012
20: 14/05/2012
21: 23/05/2012
21: 23/05/2012
21: 25/05/2012
答案1
要计算条目数,请=countif(A:B,D1)
假设您的周数在单元格 D1 中,并且您的条目列表在 A 列和 B 列中。
另一个选择是创建一个数据透视表,以周数作为行标签,以条目数作为数据。这将提供可以快速更新的良好摘要。
答案2
完全使用公式是可以做到的。它需要一点间接寻址和一个(但为了清楚起见,我将把它变成两个)沿着原始数据的单独工作列,以及结果表中的三个额外列:
我假设实际数据从第 3 行开始,以便显示一些标题。我将使用;
参数分隔符,但这不是美国语言环境的默认设置。我不会假设日期是排序的有了这个假设,解决方案就会更简单。
- 单元格 H2(输入多少行):
=COUNT(A3:A1048576)
- 单元格 C3(动态查找范围):无
- 单元格 C4:C1000:
=ADDRESS(ROW(A$3);COLUMN(A$3)) & ":" & ADDRESS(ROW(A3);COLUMN(A3))
- 单元格 D3(唯一):
TRUE
- 单元格 D4:D1000:
=COUNTIF(INDIRECT(C4);A4)=0
- 单元格 E3(唯一条目数):
1
- 单元格 E4:E1000:
=IF(D4;E3+1;E3)
- 单元格 I2(发现的唯一数):
=OFFSET(E3;H2-1;0)
- 单元格 J2(工作日范围):
=ADDRESS(ROW(A3);COLUMN(A3);4) & ":" & ADDRESS(ROW(A3)-1+$H$2;COLUMN(A3);4)
- 单元格 K2(唯一工作日范围编号):
=ADDRESS(ROW(E3);COLUMN(E3);4) & ":" & ADDRESS(ROW(E3)-1+$H$2;COLUMN(E3);4)
- 单元格 H5(计数器):
1
- 单元格 H6:H100
=H5+1
- 单元格 I5:I100 (位置):
=MATCH(H5;INDIRECT($K$2);0)
- 单元格 J5:J100(星期几):
=OFFSET($A$3;I5-1;0)
- 单元格 K5:K100(计数):
=COUNTIF(INDIRECT($J$2);J5)
最终结果在 K5:K100 范围内。
请注意,虽然我使用的是间接公式,但如果您在任意位置插入一列,或者删除 G:G 的 F:F 列,解决方案仍将有效。您也可以移动单元格,只要您将包含数据的列放在一起即可。
将所有内容保存在一个工作表中非常重要。如果您坚持将表 H4:K100 移到另一个工作表中,则应修改单元格 J2 和 K2 中的地址以包含工作表名称。
答案3
数据透视表可能是最简单的