我试图复制工作表中数组中的所有值。我有{1,6,14,15},我想输出{1,1,6,6,14,14,15,15}。我想专门用函数来完成此操作。我看过VSTACK函数,它似乎非常有用。然而,加入内部的事情似乎是一个麻烦,并不会允许这个电子表格可以在其他设备上轻松使用。我试过使用CONCAT函数,但是它只返回161415161415,这对我没有帮助。VSTACK的各种替代方法都删除了重复项,这不是我想要的。此外,所有这些替代方法都很长,我很难理解。
erhoui1w1#
您可以在此处使用EXPAND():
EXPAND()
=LET(arr,{1,6,14,15},TOROW(IFERROR(EXPAND(arr,2),arr),,1))
请注意,2将定义复制输入的频率。
2
kuuvgm7e2#
如果您有LET和SEQUENCE:=LET(ζ,{1,6,14,15},INDEX(ζ,SEQUENCE(,2*COUNTA(ζ),,0.5)))
LET
SEQUENCE
=LET(ζ,{1,6,14,15},INDEX(ζ,SEQUENCE(,2*COUNTA(ζ),,0.5)))
bvhaajcl3#
复制Excel数组中每个值的一种方法是结合使用TRANSPOSE函数和ROW函数。下面的示例说明如何使用这些函数来获得所需的结果:
ROW
=TRANSPOSE(ROW(1:4)^0)
此公式创建一个由四行组成的数组,每行包含数字1、2、3和4。ROW函数返回指定区域(1:4)中每个单元格的行号,^0运算符强制将行号视为数字而不是数组。然后TRANSPOSE函数转置数组,使每个数字位于单独的列中。以下是如何在工作表中使用公式的示例:
^0
TRANSPOSE
A B C D 1 {1,1,1,1} {2,2,2,2} {3,3,3,3} {4,4,4,4} 2 1 2 3 4
若要复制原始数组{1,6,14,15}中的值,可以使用INDEX函数返回数组中的每个值,然后使用上面的公式在多列中复制该值。下面是一个示例,说明如何执行此操作:
INDEX
=TRANSPOSE(ROW(1:4)^0) =TRANSPOSE({1,6,14,15}*(ROW(1:4)^0))
在此示例中,INDEX函数用于从原始数组返回值{1,6,14,15}。然后将这些值乘以行号数组,以创建重复值数组:
A B C D E F 1 {1,1,1,1} {6,6,6,6} {14,14,14,14} {15,15,15,15} 2 1 6 14 15
请注意,此公式仅在原始数组位于单个
3条答案
按热度按时间erhoui1w1#
您可以在此处使用
EXPAND()
:请注意,
2
将定义复制输入的频率。kuuvgm7e2#
如果您有
LET
和SEQUENCE
:=LET(ζ,{1,6,14,15},INDEX(ζ,SEQUENCE(,2*COUNTA(ζ),,0.5)))
bvhaajcl3#
复制Excel数组中每个值的一种方法是结合使用TRANSPOSE函数和
ROW
函数。下面的示例说明如何使用这些函数来获得所需的结果:此公式创建一个由四行组成的数组,每行包含数字1、2、3和4。
ROW
函数返回指定区域(1:4)中每个单元格的行号,^0
运算符强制将行号视为数字而不是数组。然后TRANSPOSE
函数转置数组,使每个数字位于单独的列中。以下是如何在工作表中使用公式的示例:
若要复制原始数组{1,6,14,15}中的值,可以使用
INDEX
函数返回数组中的每个值,然后使用上面的公式在多列中复制该值。下面是一个示例,说明如何执行此操作:在此示例中,
INDEX
函数用于从原始数组返回值{1,6,14,15}。然后将这些值乘以行号数组,以创建重复值数组:请注意,此公式仅在原始数组位于单个