-2

以这个电子表格为例:

https://docs.google.com/spreadsheet/ccc?key=0AoSVxswDPXtwdE5HcGZ4Y0lsMlZtZmFHRjZTcnpGS0E&usp=sharing

数据是这样的:

Date              Week          Project
3-jan-2013         1-2013       Project 1
4-jan-2013         1-2013       Project 1
5-jan-2013         1-2013       Project 1
6-jan-2013         1-2013       Project 1
18-abr-2013       16-2013       Project 2
19-abr-2013       16-2013       Project 2
22-abr-2013       17-2013       Project 2
24-abr-2013       17-2013       Project 2
25-abr-2013       17-2013       Project 2
26-abr-2013       17-2013       Project 2
29-abr-2013       18-2013       Project 2
30-abr-2013       18-2013       Project 2
1-mai-2013        18-2013       Project 2
3-mai-2013        18-2013       Project 2
4-mai-2013        18-2013       Project 2
6-mai-2013        19-2013       Project 2
7-mai-2013        19-2013       Project 2
8-mai-2013        19-2013       Project 2
9-mai-2013        19-2013       Project 2
10-mai-2013       19-2013       Project 2
7-jan-2013         2-2013       Project 1
8-jan-2013         2-2013       Project 1
16-mai-2012       20-2012       Project 1
17-mai-2012       20-2012       Project 1

我认为SUBTOTAL可以处理这个问题,但它不适用于开箱即用的唯一值......

我在选择的列Project中有一个过滤器Project 2。在单元格中C2,我希望它报告4=COUNTUNIQUE(C4:C). 它正在报告7,也就是说,它正在考虑C忽略过滤器的列中的所有值。如果我Project 1在过滤器中选择,它应该报告3,最后如果选择了所有项目,它应该报告7

因为Project 24独特的周值:

16-2013
17-2013
18-2013
19-2013

因为Project 13独特的周值:

 1-2013
 2-2013
20-2012

如何COUNTUNIQUE使用过滤后的数据来实现?

4

1 回答 1

3

恐怕没有帮助列(如果您愿意,可以将其隐藏),就无法实现这一目标。

例如,在 E4 中:

=ArrayFormula(IF(LEN(D4:D);MMULT((ROW(D4:D)>TRANSPOSE(ROW(D4:D)))*(D4:D=TRANSPOSE(D4:D))*(C4:C=TRANSPOSE(C4:C));SIGN(ROW(D4:D)))=0;IFERROR(1/0)))

然后在 C2 中你可以调用:

=SUBTOTAL(9;E4:E)

于 2013-06-14T01:46:59.277 回答