Доброе время суток, господа. Появилась проблема - есть двумерный массив, в котором нужно найти значение на пересечение строки и столбца (пример прилагаю). Поиск ведется по заголовкам столбцов и первым ячейкам строк, значения в них текстовые. Задача была решена при помощи функций ИНДЕКС и ПОИСКПОЗ, однако оказалось, что у ПОИСКПОЗ есть ограничения на количество символов (пример в файле), к сожалению это ограничение сводит на "нет" преимущества формулы, а сократить текстовую часть нет возможности, она должна находиться в неизменном виде. Подскажите пожалуйста как можно реализовать поиск при описанных условиях, буду рад любым решениям и макросам и формулам. Заранее спасибо
Доброе время суток, господа. Появилась проблема - есть двумерный массив, в котором нужно найти значение на пересечение строки и столбца (пример прилагаю). Поиск ведется по заголовкам столбцов и первым ячейкам строк, значения в них текстовые. Задача была решена при помощи функций ИНДЕКС и ПОИСКПОЗ, однако оказалось, что у ПОИСКПОЗ есть ограничения на количество символов (пример в файле), к сожалению это ограничение сводит на "нет" преимущества формулы, а сократить текстовую часть нет возможности, она должна находиться в неизменном виде. Подскажите пожалуйста как можно реализовать поиск при описанных условиях, буду рад любым решениям и макросам и формулам. Заранее спасибоhathory
Извините, уважаемый, я очень плохо знаю excel, Ваше решение работает. Спасибо. правда я пока не понял как это происходит. Объясните пожалуйста, в данной формуле "*" это умножение или слияние "И"?
Извините, уважаемый, я очень плохо знаю excel, Ваше решение работает. Спасибо. правда я пока не понял как это происходит. Объясните пожалуйста, в данной формуле "*" это умножение или слияние "И"?hathory
hathory
Сообщение отредактировал hathory - Вторник, 31.05.2016, 17:06
но мне нужно не произведение массива, а двумерный поиск по массиву
А какая разница? Смотрите - есть числовой массив, допустим, 4х4, и есть строка над ним и столбец слева от него. Может быть и внизу-справа, и в любом другом месте, главное (для этой конструкции), чтобы размеры строки совпадали с кол-вом столбцов массива и размеры столбца совпадали с кол-вом строк массива. Допустим, искомое на 3-й позиции. Мы пишем для строки Матрица!B$2:BC$2=B2, получаем строку ЛОЖЬ;ЛОЖЬ;ИСТИНА;ЛОЖЬ. Аналогично для столбца Матрица!A$3:A$56=B2 даст нам столбец ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ. Теперь умножаем полученное на наш числовой массив и получаем все нули, кроме того числа, которое находится на пересечении ИСТИН. (ЛОЖЬ * число = 0, ИСТИНА * число = число) А затем все это складываем и получаем искомое число. Смотрите файл
но мне нужно не произведение массива, а двумерный поиск по массиву
А какая разница? Смотрите - есть числовой массив, допустим, 4х4, и есть строка над ним и столбец слева от него. Может быть и внизу-справа, и в любом другом месте, главное (для этой конструкции), чтобы размеры строки совпадали с кол-вом столбцов массива и размеры столбца совпадали с кол-вом строк массива. Допустим, искомое на 3-й позиции. Мы пишем для строки Матрица!B$2:BC$2=B2, получаем строку ЛОЖЬ;ЛОЖЬ;ИСТИНА;ЛОЖЬ. Аналогично для столбца Матрица!A$3:A$56=B2 даст нам столбец ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ. Теперь умножаем полученное на наш числовой массив и получаем все нули, кроме того числа, которое находится на пересечении ИСТИН. (ЛОЖЬ * число = 0, ИСТИНА * число = число) А затем все это складываем и получаем искомое число. Смотрите файл
Boroda, еще раз спасибо, Ваше решение очень изящно, честно, я бы никогда не догадался использовать подобную конструкцию для поиска, косность ума, знаете ли.
Boroda, еще раз спасибо, Ваше решение очень изящно, честно, я бы никогда не догадался использовать подобную конструкцию для поиска, косность ума, знаете ли.hathory