在没有 VBA 的 Excel 中合并动态数组
Combine Dynamic Arrays in Excel without VBA
我在同一个电子表格中有两个动态数组,分别称为 Input
和 Length
:
Input
=TRANSPOSE(BASE(DEC2BIN(CODE(MID(A1,(SEQUENCE(1,LEN(A1),,1)),1))),10,8))
Length
=TRANSPOSE(MID(BASE((LEN(A1)*8),2,64),SEQUENCE(1,8,,8),8))
Input Length
01010011 00000000
01101111 00000000
01101101 00000000
01100101 00000000
00100000 00000000
01100111 00000000
01110101 00000000
01101001 10110000
01100100
01100001
01101110
01100011
01100101
00100000
01101110
01100101
01100101
01100100
01100101
01100100
00100000
00100000
我想将它们组合成一个数组:
01010011
01101111
01101101
01100101
00100000
01100111
01110101
01101001
01100100
01100001
01101110
01100011
01100101
00100000
01101110
01100101
01100101
01100100
01100101
01100100
00100000
00100000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
10110000
我尝试使用的公式是:
=INDEX((Input,Length),SEQUENCE(ROWS(Input)+ROWS(Length)))
但是 Length
范围产生了 #REF!
错误,我无法解决该错误:
01010011
01101111
01101101
01100101
00100000
01100111
01110101
01101001
01100100
01100001
01101110
01100011
01100101
00100000
01101110
01100101
01100101
01100100
01100101
01100100
00100000
00100000
#REF!
#REF!
#REF!
#REF!
#REF!
#REF!
#REF!
#REF!
我曾尝试使用其他无法组合数组的函数,and/or 生成了各种其他 #NUM!
和 #VALUE!
错误。
我还将顺序从 Input
、Length
换成了 Length
、Input
,这对第二个数组产生了相同的 #REF!
错误.
我怀疑我已经看得太久了,只是需要新鲜的眼光。
我想使用本机 Excel 函数和公式,而不是 VBA 或其他编程方法。
一种方式:
=TEXT(FILTERXML("<a><b>"&TEXTJOIN("</b><b>",1,TRANSPOSE(IFNA(IF(SEQUENCE(,2,0),Length,Input),"")))&"</b></a>","//b"),REPT(0,8))
更严格的选择:
=LET(α,ROWS(Input),β,ROWS(Length),γ,MAX(α,β),δ,SEQUENCE(2*γ,,0),ε,INDEX(CHOOSE(SEQUENCE(,2),Input,Length),1+MOD(δ,γ),1+QUOTIENT(δ,γ)),FILTER(ε,1-ISNA(ε)))
我在同一个电子表格中有两个动态数组,分别称为 Input
和 Length
:
Input
=TRANSPOSE(BASE(DEC2BIN(CODE(MID(A1,(SEQUENCE(1,LEN(A1),,1)),1))),10,8))
Length
=TRANSPOSE(MID(BASE((LEN(A1)*8),2,64),SEQUENCE(1,8,,8),8))
Input Length
01010011 00000000
01101111 00000000
01101101 00000000
01100101 00000000
00100000 00000000
01100111 00000000
01110101 00000000
01101001 10110000
01100100
01100001
01101110
01100011
01100101
00100000
01101110
01100101
01100101
01100100
01100101
01100100
00100000
00100000
我想将它们组合成一个数组:
01010011
01101111
01101101
01100101
00100000
01100111
01110101
01101001
01100100
01100001
01101110
01100011
01100101
00100000
01101110
01100101
01100101
01100100
01100101
01100100
00100000
00100000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
10110000
我尝试使用的公式是:
=INDEX((Input,Length),SEQUENCE(ROWS(Input)+ROWS(Length)))
但是 Length
范围产生了 #REF!
错误,我无法解决该错误:
01010011
01101111
01101101
01100101
00100000
01100111
01110101
01101001
01100100
01100001
01101110
01100011
01100101
00100000
01101110
01100101
01100101
01100100
01100101
01100100
00100000
00100000
#REF!
#REF!
#REF!
#REF!
#REF!
#REF!
#REF!
#REF!
我曾尝试使用其他无法组合数组的函数,and/or 生成了各种其他 #NUM!
和 #VALUE!
错误。
我还将顺序从 Input
、Length
换成了 Length
、Input
,这对第二个数组产生了相同的 #REF!
错误.
我怀疑我已经看得太久了,只是需要新鲜的眼光。
我想使用本机 Excel 函数和公式,而不是 VBA 或其他编程方法。
一种方式:
=TEXT(FILTERXML("<a><b>"&TEXTJOIN("</b><b>",1,TRANSPOSE(IFNA(IF(SEQUENCE(,2,0),Length,Input),"")))&"</b></a>","//b"),REPT(0,8))
更严格的选择:
=LET(α,ROWS(Input),β,ROWS(Length),γ,MAX(α,β),δ,SEQUENCE(2*γ,,0),ε,INDEX(CHOOSE(SEQUENCE(,2),Input,Length),1+MOD(δ,γ),1+QUOTIENT(δ,γ)),FILTER(ε,1-ISNA(ε)))