Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 计算多个范围内重复值的百分比_Excel_Excel Formula_Duplicates - Fatal编程技术网

Excel 计算多个范围内重复值的百分比

Excel 计算多个范围内重复值的百分比,excel,excel-formula,duplicates,Excel,Excel Formula,Duplicates,下面的电子表格示例显示了两列。 列A包含两个不同的分组,由两个灰色行表示。 B列包含每个组的“分配模块” 在C列中,我想指出每组中重复“分配模块”的百分比(注意几个垂直合并的单元格) “分配模块”的数量因分组而异。因此,我不能使用一个静态范围 有人能告诉我如何计算每组重复“分配模块”的数量吗 谢谢大家! 例如 单元格C3(合并后的C3-8)=83% 单元C10(合并C10-13)=100% 您可以在第1组C列中为%Duplicate使用此选项: =COUNTIF(B3:B8,B3:B8)/ROW

下面的电子表格示例显示了两列。 列A包含两个不同的分组,由两个灰色行表示。 B列包含每个组的“分配模块”

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

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

有人能告诉我如何计算每组重复“分配模块”的数量吗

谢谢大家!

例如

单元格C3(合并后的C3-8)=83%

单元C10(合并C10-13)=100%


您可以在第1组C列中为%Duplicate使用此选项:

=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)

编辑:

好的,我相信不管顺序如何,它都会返回有重复项的组的百分比

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

您可以在第1组C列中为%Duplicate使用此选项:

=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)

编辑:

好的,我相信不管顺序如何,它都会返回有重复项的组的百分比

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

这是一个数组公式,用于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))
=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列中的单元格


这是一个数组公式,用于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))
=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列中的单元格



如果该组有:例1、例2、例2、例1、例2。百分比是基于示例1(第一个)的40%还是基于示例2的60%是最大的?@Michael我认为是100%,因为所有模块都是重复的。谢谢。另外,我假设您需要一个公式,可以对每个组使用,而不考虑组中的行数。如果没有在每一行中重复组号的专用列,这会有点混乱。在我的解决方案中,我需要在B列中搜索下一个空行。我可以假设任何组中的行数永远不会超过100行吗?如果组中有:示例1、示例2、示例2、示例1、示例2。百分比是基于示例1(第一个)的40%还是基于示例2的60%是最大的?@Michael我认为是100%,因为所有模块都是重复的。谢谢。另外,我假设您需要一个公式,可以对每个组使用,而不考虑组中的行数。如果没有在每一行中重复组号的专用列,这会有点混乱。在我的解决方案中,我需要在B列中搜索下一个空行。我可以假设任何组中的行数都不会超过100行吗?谢谢您的回答。恐怕这并没有像我预期的那样返回所有结果。我相信这是由于我合并的细胞。。。例如-在我上面的示例中,单元格B10与B11合并-因此B11被视为空单元格单元格B12与B13合并-因此B13也被视为空单元格。因此,使用公式-返回50%的值。是否该公式不能考虑任何空白单元格?有什么想法吗?我计算出如果我把公式改为:=COUNTIF(B3:B8,B3:B8)/COUNTA(B3:B8)-它将只计算包含信息的单元格。不幸的是,现在我认为公式的第一部分没有返回我需要的结果。我看到的是,=COUNTIF(B3:B8,B3:B8)正在检查B3中的单元格复制了多少次。不是“复制了多少个单元格(总数)”。好吧,我想我想出了一个更好的解决方案。不幸的是,这抛出了一个DIV/0引用。不过,我的问题已在上文中得到回答。再次感谢你的帮助真奇怪,这对我很有效。很高兴你找到了解决办法!谢谢你的回答。恐怕这并没有像我预期的那样返回所有结果。我相信这是由于我合并的细胞。。。例如-在我上面的示例中,单元格B10与B11合并-因此B11被视为空单元格单元格B12与B13合并-因此B13也被视为空单元格。因此,使用公式-返回50%的值。是否该公式不能考虑任何空白单元格?有什么想法吗?我计算出如果我把公式改为:=COUNTIF(B3:B8,B3:B8)/COUNTA(B3:B8)-它将只计算包含信息的单元格。不幸的是,我现在瘦了