Страницы: 1
RSS
Выборка нескольких данных из динамического диапазона
 
Всем здравия.
Нужна помощь в решении вопроса :-).
Есть выгрузка из 1С семерки (лист "Данные" в примере), необходимо осуществить выборку из этой выгрузки по двум параметрам клиент и товар и занести кол-во купленного в таблицу (лист "Аналитика" в примере).
Я пробовал осуществить с помощью функции ВПР, для этого с помощью такой формулы АДРЕС(ПОИСКПОЗ($B$2;Данные!$A$2:$A$22;0);1;1) создавал адрес первой ячейки для таблицы, в которой функция ВПР будет осуществлять поиск, но :-( она не принимает эту функцию, пишет ошибку #ЗНАЧ.
Прошу вашей помощи, а то время теряется почти один рабочий день кропотливой работы.
Заранее благодарю.
Если возможно сделать без макросов будет замечательно
 
Что ж вы так все макросы не любите! Кто мешает записать макрорекордером установку фильтра?
Я сам - дурнее всякого примера! ...
 
А нельзя ли выгрузить по другому таблицу?
С помощью сводных таблиц это бы очень даже легко получилось.
Если приведете выгрузку к форме как у меня в файле, то все получится без формул и макросов - с помощью сводных таблиц.
С уважением,
Федор/Все_просто
 
KuklP, http://www.planetaexcel.ru/forum/?PAGE_NAME=read&FID=8&TID=42550&PAGEN_1=3
сообщение №70, 2-я строка :)
 
Тут думаю макрос нужен.
Например такой:
Код
Sub tt()
    Dim c As Range, t$
    With CreateObject("scripting.dictionary")
        .comparemode = 1

        For Each c In Sheets("Данные").[a1].CurrentRegion.Offset(1).Columns(1).Cells
            If c.Value <> "Товар" Then
                If Left(c, 1) <> " " Then
                    t = c.Value
                Else
                    .Item(t & "|" & c.Value) = .Item(t & "|" & c.Value) + c.Offset(, 1)
                End If
            End If
        Next

        For Each c In Sheets("Аналитика").[b3:f10]
            t = Sheets("Аналитика").Cells(2, c.Column) & "|" & Sheets("Аналитика").Cells(c.Row, 1)
            c.Value = .Item(t)
        Next
    End With
End Sub


Можно доработать, чтоб всю итоговую таблицу строил по исходным данным.
 
Цитата
KuklP пишет: Кто мешает записать макрорекордером установку фильтра?
На самом деле при необходимости я могу и макрос рекордером нарисовать, но здесь такое не пройдёт. Пробовал, может конечно криво пробовал. А писать макросы не научился, а чтобы кто-то написал, то мне самому нужно понимать что там и зачем, потому как при необходимости подправить какие-то значения или переменные, придётся просить автора такого макроса, а это не всегда удобно :-(.

Именно поэтому и прошу помощи в создании формулы, которая поможет в функции ВПР задать ссылки на таблицу, в которой искать данные.
 
Hugo, благодарю за макрос, но попытался в свою полную таблицу его внедрить, он мне затирает часть таблицы и данные не выводит :-(
 
Код
=ЕСЛИОШИБКА(ИНДЕКС(Данные!$B$3:$B$21;ПОИСКПОЗ($A3;ДВССЫЛ("Данные!A"&ПОИСКПОЗ(B$2;Данные!$A$1:$A$21;0)&":A"&ЕСЛИОШИБКА(ПОИСКПОЗ(C$2;Данные!$A$1:$A$21;0);21));0)+ПОИСКПОЗ(B$2;Данные!$A$1:$A$21;0)-3);"")
Летучая формула
Изменено: Nic70y - 30.06.2013 09:19:30
 
Nic70y, БлагоДарю!!!!
Рабочая формула!!! То что нужно!

Совсем забыл об операнде "&" :-(
Изменено: alexa-k - 30.06.2013 14:28:51
 
Если макрос работает на примере - то должен работать и в рабочем файле. Если конечно пример корректен.
Возможно нужна коррекция в .[b3:f10] и в адресе, откуда берём заголовки таблицы.
 
Здравствуйте.
Просмотрев обучающее видео "Динамическая выборка функциями ИНДЕКС и ПОИСКПОЗ", повторяю все один в один,..... на выходе имею "# N/A".
Сделав первую ячейку с "MATCH" и не получив нужного результата нет смысла продолжать с "INDEX".
Идея состоит в том, чтобы при изменении имени, изменялись и данные клиента.
Подскажите в чем и где моя ошибка.
Спасибо
Изменено: Ronin71 - 15.04.2015 01:26:46
Умные люди — это те, которые работают с людьми умнее их самих. (С)Р.Кийосаки
 
И где? Мы должны глаза ломать?
Вообще-то конечно нашёл... Вы хоть посмотрели что в чём ищите?
 
Согласен с Hugo, разноцветный файлик и не понятно чем вам не угодил Поискпоз если б вас заставили искать яблоки в рыбном отделе сомневаюсь чтоб вы их нашли
Лень двигатель прогресса, доказано!!!
 
Все равно не понял...
Умные люди — это те, которые работают с людьми умнее их самих. (С)Р.Кийосаки
 
Ronin71, зайдите в свой файл пример встаньте в формулу выделятся ячейки что ищем и где ищем как вы можете найти фамилию в диапазоне с цифрами
Лень двигатель прогресса, доказано!!!
 
Фамилию он находит, а "Helkilötunnus" нет. В формуле же указано откуда искать цифры.
Умные люди — это те, которые работают с людьми умнее их самих. (С)Р.Кийосаки
 
тогда зачем такой пример, вот так формула прописывается
=Индекс(диапазон "Helkilötunnus";ПОИСКПОЗ(F7;диапазон Vastaanottaja:;0))
вормула ищет фамилию в своем столбце находит показывает позицию для индекс с какой позиции ему тянуть "Helkilötunnus"
Лень двигатель прогресса, доказано!!!
 
Спасибо огромное. Всем. Заработала!!!
А мне еще учиться, учиться и еще раз учиться.
Умные люди — это те, которые работают с людьми умнее их самих. (С)Р.Кийосаки
Страницы: 1
Наверх