在 Excel 中,如何将不同动态数组的部分合并为一个新的动态数组?

在 Excel 中,如何将不同动态数组的部分合并为一个新的动态数组?

在 Excel 中(但不使用 VB),如何将一个动态数组中的某些列与另一个动态数组中的列合并,以使结果也是一个动态数组?

这是一个非常简单的例子。假设我有两个长度相等的 2 列动态数组。第一个在 A1:B5,第二个在 D2:E6。我想在 G3:H7 中创建一个新的第三个动态数组,这样 G3:G7 包含 A1:A5 中的所有内容,H3:H7 包含 E2:E6 中的所有内容。以下是一个例子。

 | A | B | C | D | E | F | G | H |
—|———+———+———+———+———+———+———+———|
1| a | 1 |   |   |.  |   |   |   |
2| b | 3 |   | f | 0 |   |   |   |
3| c | 5 |   | g | 2 |   | a | 0 |
4| d | 7 |   | h | 4 |   | b | 2 |
5| e | 9 |   | i | 6 |   | c | 4 |
6|   |   |   | j | 8 |   | d | 6 |
7|   |   |   |   |   |   | e | 8 |
—————————————————————————————————-

现在我已经知道我可以使用以下公式创建第三个数组:

G3 = INDEX(A1#,0,1)
H3 = INDEX(D2#,0,2)

但是,这给我的结果却是两个 1 列动态数组的形式,而我希望它是一个 2 列动态数组。

目前,我的方法是将 G3:G7 作为辅助数组,然后使用类似以下内容创建我想要的最终动态版本:

J3 = OFFSET(G3,0,0,ROWS(A3#),2)

我甚至可能拼凑出一些不需要帮助程序的怪异方法。但这是一种非常常见的操作形式,我希望能有一种更优雅、更“规范”的方法,也许可以借鉴新的动态数组函数本身。

有人可以推荐一个吗?(再次强调,请不要使用 Visual Basic。)

答案1

利用 Office 365 中的当前功能,我们可以将 CHOOSE 与水平数组一起使用:

=CHOOSE({1,2},INDEX(A1#,0,1),INDEX(D2#,0,2))

这将使两个垂直阵列并排堆叠

在此处输入图片描述

当当前 Beta 频道项目发布给普通用户时,我们可以使用 VSTACK:

=HSTACK(INDEX(A1#,0,1),INDEX(D2#,0,2))

相关内容