型 首先,COLUMN(A1:B1)返回一个1到2之间的整数水平数组。将其传递给具有两个单列范围的CHOOSE函数,从A1:A73和C1:C70创建一个73 x 2数组(而不是创建一个锯齿数组,第二列的最后三个值将用#NA填充)。 用IFERROR Package 结果,将三个#NA值转换为FALSE(否则,SMALL将返回错误)。 接下来,ROW(1:143)返回一个1到143之间的整数垂直数组。将73 x 2数组和1到143之间的整数数组传递给SMALL将返回一个143 x 1数组(垂直)的排序值(忽略三个FALSE值)。 关于INDIRECT的注意:以这种方式使用INDIRECT可以使公式稳定,即使删除了行/列;但是,它也会使公式不稳定,这将导致每次工作簿中发生更改时都要重新计算公式,这可能会大大降低速度。另一个选项是INDEX(例如,ROW(A1:INDEX(A:A,COUNT(...))),这可能会受到行/列删除的影响,但不是易失性的。
3条答案
按热度按时间a1o7rhls1#
我认为可以实现与多个合并范围为一个目录。将需要标签的列和一个以上的每表列(可以克隆现有的)。应排序和删除重复的列表自动(如果克隆)。
x7rlezfr2#
编辑:
我假设你的ID都是数字(否则,如果没有空格,排序将非常棘手)。你可以修改下面的数组公式以满足你的需要(选择一个有足够行的区域来容纳整个ID堆栈,输入公式,然后使用空格+shift+enter提交公式):
字符串
我将使用一个较小的版本(2列)来解释它是如何工作的:
型
首先,
COLUMN(A1:B1)
返回一个1到2之间的整数水平数组。将其传递给具有两个单列范围的CHOOSE函数,从A1:A73
和C1:C70
创建一个73 x 2数组(而不是创建一个锯齿数组,第二列的最后三个值将用#NA
填充)。用
IFERROR
Package 结果,将三个#NA
值转换为FALSE
(否则,SMALL
将返回错误)。接下来,
ROW(1:143)
返回一个1到143之间的整数垂直数组。将73 x 2数组和1到143之间的整数数组传递给SMALL
将返回一个143 x 1数组(垂直)的排序值(忽略三个FALSE
值)。关于
INDIRECT
的注意:以这种方式使用INDIRECT
可以使公式稳定,即使删除了行/列;但是,它也会使公式不稳定,这将导致每次工作簿中发生更改时都要重新计算公式,这可能会大大降低速度。另一个选项是INDEX
(例如,ROW(A1:INDEX(A:A,COUNT(...)))
,这可能会受到行/列删除的影响,但不是易失性的。dbf7pr2w3#
如果您不介意进行一些手工操作,这对数字和非数字ID都有效:
1.使用Ctrl-C + Ctrl-V手动堆叠列
1.转到数据选项卡-->过滤器-->高级过滤器-->仅勾选唯一记录-->选择您的副本位置
这个简单的两步过程将给你给予两列唯一的并集。显然,列数越多,交集方法的效用就越大。