Страницы: 1
RSS
Конвертация текста "{2;3;4}" в вектор {2;3;4}
 
В продолжение своей предыдущей темы
Обращение к диапазону внутри именованной таблицы констант

Я пытаюсь найти оптимальный вариант передачи в формулу
Код
=ИНДЕКС(Таблица;2;Ч(ТРАНСП(СТРОКА(2:4))))
параметра извне.
В принципе можно обойтись традиционным способом при помощи функции ДВССЫЛ(индекс_начала&":"&индекс_конца;1), но если получится хранить индексы в виде текстовой строки, а затем преобразовать ее вектор, то можно будет отказаться от всей связки функций Ч(ТРАНСП(СТРОКА(ДВССЫЛ(...

Формальная задача: ТРЕБУЕТСЯ получить массив {11;21;31} из второй строки ТАБЛИЦЫ опираясь на ДВА числовых параметра, записанных в ячейках C36:D36, или на ЕДИНЫЙ текстовый параметр, записанный в ячейке D40…
 
Традиционный не менее, но менее летучий
=INDEX(Таблица;2;N(TRANSPOSE(ROW(INDEX($A:$A;$C$36):INDEX($A:$A;$D$36)))))
или
=INDEX(Таблица;2;N(COLUMN(INDEX($1:$1;$C$36):INDEX($1:$1;$D$36))))

Только название темы наверно лучше придумать, хотя если именно в исходных текст и нужно его использовать , то ок.
тогда ответ
=TRANSPOSE(trim(MID(SUBSTITUTE(";"&SUBSTITUTE(REPLACE(D40;1;1;);"}";"");";";REPT(" ";LEN(D40)));ROW(A1:INDEX(A:A;LEN(D40)-LEN(SUBSTITUTE(D40;";";""))+1))*LEN(D40);LEN(D40))))
сокращенный вариант с жесткими цифирками 99
=INDEX(Таблица;2;TRANSPOSE(--MID(SUBSTITUTE(";"&SUBSTITUTE(REPLACE(D40;1;1;);"}";"");";";REPT(" ";99));ROW(A1:A99)*99;99)))

Или через INDIRECT
=INDEX(Таблица;2;TRANSPOSE(ROW(INDIRECT(SUBSTITUTE(MID(D40;2;FIND(";";D40)-2)&":"&TRIM(RIGHT(SUBSTITUTE(D40;";";REPT(" ";99));99));"}";)))))


В прошлой теме, я говорил о необходимости еще одного индекс. Это онтносилось к варианту, когда нужно получить массив для дальнейшей обработки в одной ячейке.
Если вывод в несколько с использованием массивной формулы, то да, можно опустить.
Изменено: БМВ - 17.10.2019 13:13:26
По вопросам из тем форума, личку не читаю.
 
Спасибо, Михаил.

Если все-равно конвертация текста в вектор производится через определение начала и конце диапазона (чисел), то предлагаю остановиться на первых двух формулах. А название темы поправить на "Формирование массива последовательных чисел"

Про второй ИНДЕКС: проверю понадобится ли он в моих дальнейших упражнениях и отпишусь :)
Страницы: 1
Наверх