我有一个名为Table5的Excel表,它包含两列CompanyCode和EmployeeLevel。现在我的问题是我想获得EmployeeLevel列的唯一值。请注意,记录的长度未知。我使用Table5 [EmployeeLevel]作为范围来包含Table5中的所有记录。你能提供一个公式吗?我无法使用ActiveX对象循环遍历每条记录。我必须通过Excel公式来做到这一点。我得到的解决方案只有在修复了记录的时间后才可用。但我正在研究的这个记录是一张动态表格。
提前致谢:)
答案 0 :(得分:0)
假设您的数据如下:
最简单的方法是根据Table5创建数据透视表。在行中,添加EmployeeLevel。在Data中,添加EmployeeLevel。
将数据聚合更改为Count
而不是总和。你会得到这样的东西。
当您向Table5添加新项目时,您需要做的就是更新数据透视表(右键单击数据透视表并单击更新)。
如果您需要使用公式,以下是一种解决方法。
在C栏中,添加以下公式(给出以下数据,调整为适合):
=--(COUNTIF($B$1:$B2,$B2)=1)
这将为表中的每个唯一值返回1
。
在工作表的某处(在我的情况下为F2),我添加了以下公式来计算唯一值:
=SUM(Table5[Unique Value])
在我的示例数据中,有14个。
然后我将F3中的下列公式复制了20行(我使用了20,因为我没有那么多唯一值 - 你说你的表是可变的,所以选择的行数高于唯一值的数量你期待在未来):
{=IF(ROW(A1)<=F$2,SMALL(IF(Table5[Unique Value]=1,Table5[EmployeeLevel]),ROW(A1)),"")}
注意 - 花括号是一个数组公式 - 不要手动添加它们,输入没有它们的公式并用 ctrl + shift 确认+ 输入 子>
这将导致唯一值按升序排列:
答案 1 :(得分:0)
如果EmployeeLevel
已排序,您可以在表格内实现计数: