Страницы: 1
RSS
Поиск в одном двумерном массиве, с результатом из второго
 
В Excel в функциях встречаюсь с тем, что некоторые из них работают только с одномерными массивами (строки или столбцы). Массив:
12
34
функции видят как {1;2:3;4}, т.е. разделяют строки знаком ":". Например функции ПРОСМОТР(), ПОИСКПОЗ() и т.д. не работают с двумерным массивом.
Возможно ли с помощью формулы (не VBA) получить из двумерного массива - одномерный, т.е. из {1;2:3;4} - такой {1;2;3;4}?
Изменено: bedvit - 22.04.2015 12:56:37
«Бритва Оккама» или «Принцип Калашникова»?
 
Пример прикрепить забыли?
НАИМЕНЬШИЙ справится.
 
vikttur, пример сделал, выслал. Пример - это частность, вопрос в том как "обмануть" функцию и показать ей не {1;2:3;4}, а {1;2;3;4}. массив привел для примера, может быть не в порядке возрастания, и несколько строк.

На данном примере, если ввести в просматриваемый вектор {11;22;33;4;5;6;7;0...} или {11:22:33:4:5:6:7:0...} , т.е. только в одномерном измерении - все сработает (соответственно и в вектор результатов только одномерный массив).
Изменено: bedvit - 22.04.2015 13:31:42
«Бритва Оккама» или «Принцип Калашникова»?
 
=МИН(ЕСЛИ(T1=F1:K6;M1:R6))
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
балин у Владимира, результат тот же а такая короткая по сравнению с этой
Код
=ИНДЕКС(M1:R6;СУММ(ЕСЛИ(F1:K6=T1;СТРОКА(F1:K6);0));СУММ(ЕСЛИ(F1:K6=T1;СТОЛБЕЦ(F1:K6)-СТОЛБЕЦ(E1);0)))
Лень двигатель прогресса, доказано!!!
 
это часть задачи из избушки? :)
F1 творит чудеса
 
vikttur, дело в том, что массивы которые получаются - они являются результатом нескольких итераций в вычислениях одной формулы массива, если Ваше решение можно будет применить, буду очень благодарен (если вы им поделитесь).
Максим Зеленский, да, начиналось как решение к задаче из избушки - в частности, и как возможность использовать в других задачах - в общем. Мне показалось интересная тема для практического применения, в т.ч. и для формул массива.
На этом форуме недавно - сильно не бейте :)
«Бритва Оккама» или «Принцип Калашникова»?
 
Уже написал - преобразовывать в одномерный сложнее, чем искать в двумерном.
 
vikttur, было интересно именно возможность преобразование массива, каким либо не трудоемким способом. Например изменением в обозначении массива с ":" на ";"
Понимаю что "каков вопрос-таков и ответ". Но первоначальная задача тянется к Избушке, честно было бы решить её самому. Поэтому ограничусь высланным примером, тем более он сейчас по работе проходит.
Если есть не трудоемкое решение на высланный "пример массива", не отказался посмотреть бы :-).

Тему можно поменять или только через создание новой?
Изменено: bedvit - 22.04.2015 15:44:50
«Бритва Оккама» или «Принцип Калашникова»?
 
Ответ по теме:
http://www.cpearson.com/excel/matrixToVector.aspx
F1 творит чудеса
 
=СМЕЩ(F1;(СТРОКА(A1:ИНДЕКС(A:A;СЧЁТЗ(F1:K6)))-1)/СЧЁТЗ(F1:K1);ОСТАТ(СТРОКА(A1:ИНДЕКС(A:A;СЧЁТЗ(F1:K6)))-1;СЧЁТЗ(F1:K1)))

То же, что со ссылки. Если нет пустых ячеек в массиве. Смотреть через F9.
Изменено: Владимир - 23.04.2015 06:59:27
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
vikttur, Максим Зеленский, Владимир,  спасибо!
Насколько я понял, преобразование двумерного массива в одномерный, посредством формулы не осуществляется простым и коротким решением (вроде какого-либо "сложного" транспонирования, возможностью редактирования/сцепки массивов который "видит" функция). Видимо для этого есть VBA.
Изменено: bedvit - 19.03.2018 15:03:43
«Бритва Оккама» или «Принцип Калашникова»?
 
Поиск в двумерном:
=ИНДЕКС(M1:R6;МИН(ЕСЛИ(F1:K6=T1;СТРОКА(F1:K6)));МИН(ЕСЛИ(F1:K6=T1;СТОЛБЕЦ(F1:K6)-5)))
 
Здравствуйте всем гуру!
Подниму темку - озадачилась нечто подобным.

А как можно сделать решение для массива исходных данных? Т.е. в качестве искомого брать не точечно "27", а сразу несколько: 27, 28 и 29 (к примеру) или всю строку?
Решения, предложенные выше уважаемыми знатоками для искомого массива не работает.
Заранее спасибо всем, кто ответит!
Изменено: TBaranessa - 19.03.2018 14:53:15
 
Я отвечу.
Создайте отдельную тему с названием, отражающим суть задачи. Прикрепите файл-пример
 
vikttur, к сожалению, не имею такой возможности - с телефона вряд ли получится прикрепить файл с примером ;(, поэтому и воспользовалась тем примером, что приведен в данной теме - он практически на 99% актуален моему.
Суть задачи та же, что и у автора данной темы, только в качестве искомого значения в первом двумерном массиве нужно взять не одно значение, а несколько, и, соответственно - из второго массива получить значения на соответствующих позициях.
Если берем 27, 27 и 32 из первого массива, то получаем 32, 33 и 37 из второго.
Формула массива для массива не работает ;(
Страницы: 1
Наверх