2017-04-04 92 views
0

下面的示例电子表格显示了两列。 列A包含显示由两个灰色行轮廓线表示的两个不同的分组。 B列包含每个组的“分配模块”。计算多个范围内重复值的百分比

在列C中,我想指出每个组中重复的“分配模块”的百分比(注意几个垂直合并的单元格)。

“分配模块”的数量因组而异。因此我不能使用一个静态范围。

任何人都可以建议我是如何计算每组重复“分配模块”的数量?

谢谢!

EG

细胞C3(合并C3-8)= 83%

细胞C10(合并C10-13)= 100%

enter image description here

+0

如果组有:实施例1,实施例2,实施例2,实施例1,实施例2.如果%是基于40%的实施例1(为第一)或60%,基于实施例2的存在最多? – Michael

+0

@迈克尔我会认为100%,因为所有的模块都是重复的。 –

+0

谢谢。此外,我假设你想要一个单一的公式,你可以使用每个组,无论组中的行数。如果您没有专用的列可以在每一行中重复组编号,这有点麻烦。在我的解决方案中,我需要搜索B列中的下一行空白行。我可以假设在任何组中都不会有超过100行的行吗? – Michael

回答

1

这是一个阵列式推移到这一点C3。它搜索列A的下100行,以查找下一个组的起始位置;这用于确定当前组的范围。最后一组需要列A的下一行中的虚拟值来标识最后一组的范围。

无法将数组公式合并到单元格中,因此您需要首先取消合并列C中的所有单元格。然后在C3输入公式,并通过按CTRL+SHIFT+ENTER,而不是仅仅ENTER保存:

=1-SUM((COUNTIF(OFFSET(B3,0,0,MATCH("*",A3:A101,0)-1),OFFSET(B3,0,0,MATCH("*",A3:A101,0)-1))=1)*1)/(SUM((OFFSET(B3,0,0,MATCH("*",A3:A101,0)-1)<>0)*1)) 

然后,您可以只复制整个单元格,并将其粘贴旁边每个组的第一行。如果需要,您可以将列C中的单元格重新组合。

Formula

+0

谢谢你的回答。我担心我的合并单元格会使这非常困难。 E.g-在我上面的例子中 单元B10与B11合并 - 因此B11被看作是一个空单元 单元B12与B13合并 - 因此B13也被视为一个空单元。 正因为如此,您的公式会在列B中选取空的合并单元格,因此为组3返回0%的值 – Ledgey1101

+0

合并单元格是最差的。现在,想出只有一个可以复制和粘贴每个组的配方是非常困难的。你是否需要一个可以复制和粘贴的公式,或者你是否乐意为每个组手动更新范围?我已经更新了处理B列中的合并单元格的公式,并且您可以为每个组复制和粘贴公式,但它需要在列A末尾有一个虚拟值来标识最后一组的结尾。 – Michael

+0

这是非常好的。正是我在找什么。我没有将细胞取出来 - 通过所有的细胞拉动配方,每次都给我正确的结果。我所需要做的就是让细胞重新保持最高价值。非常感谢你 – Ledgey1101

1

可以在组使用此1 C列%重复:

=COUNTIF(B3:B8,B3:B8)/ROWS(B3:B8) 

而这对于组2:

=COUNTIF(B10:B11,B10:B11)/ROWS(B10:B11) 

或者,你可以定义每个组范围内定义的名称:

=COUNTIF(Group1,Group1)/ROWS(Group1) 


=COUNTIF(Group2,Group2)/ROWS(Group2) 

enter image description here

编辑:

好吧,我相信这将始终返回的百分比无论顺序如何,都有重复的组。

=1-SUMPRODUCT(ROUNDDOWN(1/COUNTIF(B3:B8,B3:B8),0))/ROWS(B3:B8) 

enter image description here

+0

谢谢你的回答。我担心这并不会像我预期的那样回报所有结果。我相信这是由于我的合并单元格... 例如 - 在我上面的示例中 单元格B10与B11合并 - 因此B11被视为空单元格 单元格B12与B13合并 - 因此B13被视为空细胞也。 因为这个使用公式 - 这返回一个值50% 是否有这个公式不能考虑任何空白单元格?有任何想法吗? – Ledgey1101

+0

我发现如果我将公式更改为: = COUNTIF(B3:B8,B3:B8)/ COUNTA(B3:B8) - 它只会计算包含信息的单元格。 不幸的是,现在我认为公式的第一部分没有返回我需要的结果。 我看到的情况是= COUNTIF(B3:B8,B3:B8)正在检查B3中单元格的重复次数。不是“有多少个单元(总数)是重复的。” – Ledgey1101

+0

好的,我想出了一个更好的解决方案。 –