Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как подтянуть значения из файла с данными - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как подтянуть значения из файла с данными (Формулы/Formulas)
Как подтянуть значения из файла с данными
Valery_d Дата: Суббота, 18.07.2020, 10:09 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Имеются два excel-файла, в первом файле данные Артикул и маркировки к этому артикулу. Нужно подлить все маркировки соответствующие этому артикулу во второй файл (во втором файле выделено желтым как должно быть). Необходимо максимально автоматизировать процесс.
К сообщению приложен файл: 4495619.xlsx (477.7 Kb) · 2225432.xlsx (44.2 Kb)
 
Ответить
СообщениеИмеются два excel-файла, в первом файле данные Артикул и маркировки к этому артикулу. Нужно подлить все маркировки соответствующие этому артикулу во второй файл (во втором файле выделено желтым как должно быть). Необходимо максимально автоматизировать процесс.

Автор - Valery_d
Дата добавления - 18.07.2020 в 10:09
Pelena Дата: Суббота, 18.07.2020, 11:09 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19177
Репутация: 4417 ±
Замечаний: ±

Excel 365 & Mac Excel
Кроме артикула надо ещё что-то учитывать? Размер? По первому артикулу в таблице 304 записи


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеКроме артикула надо ещё что-то учитывать? Размер? По первому артикулу в таблице 304 записи

Автор - Pelena
Дата добавления - 18.07.2020 в 11:09
Valery_d Дата: Суббота, 18.07.2020, 13:19 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Только артикул
 
Ответить
СообщениеТолько артикул

Автор - Valery_d
Дата добавления - 18.07.2020 в 13:19
Valery_d Дата: Суббота, 18.07.2020, 18:51 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Pelena, По первому артикулу 908013/05-06, 376 записей и они должны подтянуться в файл с примером и встать в одну ячейку напротив этого артикула. Остальные параметры учитывать не нужно.
 
Ответить
СообщениеPelena, По первому артикулу 908013/05-06, 376 записей и они должны подтянуться в файл с примером и встать в одну ячейку напротив этого артикула. Остальные параметры учитывать не нужно.

Автор - Valery_d
Дата добавления - 18.07.2020 в 18:51
Pelena Дата: Суббота, 18.07.2020, 19:53 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 19177
Репутация: 4417 ±
Замечаний: ±

Excel 365 & Mac Excel
Не знаю, получится ли столько строк в одну ячейку вставить.
Макросы допускаются?


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеНе знаю, получится ли столько строк в одну ячейку вставить.
Макросы допускаются?

Автор - Pelena
Дата добавления - 18.07.2020 в 19:53
Valery_d Дата: Суббота, 18.07.2020, 19:58 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Pelena, я это сделал вручную, отфильтровал артикул, выделил столбец с маркировкой, вставил в word значения, скопировал их и вставил в результат в конечный файл. Вот такой изврат)) может есть какой то способ проще... подскажите.
 
Ответить
СообщениеPelena, я это сделал вручную, отфильтровал артикул, выделил столбец с маркировкой, вставил в word значения, скопировал их и вставил в результат в конечный файл. Вот такой изврат)) может есть какой то способ проще... подскажите.

Автор - Valery_d
Дата добавления - 18.07.2020 в 19:58
Pelena Дата: Суббота, 18.07.2020, 21:29 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 19177
Репутация: 4417 ±
Замечаний: ±

Excel 365 & Mac Excel
Ну вот вариант с пользовательской функцией из Готовых решений
Но, как и ожидалось, если слишком много записей, они не помещаются в ячейку.
Например, артикул 908076/03-01
Файл пришлось урезать, иначе не помещается на форум.
Второй файл тоже должен быть открыт
К сообщению приложен файл: 2225432.xlsb (432.9 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеНу вот вариант с пользовательской функцией из Готовых решений
Но, как и ожидалось, если слишком много записей, они не помещаются в ячейку.
Например, артикул 908076/03-01
Файл пришлось урезать, иначе не помещается на форум.
Второй файл тоже должен быть открыт

Автор - Pelena
Дата добавления - 18.07.2020 в 21:29
Valery_d Дата: Суббота, 18.07.2020, 21:44 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Pelena, я сейчас сделал вручную способом описанным ранее и у меня все записи встали по данному артикулу. где то какое то ограничение видимо в этой функции?
 
Ответить
СообщениеPelena, я сейчас сделал вручную способом описанным ранее и у меня все записи встали по данному артикулу. где то какое то ограничение видимо в этой функции?

Автор - Valery_d
Дата добавления - 18.07.2020 в 21:44
Pelena Дата: Суббота, 18.07.2020, 22:00 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 19177
Репутация: 4417 ±
Замечаний: ±

Excel 365 & Mac Excel
Да, это ограничение строковой переменной, в которой формируется результат. Немного неправильно выше написала: не в ячейку не помещается, а в переменную


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеДа, это ограничение строковой переменной, в которой формируется результат. Немного неправильно выше написала: не в ячейку не помещается, а в переменную

Автор - Pelena
Дата добавления - 18.07.2020 в 22:00
Hugo Дата: Суббота, 18.07.2020, 22:50 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3252
Репутация: 707 ±
Замечаний: 0% ±

2019
Заметил косяк Concata - пропадает первый ведущий 0!
Код
=VLOOKUPCOUPLE([4495619.xlsx]markirovka_customs_result_s_b_y!$B:$D;1;E5;3;СИМВОЛ(10))
вытягивает корректно.
По ограничениям - вроде как
Общее количество знаков в ячейке -32 767 знаков
А для 908076/03-01 - 35071


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Суббота, 18.07.2020, 23:08
 
Ответить
СообщениеЗаметил косяк Concata - пропадает первый ведущий 0!
Код
=VLOOKUPCOUPLE([4495619.xlsx]markirovka_customs_result_s_b_y!$B:$D;1;E5;3;СИМВОЛ(10))
вытягивает корректно.
По ограничениям - вроде как
Общее количество знаков в ячейке -32 767 знаков
А для 908076/03-01 - 35071

Автор - Hugo
Дата добавления - 18.07.2020 в 22:50
Valery_d Дата: Суббота, 18.07.2020, 22:56 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Pelena, Прошу прощения, выяснилось что всё таки нужно учитывать размер. В итоговой таблице видно что есть одинаковые артикулы например 908009/02-02 с разными размерами. Можно это учесть и поправить формулу?
 
Ответить
СообщениеPelena, Прошу прощения, выяснилось что всё таки нужно учитывать размер. В итоговой таблице видно что есть одинаковые артикулы например 908009/02-02 с разными размерами. Можно это учесть и поправить формулу?

Автор - Valery_d
Дата добавления - 18.07.2020 в 22:56
Hugo Дата: Суббота, 18.07.2020, 23:17 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3252
Репутация: 707 ±
Замечаний: 0% ±

2019
Для одного размера у меня есть версия VLOOKUPCOUPLE() с поиском по двум столбцам. Для вариантов типа 37-40 нету.
Уже есть:
Код
=VLOOKUPCOUPLE_spec22([4495619.xlsx]markirovka_customs_result_s_b_y!$B:$D;1;2;E5;L5;3;СИМВОЛ(10))


[vba]
Код

Function VLOOKUPCOUPLE_spec22(Table As Variant, SearchColumnNum1 As Integer, SearchColumnNum2 As Integer, SearchValue1 As Variant, SearchValue2 As Variant, _
                    RezultColumnNum As Integer, Separator_ As String)
'Table - таблица где ищем
'SearchColumnNum1/2 - столбцы где ищем
'SearchValue1/2 - данные которые ищем
'RezultColumnNum - столбец откуда берём результат
'Separator_ - разделитель, желательно вводить с пробелом в конце

    Dim i As Long, arr, razm As Long
    If TypeName(Table) = "Range" Then Table = Intersect(Table.Parent.UsedRange, Table).Value

    arr = Split(SearchValue2, "-")

    For razm = arr(LBound(arr)) To arr(UBound(arr))
        For i = 1 To UBound(Table)
            If Table(i, SearchColumnNum1) & "|" & Table(i, SearchColumnNum2) = SearchValue1 & "|" & razm Then
                If VLOOKUPCOUPLE_spec22 <> "" Then
                    VLOOKUPCOUPLE_spec22 = VLOOKUPCOUPLE_spec22 & Separator_ & Table(i, RezultColumnNum)
                Else
                    VLOOKUPCOUPLE_spec22 = Table(i, RezultColumnNum)
                End If
            End If
        Next i
    Next razm

    If VLOOKUPCOUPLE_spec22 = 0 Then VLOOKUPCOUPLE_spec22 = ""
    If Len(VLOOKUPCOUPLE_spec22) > 32767 Then VLOOKUPCOUPLE_spec22 = "превышено количество символов"
End Function
[/vba]


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Суббота, 18.07.2020, 23:40
 
Ответить
СообщениеДля одного размера у меня есть версия VLOOKUPCOUPLE() с поиском по двум столбцам. Для вариантов типа 37-40 нету.
Уже есть:
Код
=VLOOKUPCOUPLE_spec22([4495619.xlsx]markirovka_customs_result_s_b_y!$B:$D;1;2;E5;L5;3;СИМВОЛ(10))


[vba]
Код

Function VLOOKUPCOUPLE_spec22(Table As Variant, SearchColumnNum1 As Integer, SearchColumnNum2 As Integer, SearchValue1 As Variant, SearchValue2 As Variant, _
                    RezultColumnNum As Integer, Separator_ As String)
'Table - таблица где ищем
'SearchColumnNum1/2 - столбцы где ищем
'SearchValue1/2 - данные которые ищем
'RezultColumnNum - столбец откуда берём результат
'Separator_ - разделитель, желательно вводить с пробелом в конце

    Dim i As Long, arr, razm As Long
    If TypeName(Table) = "Range" Then Table = Intersect(Table.Parent.UsedRange, Table).Value

    arr = Split(SearchValue2, "-")

    For razm = arr(LBound(arr)) To arr(UBound(arr))
        For i = 1 To UBound(Table)
            If Table(i, SearchColumnNum1) & "|" & Table(i, SearchColumnNum2) = SearchValue1 & "|" & razm Then
                If VLOOKUPCOUPLE_spec22 <> "" Then
                    VLOOKUPCOUPLE_spec22 = VLOOKUPCOUPLE_spec22 & Separator_ & Table(i, RezultColumnNum)
                Else
                    VLOOKUPCOUPLE_spec22 = Table(i, RezultColumnNum)
                End If
            End If
        Next i
    Next razm

    If VLOOKUPCOUPLE_spec22 = 0 Then VLOOKUPCOUPLE_spec22 = ""
    If Len(VLOOKUPCOUPLE_spec22) > 32767 Then VLOOKUPCOUPLE_spec22 = "превышено количество символов"
End Function
[/vba]

Автор - Hugo
Дата добавления - 18.07.2020 в 23:17
Pelena Дата: Воскресенье, 19.07.2020, 21:44 | Сообщение № 13
Группа: Админы
Ранг: Местный житель
Сообщений: 19177
Репутация: 4417 ±
Замечаний: ±

Excel 365 & Mac Excel
Заметил косяк Concata
глазастый))

нужно учитывать размер
проверьте так
К сообщению приложен файл: 2225432-1-.xlsb (380.5 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Заметил косяк Concata
глазастый))

нужно учитывать размер
проверьте так

Автор - Pelena
Дата добавления - 19.07.2020 в 21:44
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как подтянуть значения из файла с данными (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!