У меня есть формула массива в одной ячейке, которая выводит некоторый 2D-массив:
{={"a","b","c"; 1, 2, 3}}
(конечно, сложнее, но это последний шаг, если я пройдусь)
В В момент, когда я обертываю этот результат, возвращаем отформатированную строку следующим образом:
{="{" & TEXTJOIN(", ",TRUE,{"a","b","c";1,2,3}) &"}"}
, которая возвращает {a, b, c, 1, 2, 3}
в виде строки. Это почти то, что я хочу, но массив уплощен, нет никакого способа различить 2 строки, так как отсутствует точка ;
. Меня не волнует экранирование букв с помощью ""
- мой фактический вариант использования - все целые числа
Есть ли способ преобразовать двумерный массив в некую строку, сохраняя различия строк? В идеале, без необходимости повторной ссылки на массив несколько раз, поскольку у меня нет места для промежуточных массивов, и было бы немного неэффективно пересчитывать много раз.
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}"
или любым другим однозначным представлением двумерного массива в одной ячейке. Надеюсь, что это имеет смысл:)