首页 > 解决方案 > 如何在 Excel 中将两个垂直数字列表合并为一个长垂直列表?

问题描述

所以我有几列数字,我想知道如何制作一个动态组合列表?我知道整合理论上可以工作,但我的列表发生了变化,我不认为整合是动态的。右边的“组合列表”是我希望完成的。我想要所有重复项,但我不想要任何空格,因为例如 C 列可以轻松地从 3 个数字变为 5 个数字。对列表进行排序也将是一个超级奖励,因为这是我的最终目标,所以如果我能以另一种方式去做,请告诉我。

在此处输入图像描述

标签: excelexcel-formulaoffice365

解决方案


尝试使用 O365:

=FILTERXML("<t><s>" & TEXTJOIN("</s><s>",TRUE,TRANSPOSE(numBers)) & "</s></t>","//s")

如果要对列表进行排序,则:

=SORT(FILTERXML("<t><s>" & TEXTJOIN("</s><s>",TRUE,TRANSPOSE(numBers)) & "</s></t>","//s"))

EDIT如果你在 MAC 上运行,或者在线 Excel,你没有这个FILTERXML功能。您可以改用以下公式:

=SORT(--TRIM(MID(TEXTJOIN(REPT(" ",99),TRUE,TRANSPOSE(C10:F29)),(SEQUENCE(COUNT(numBers))-1)*99+1,99)))

此公式适用于超过 300 个左右的字符(数字),之后您将遇到 32,767 个字符的限制TEXTJOIN。第一个公式将有超过 3,000 个数字的限制。如果您可能有更多,您应该查看 VBA 解决方案

numBers是一个比你需要的更大的命名范围。空白将被忽略。在这种情况下,我使用c10:f100,但您可以增加尺寸以适应。

在此处输入图像描述

带排序

在此处输入图像描述

在此处输入图像描述


推荐阅读