Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2011, 14:55   #1
Обыватель
Пользователь
 
Регистрация: 21.01.2008
Сообщений: 98
По умолчанию Ссылка на диапазон условий

Добрый день!

Помогите, пожалуйста, понять логику.

Имеем "массив" и "диапазон условий".

Для каждой позиции массива необходимо проверить, содержит ли та одно из условий, расположенных в "диапазоне условий".

Пробовал =поискпоз("диапазон условий";"массив";0), но данная функция хочет конкретное значение, а не именной диапазон.

см. пример

----------------------
Спасибо
Вложения
Тип файла: rar пример_090311.rar (106.8 Кб, 12 просмотров)
Обыватель вне форума Ответить с цитированием
Старый 09.03.2011, 16:54   #2
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Я думаю вот такой формулой можно попробовать:
Код:
=ПРОСМОТР(2;1/ЕЧИСЛО(ПОИСК('диапазон условий'!$A$1:$A$46;массив!A2));'диапазон условий'!$A$1:$A$46)
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 10.03.2011, 14:11   #3
Обыватель
Пользователь
 
Регистрация: 21.01.2008
Сообщений: 98
По умолчанию

Большое спасибо!
Обыватель вне форума Ответить с цитированием
Старый 10.03.2011, 14:44   #4
Обыватель
Пользователь
 
Регистрация: 21.01.2008
Сообщений: 98
По умолчанию

Формула работает, но не могу понять как =(

=ПРОСМОТР(2;1/ЕЧИСЛО(ПОИСК('диапазон условий'!$A$1:$A$46;массив!A2));'ди апазон условий'!$A$1:$A$46)


Пробовал отдельно выделить блоки:

результат вычисления ПОИСК('диапазон условий'!$A$1:$A$46;массив!A2) = #ЗНАЧ!

результат вычисления ЕЧИСЛО(#ЗНАЧ!)=ЛОЖЬ т.е. = 0

результат вычисления 1/0 = #ДЕЛ/0!

Имеем: =ПРОСМОТР(2;#ДЕЛ/0!;'диапазон условий'!$A$1:$A$4)...

Но ведь работает же


Помогите, пожалуйста понять
Обыватель вне форума Ответить с цитированием
Старый 10.03.2011, 15:54   #5
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от Обыватель Посмотреть сообщение
Имеем: =ПРОСМОТР(2;#ДЕЛ/0!;'диапазон условий'!$A$1:$A$4)...
Не совсем так. Имеем массив значений #ДЕЛ/0!(там, где ПОИСК возвращает ЗНАЧ) и числовые значения(там, где ПОИСК возвращает цифру).
Код:
{#ДЕЛ/0!;#ДЕЛ/0!;1;#ДЕЛ/0!;0,6777}
Т.к. аргументом задано 2, то ищется максимальное найденное - в нашем случае единственное нужное. Находится его позиция(номер позиции) и ПРОСМОТР возвращает слово, которое расположено в массиве значений(последний аргумент ПРОСМОТР) под этим номером позиции.

А для более точного понятия воспользуйтесь пошаговым вычислением формулы: Формулы-ВЫчислить формулу
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 10.03.2011, 16:15   #6
Обыватель
Пользователь
 
Регистрация: 21.01.2008
Сообщений: 98
По умолчанию

Гениально =) первый раз сталкиваюсь с таким оригинальным решением в формуле. Спасибо, с трудом, но я понял
Обыватель вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка условий advanced PHP 3 23.01.2011 12:10
Проверить несколько условий D.O.G Общие вопросы Delphi 3 15.10.2010 10:27
Ссылка на диапазон и формула zoosublimation Microsoft Office Excel 4 19.04.2010 15:19
Ссылка на динамический диапазон данных NikolayGVB Microsoft Office Excel 2 13.01.2009 18:00
Как написать в коде чтобы диапазон А копировался как значение в диапазон В. Dorvir Microsoft Office Excel 12 23.05.2008 22:11