在filter处于活动状态时,Excel表格列中的唯一值的数量
在Excel表中,可以通过单击标题旁边的箭头来过滤每个列的数据。 单击此箭头时,Excel将显示列中存在的唯一值的列表,每个值旁边有一个checkbox。 在其他列上应用筛选器时,此列表会更改。 如果因应用的filter而异,则列内唯一值的数量不同。
我想dynamic计算每列中唯一值的数量,并将其存储在表头之上的一行中。 当不同的filter应用在表上时,这些值应该更新,就像Excel在点击标题的箭头时更新列表一样。
到目前为止,
-
在这里find的选项
{=sum(1/countif(Tab[Column1] , Tab[Column1])}
(通过按Ctrl-Shit-Enter
)给出了唯一值的数量,但是这不会考虑潜在的filter桌子。 -
在菜单表工具>devise中,我可以添加一个表格行,并使用
subtotal
function来获得考虑到过滤的结果,但这主要是针对简单的操作,如sum
。 我无法计算如何统计唯一值的数量。 -
像结构化的引用
Tab[[#FilteredData],[Column1]]
可以做的伎俩。
假如说:
1)您正在使用公式中的表名称
2)你的表名为“Tab”
3)表中的第一列被命名为“Column1”
4)空单元同样被认为是唯一的值
然后将这个数组公式放置在与包含“Column1”的列相同的列中的某个单元格中,最好这样做是在表本身的外部:
=SUM(IF(FREQUENCY(IF(SUBTOTAL(3,OFFSET(INDEX(Tab,1,COLUMNS($A:A)),ROW(Tab[Column1])-MIN(ROW(Tab[Column1])),)),MATCH(INDEX(Tab,,COLUMNS($A:A)),INDEX(Tab,,COLUMNS($A:A)),0)),ROW(Tab[Column1])-MIN(ROW(Tab[Column1]))+1),1))
根据需要复制到右侧。
问候
**数组公式不是以与“标准”公式相同的方式input的。 按住CTRL键和SHIFT键,而不是按下ENTER键,然后按ENTER键。 如果你做得对,你会注意到Excel在公式周围放置了大括号(尽pipe不要试图自己手动插入这些)。