|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.04.2015, 18:10 | #1 |
Регистрация: 20.04.2015
Сообщений: 7
|
Расширенная пользовательская функция INDEX()
Добрый день, уважаемые программисты!
Помогите пожалуйста решить вот такую задачу... Есть книга Excel, состоящая из двух листов. На листе №1 происходят вычисления некоторых значений. На листе №2 находятся исходные данные. Данная система напоминает работу программы по созданию Счета-Фактуры, т.*е. когда я в листе №1 задаю название товара (к примеру «яблоки» + «семеринка»), то по этому названию стандартная функция =INDEX() ищет соответствующую цену Товара (прайс - это лист №2) и возвращает ее в нужную ячейку на листе №1. Задача осложняется тем, что поиск Товара происходит по 2-ум переменным и прайс лист постоянно редактируется (конструкция таблицы остается, меняется количество строк, т.*е. становится больше или меньше). Теперь вопрос: «Как прописать пользовательскую функцию (аналог =INDEX()) чтобы она сама в своем аргументе изменяла массив всех значений из листа №2, массив значений первой переменной согласно таблицы из листа №2 ?» Для поиска значения по двум переменным, я использую следующую конструкцию: =INDEX($'PRICE LABELS'.B3:F57;MATCH(E7;$'PRICE LABELS'.A3:A57;0);MATCH(D7;$'PRICE LABELS'.B2:F2;0)) , где ячейки Е7 и D7 - это переменные, по которым происходит поиск значения. А массив В3:F57 – это массив всех значений (изменяется), А3:А57 - массив значений первой переменной (изменяется), В2:F2 – массив значений второй переменной (постоянная). |
20.04.2015, 19:04 | #2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
21.04.2015, 10:09 | #3 |
Регистрация: 20.04.2015
Сообщений: 7
|
Спасибо, IgorGO.
|
21.04.2015, 10:42 | #4 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Слово "пользовательская" тут совершенно ни к чему.
webmoney: E265281470651 Z422237915069 R418926282008
|
22.04.2015, 11:52 | #5 |
Регистрация: 20.04.2015
Сообщений: 7
|
Это точно. Просто намудрил я. На самом деле все оказывается намного проще. )))
|
22.04.2015, 11:55 | #6 |
Регистрация: 20.04.2015
Сообщений: 7
|
А не подскажете функцию, которая могла бы искать значение по двум переменным? Эти две переменные находятся в столбцах. Таблицу с данными изменять нельзя.
|
22.04.2015, 12:35 | #7 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
СУММПРОИЗВ() например может.
webmoney: E265281470651 Z422237915069 R418926282008
|
22.04.2015, 12:44 | #8 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
тот же ИНДЕКС - если нужно взять 1 значение.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
Последний раз редактировалось IgorGO; 22.04.2015 в 15:48. |
22.04.2015, 12:51 | #9 |
Регистрация: 20.04.2015
Сообщений: 7
|
СУММПРОИЗВ() может не подойти, т.к. переменные для поиска значения - это текст.
|
22.04.2015, 12:59 | #10 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Текст для поиска вполне подходит. Т.е. сферический конь в вакууме претензий не имеет.
webmoney: E265281470651 Z422237915069 R418926282008
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пользовательская функция с необязательными параметрами | s_bag | Microsoft Office Excel | 16 | 08.11.2013 19:58 |
пользовательская функция МАКСЕСЛИМН | Zorg | Microsoft Office Excel | 7 | 22.06.2012 11:43 |
Пользовательская функция с необязательными параметрами | savraska | Microsoft Office Excel | 2 | 23.05.2010 11:47 |
Пользовательская функция,возвращающая массив | savraska | Microsoft Office Excel | 2 | 20.04.2010 03:12 |
Пользовательская функция с диапазоном в качестве параметра | SanSanblch | Microsoft Office Excel | 2 | 29.05.2009 17:37 |