如何在目标表中统一这两个公式?

我有一个带有几列和几万行的源表。我有一个六行的目标表。我想计算一个项目中只有一个项目的人数。由于不相关(必要)的原因,人员(个人ID)会针对他们所在的每个项目多次列出。

当前在源表中,我有:

=SUM(--(FREQUENCY(IF((([Personal ID]=[@[Personal ID]])*([@[project name]]<>[project name])),[Personal ID]),[Personal ID])>0))

这将创建任何其他项目字段,如果它们仅在此项目上,则为0;如果它们也在其他项目上,则为1。

目标表中的公式为:

=SUM(--(FREQUENCY(IF((SourceTable[Any other project]=0)*([@[project name]]=SourceTable[project name]),SourceTable[Personal ID]),SourceTable[Personal ID])>0))

问题在于源表有成千上万的行;第一个公式很慢,不需要进行数千次的计算-每个个人ID仅需要计算一次。每当我对表格进行不同排序时,它也会重新计算。如何将其折叠到目标表的公式中?

我考虑过将dest中的帮助列。表并使用textjoin在每行一个单元格中为我提供了每个项目的所有个人ID的列表。但是,ID重复了很多次,以至于某些项目抛出#value!因为结果超出了单元格中excel的字符数限制。

评论