【发布时间】:2020-07-15 14:21:35
【问题描述】:
我在单个单元格中有一个数组公式,可以输出一些二维数组:
{={"a","b","c"; 1, 2, 3}}
(当然更复杂,但如果我逐步完成,那就是最后一步)
目前我正在包装这个结果以返回一个格式化的字符串,如下所示:
{="{" & TEXTJOIN(", ",TRUE,{"a","b","c";1,2,3}) &"}"}
它以字符串形式返回{a, b, c, 1, 2, 3}。这几乎是我想要的,但是数组变平了,因为缺少;-分号,所以无法区分两行。我不关心用"" 转义字母 - 我的实际用例都是整数
有没有办法将二维数组转换为某种字符串,同时保留行区别?理想情况下不必多次重新引用数组,因为我没有中间数组的空间,并且多次重新计算效率会有点低。
FWIW 我的实际公式是
{="{" & TEXTJOIN(", ",TRUE,INDIRECT([@Pt2])*INDIRECT([@Pm2])*INDIRECT([@Pb3])*INDIRECT([@Nt4])*INDIRECT([@Nm5])*INDIRECT([@Nb6])) &"}"}
[@...] 指向命名范围的名称,每个命名范围都是一个 6x3 的整数矩阵 0 到 2。因此,该公式计算 6 个不同二维数组的元素乘积并将其作为数组输出。也许你可以想出一个更好的方法来解决这个问题,但我一直在努力遵循 KISS 的心态,这对我来说似乎是最明显的方法。
总结
所以我想要的是元素乘积的数组输出
{0,2,0,0,2,1
0,2,2,1,1,0
0,0,0,1,1,0}
变成字符串"{0,2,0,0,2,1;0,2,2,1,1,0;0,0,0,1,1,0}" 或任何其他单细胞明确的二维数组表示。希望这是有道理的:)
【问题讨论】:
-
您使用的是什么版本的 Excel?
-
@Gary'sStudent 没有动态数组,Office 365 ProPlus 所以我猜是半年频道(1908 版)上的最新版本
-
有趣的练习!
标签: arrays excel array-formulas excel-2019