在Tally / Ledger系统中寻找最常见的词

时间:2014-11-20 11:58:21

标签: arrays excel formula mode

我目前使用以下数组公式查找范围内最常见的单词或数字,忽略任何空白单元格:

{=(INDEX(D1:D10,MODE(IF((D1:D10<>"")*ISNA(MATCH(D1:D10,$A$1:$A1,0)),MATCH(D1:D10,D1:D10,0)))))}

我现在想要做一些略有不同的事情。我仍然希望在一个范围内找到最常用的单词或数字,但是我现在有两个列表:第一个列表是&#39;肯定&#39;单词/数字,第二个是“否定”的列表。字/数字。

使用示例进行说明:绿色中出现绿色&#39;列出4次,蓝色在&#39;肯定列表中出现两次&#39;,但绿色在“否定”中出现3次&#39;列表和蓝色根本没有出现在“否定”字样中。名单。在第一个列表中使用上面的公式将返回绿色作为最常用的单词。然而,我现在希望它考虑到绿色不是组合列表中最常见的单词(即4个正数 - 3个负数= 1个绿色,2个正数 - 0个负数= 2个蓝色)。

在下图中,使用每个列表下的公式显示绿色是最常用的单词。我想组合这些列表并取消任何颜色出现在两个实例上的实例 - 因此肯定列表中的3个绿色将被取消,负列表上的3个绿色,只剩下一个。

从本质上讲,我想我正在尝试创建某种类型的计数器或分类帐,而不是添加或减去的数字我会添加或减去频率的单词。

enter image description here

感谢您的帮助,如果我在任务中没有明确表示道歉,我会道歉!

2 个答案:

答案 0 :(得分:2)

首先在 D D 列出您的候选人

然后在 E2 中输入:

=COUNTIF(B$2:B$12,D2)-COUNTIF(C$2:C$12,D2)

并复制下来。

最后在 F2 中输入:

=INDEX(D:D,MATCH(MAX(E:E),E:E,0))

使用您的数据:

demo

答案 1 :(得分:2)

这应该有效:

=IF(SUMPRODUCT((MMULT(COUNTIF(OFFSET(B2:B11,,{0,1}),B2:B11),{1;-1})=MAX(MMULT(COUNTIF(OFFSET(B2:B11,,{0,1}),B2:B11),{1;-1})))/COUNTIF(B2:B11,B2:B11&""))>1,"No Favourite",INDEX(B2:B11,MATCH(MAX(MMULT(COUNTIF(OFFSET(B2:B11,,{0,1}),B2:B11),{1;-1})),MMULT(COUNTIF(OFFSET(B2:B11,,{0,1}),B2:B11),{1;-1}),0)))

对于非连续的,动态定义的范围,假设存储为定义名称正面和负面,数组公式**

=IF(SUM((COUNTIF(Positive,Positive)-COUNTIF(Negative,Positive)=MAX(COUNTIF(Positive,Positive)-COUNTIF(Negative,Positive)))/COUNTIF(Positive,Positive&""))>1,"No Favourite",INDEX(Positive,MATCH(MAX(COUNTIF(Positive,Positive)-COUNTIF(Negative,Positive)),COUNTIF(Positive,Positive)-COUNTIF(Negative,Positive),0)))

此致

**数组公式的输入方式与&#39;标准&#39;相同。公式。您只需按住CTRL和SHIFT键,然后按ENTER键,而不是按ENTER键。如果您已正确完成,您会注意到Excel在公式周围放置了大括号{}(尽管不要尝试自己手动插入这些括号)。