对一组随机分布的数据进行排序

对一组随机分布的数据进行排序

我有一组随机分布的数据,如下图所示。我想收集它们并按组顺序排列(组 1、组 2 等)。在下面的示例中,如果 A:R 列中的任何列中存在值“1”,则所有“1”都应排列在组 1 中。如果没有 1,则它应该显示为空白。有没有办法在 Excel 中使用公式或宏来执行此操作?不过我更喜欢公式。谢谢。

以下是示例工作簿的链接(可编辑):https://1drv.ms/x/s!AgVGRfBWRysXgWJTuf-ILJ0BTxyQ

在此处输入图片描述

答案1

首先,组必须具有相同大小的数据(以防行只有一个数字)。因此,第 1 组必须从 T 到 AK。在单元格 T2 中输入公式:

=IFERROR(INDEX($A$2:$R$2,SMALL(IF($A$2:$R$2=1,COLUMN($A$2:$R$2)),COLUMN(A:A))),"")

输入公式并按 Ctrl+Shift+Enter 输入数组公式。然后,在 U 至 AK 列上复制并粘贴时,将在 Group1 上显示 1 的所有出现。

一些改进的建议:

  • 如果您在单元格 T1 中只输入数字 1,然后自定义格式以显示"Group " 0,那么您可以将公式中的 1 更改为地址 T1。然后,当将其复制到其他组时,公式应该调整到其他数字(您必须将 1 放入从 T 到 AK 的每一列,但只显示其中一列,从 AM 到 BD 的列中应该有数字 2,依此类推)。
  • 如果您的 Excel 是 2010 或更早版本,则您没有该IFERROR()函数。解决方法是使用IF()ISERROR(): IF(ISERROR(...),"",(...))。这(...)是 的第一个参数上的公式IFERROR()
  • 要将公式复制到其他行,您可以更改 INDEX 函数以返回行和列。唯一的区别是返回的行是单元格的行,而列是公式(...)

相关内容