![查找多行块](https://linux22.com/image/1479201/%E6%9F%A5%E6%89%BE%E5%A4%9A%E8%A1%8C%E5%9D%97.png)
我有一个 Excel 文件,其中包含行块,每个块中的行数从 1 到最多 13 行不等,每个数据块后面都有一个空行。我想找到与任何其他行块相同的块。我知道我可以使用删除重复项并使用条件格式标记它们,但这只会比较单行。所以我的问题是,有没有办法标记这些与另一个块相同的块?
编辑:为了澄清我所说的数据类型:这是由焊接多个其他钢制物体而产生的钢制物体列表。所以我的数据看起来有点像这样:
项目 --- 组件 --- 所需数量 --- 其他栏...
项目 1 --- 组件 1 --- 1 --- ...
项目 1 --- 组件 3 --- 2 --- ...
项目 1 --- 组件 8 --- 1 --- ...
空行(仅用于数据的可读性,不是必需的)
项目 2 --- 组件 3 --- 2 --- ...
项目 2 --- 组件 4 --- 3 --- ...
空行(仅用于数据的可读性,不是必需的)
项目 3 --- 组件 3 --- 2 --- ...
项目 3 --- 组件 4 --- 3 --- ...
空行(仅用于数据的可读性,不是必需的)
项目4 --- 组件8 --- 1 --- ...
空行(仅用于数据的可读性,不是必需的)
...
如您所见,只有项目 2 和 3 的行块是相同的。因此,这些应该标记为重复。第一个块的第三行和第四个块的第一行是相同的,但由于并非所有块都是相同的,因此应该忽略这些。
我希望这能稍微澄清一下情况。
答案1
您可以使用一些辅助列来完成此操作:
- 创建一个列来连接所有组件描述:
=IF(A2=A1,E1&",","")&B2
- 创建一个列来显示某一行是否是某个项目的最后一行:
=A2<>A3
- 在下一列中,您可以显示某个项目是否重复:
=IF(E2="","",IF(A2=A3,G3,COUNTIFS($E$2:$E$13,E2,$F$2:$F$13,TRUE)>1))
,其中:=IF(E2="","",...)
- 如果行为空,则保留单元格为空白IF(A2=A3,G3,...)
- 从项目的最后一行(具有完整的组件列表)开始,为项目的所有行分配相同的值COUNTIFS($E$2:$E$13,E2,$F$2:$F$13,TRUE)>1)
- 检查该项目是否重复
此解决方案标记所有重复项,最好对它们进行过滤,如果您想删除它们,那么也许您不想过滤第一次出现的内容,只过滤重复的内容,这种情况下只需将引用从更改$E$2:$E$13
为$E$2:$E2
更新 1
如果所有项目中组件的顺序不一样,那么您需要对它们进行排序以使此过程正常工作:首先按“组件”排序,然后按“项目”排序。