假设单元格 A1 中有“abccba” 现在我在单元格 B1 中写入一个公式,=RIGHT(LEFT(A1,ROW(INDIRECT("1:"&LEN(A1)))))
它给出值“a”或数组字符串为{“a”;“b”;“c”;“c”;“b”;“a”} 现在当我将它与=CONCATENATE(RIGHT(LEFT(A1,ROW(INDIRECT("1:"&LEN(A1))))))
它连接起来时,它给出“a”,但我期望“abccba”我哪里错了?如何连接数组字符串?谢谢!问候,
答案1
Concatenate 不接受数组值作为参数;它只接受离散文本值。当您输入数组时,它只采用您已经找到的第一个值。如果您想将单个参数作为文本数组传递,并使结果是所有这些参数的单个字符串,则必须使用 VBA。这是一个可以做到这一点的 UDF:
Public Function JoinText(arr()) As String
For i = LBound(arr) To UBound(arr)
JoinText = JoinText & arr(i, 1)
Next
End Function
这是要放入单元格的公式,必须使用++Ctrl作为数组公式输入:ShiftEnter
{=JoinText(RIGHT(LEFT(A1,ROW(INDIRECT("1:"&LEN(A1))))))}