Excel:计算用斜线分隔的唯一短语

Excel:计算用斜线分隔的唯一短语

我有一些 Excel 数据,看起来像这样:

John / Tim      Upheld
Sam             Upheld
Tim / Dave      Upheld
Sam / John      Not Upheld
Tim             Not Upheld
Dave / Tim      Upheld

如果可以的话,我该如何在 Excel 中执行以下操作?

  1. 计算 A 列中用斜线分隔的每个唯一名称,并按出现顺序排列它们(因此 Tim[4]、Dave[2]、Sam[2]、John[1])。
  2. 计算 B 列中每个唯一名称与“Upheld”一起出现的次数(因此 Tim[3]、Dave[2]、John[1]、Sam[1])。

使用 Python 脚本或者类似脚本来完成这个会不会更好?

答案1

当然可以使用数组公式拼凑一些东西,但可能会很混乱。我不想在不知道有多少行、这个数字是否固定、名称是否提前知道、名称是否会随时间变化等的情况下进行尝试。

我本来认为最好在某些描述的脚本中执行此操作,但 VBA 可能是合乎逻辑的选择。

答案2

将数据放在 A1:B6 范围内,名称是 C1:C4 范围,数组公式(使用Ctrl++输入ShiftEnter而不仅仅是 kbd>Enter)在 D1 中,然后向下复制该列

=SUM(如果(ISNUMBER(FIND(C1,$A$1:$A$6)),1,0))

给出了第一部分的正确答案。

第二部分变得更加复杂……

除了使用数组公式之外,您还可以使用大量额外的列,每个名称两列。

因此 John 的两列内容如下:

=IF(ISNUMBER(FIND("John",$A1)),1,0)

=IF(AND(ISNUMBER(FIND("John",$A1)),B1="Upheld"),1,0)

那么,您的答案就只是各列的总数(为了整洁,可以隐藏这些总数,并在漂亮的汇总表中使用总数)。

相关内容