LAS
Дата: Четверг, 21.11.2019, 16:58 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Здравствуйте, ситуация следующая, есть прайсы в Excel от разных поставщиков, продающих одни и те же товары, с одинаковыми артикулами, но по разным ценам. Порядок расположения артикулов в прайсах, у каждого поставщика свой. Требуется на основании данных из прайсов, сделать одну таблицу, с указанием лучшей цены на товар согласно артикула, при этом чтобы в отдельных ячейках автоматически отображалось лучшая цена и название этого поставщика. Буду очень признателен за ответ!
Здравствуйте, ситуация следующая, есть прайсы в Excel от разных поставщиков, продающих одни и те же товары, с одинаковыми артикулами, но по разным ценам. Порядок расположения артикулов в прайсах, у каждого поставщика свой. Требуется на основании данных из прайсов, сделать одну таблицу, с указанием лучшей цены на товар согласно артикула, при этом чтобы в отдельных ячейках автоматически отображалось лучшая цена и название этого поставщика. Буду очень признателен за ответ! LAS
Ответить
Сообщение Здравствуйте, ситуация следующая, есть прайсы в Excel от разных поставщиков, продающих одни и те же товары, с одинаковыми артикулами, но по разным ценам. Порядок расположения артикулов в прайсах, у каждого поставщика свой. Требуется на основании данных из прайсов, сделать одну таблицу, с указанием лучшей цены на товар согласно артикула, при этом чтобы в отдельных ячейках автоматически отображалось лучшая цена и название этого поставщика. Буду очень признателен за ответ! Автор - LAS Дата добавления - 21.11.2019 в 16:58
InExSu
Дата: Четверг, 21.11.2019, 23:42 |
Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация:
96
±
Замечаний:
0% ±
Excel 2010, 365
Привет!
[vba]
Код
Sub Price_miN() InExSu.Cells.Clear Dim ws_Name As Variant, _ ws As Worksheet For Each ws_Name In a1_Sheets_List Set ws = Worksheets(ws_Name) Column_Fill ws ws.UsedRange. _ Copy InExSu.Cells(Строка_Свободная(InExSu), 1) Next Сортировать_Дубликаты_Удалить End Sub Sub Сортировать_Дубликаты_Удалить() With InExSu .Sort.SortFields.Clear .Sort.SortFields.Add2 Key:=.Cells(2, 1), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .Sort.SortFields.Add2 Key:=.Cells(2, 3), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With InExSu.Sort .SetRange InExSu.UsedRange .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With .UsedRange.RemoveDuplicates Columns:=1, Header:=xlYes .UsedRange.RemoveDuplicates Columns:=1, Header:=xlNo End With 'InExSu End Sub Function a1_Sheets_List() _ As Variant a1_Sheets_List = Array("прайс поставщик 1", "прайс поставщик 2", "прайс поставщик 3") End Function Sub Column_Fill( _ ws As Worksheet) With ws Application.Intersect( _ .UsedRange, .Columns(3)).Offset(0, 1).Value = _ .Cells(1, 3).Value End With End Sub Function Строка_Свободная( _ ws As Worksheet) _ As Long ' procedure Checked by test Dim r As Range Set r = ws.Cells.Find(what:="*", SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious) If r Is Nothing Then Строка_Свободная = 1 Else Строка_Свободная = r.Row + 1 End If End Function
[/vba]
Привет!
[vba]
Код
Sub Price_miN() InExSu.Cells.Clear Dim ws_Name As Variant, _ ws As Worksheet For Each ws_Name In a1_Sheets_List Set ws = Worksheets(ws_Name) Column_Fill ws ws.UsedRange. _ Copy InExSu.Cells(Строка_Свободная(InExSu), 1) Next Сортировать_Дубликаты_Удалить End Sub Sub Сортировать_Дубликаты_Удалить() With InExSu .Sort.SortFields.Clear .Sort.SortFields.Add2 Key:=.Cells(2, 1), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .Sort.SortFields.Add2 Key:=.Cells(2, 3), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With InExSu.Sort .SetRange InExSu.UsedRange .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With .UsedRange.RemoveDuplicates Columns:=1, Header:=xlYes .UsedRange.RemoveDuplicates Columns:=1, Header:=xlNo End With 'InExSu End Sub Function a1_Sheets_List() _ As Variant a1_Sheets_List = Array("прайс поставщик 1", "прайс поставщик 2", "прайс поставщик 3") End Function Sub Column_Fill( _ ws As Worksheet) With ws Application.Intersect( _ .UsedRange, .Columns(3)).Offset(0, 1).Value = _ .Cells(1, 3).Value End With End Sub Function Строка_Свободная( _ ws As Worksheet) _ As Long ' procedure Checked by test Dim r As Range Set r = ws.Cells.Find(what:="*", SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious) If r Is Nothing Then Строка_Свободная = 1 Else Строка_Свободная = r.Row + 1 End If End Function
[/vba]
InExSu
Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
Ответить
Сообщение Привет!
[vba]
Код
Sub Price_miN() InExSu.Cells.Clear Dim ws_Name As Variant, _ ws As Worksheet For Each ws_Name In a1_Sheets_List Set ws = Worksheets(ws_Name) Column_Fill ws ws.UsedRange. _ Copy InExSu.Cells(Строка_Свободная(InExSu), 1) Next Сортировать_Дубликаты_Удалить End Sub Sub Сортировать_Дубликаты_Удалить() With InExSu .Sort.SortFields.Clear .Sort.SortFields.Add2 Key:=.Cells(2, 1), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .Sort.SortFields.Add2 Key:=.Cells(2, 3), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With InExSu.Sort .SetRange InExSu.UsedRange .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With .UsedRange.RemoveDuplicates Columns:=1, Header:=xlYes .UsedRange.RemoveDuplicates Columns:=1, Header:=xlNo End With 'InExSu End Sub Function a1_Sheets_List() _ As Variant a1_Sheets_List = Array("прайс поставщик 1", "прайс поставщик 2", "прайс поставщик 3") End Function Sub Column_Fill( _ ws As Worksheet) With ws Application.Intersect( _ .UsedRange, .Columns(3)).Offset(0, 1).Value = _ .Cells(1, 3).Value End With End Sub Function Строка_Свободная( _ ws As Worksheet) _ As Long ' procedure Checked by test Dim r As Range Set r = ws.Cells.Find(what:="*", SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious) If r Is Nothing Then Строка_Свободная = 1 Else Строка_Свободная = r.Row + 1 End If End Function
[/vba]
Автор - InExSu Дата добавления - 21.11.2019 в 23:42
LAS
Дата: Пятница, 22.11.2019, 10:06 |
Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
InExSu, добрый день, Спасибо, за помощь! Очень близко к тому, что требуется. Возможно доработать, чтобы в ячейке С1 было "Лучшая цена" (а не Поставщик1), а в ячейке D1 "Лучший Поставщик" (а не Поставщик 1)?
InExSu, добрый день, Спасибо, за помощь! Очень близко к тому, что требуется. Возможно доработать, чтобы в ячейке С1 было "Лучшая цена" (а не Поставщик1), а в ячейке D1 "Лучший Поставщик" (а не Поставщик 1)? LAS
Ответить
Сообщение InExSu, добрый день, Спасибо, за помощь! Очень близко к тому, что требуется. Возможно доработать, чтобы в ячейке С1 было "Лучшая цена" (а не Поставщик1), а в ячейке D1 "Лучший Поставщик" (а не Поставщик 1)? Автор - LAS Дата добавления - 22.11.2019 в 10:06
InExSu
Дата: Пятница, 22.11.2019, 18:52 |
Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация:
96
±
Замечаний:
0% ±
Excel 2010, 365
Привет! В модуль добавьте [vba]Код
Sub MakeUp( _ ws As Worksheet) With ws .Cells(1, 3).Value = "Лучшая цена" .Cells(1, 4).Value = "Лучший Поставщик" End With End Sub
[/vba] После строки [vba]Код
Сортировать_Дубликаты_Удалить
[/vba] добавьте [vba][/vba]
Привет! В модуль добавьте [vba]Код
Sub MakeUp( _ ws As Worksheet) With ws .Cells(1, 3).Value = "Лучшая цена" .Cells(1, 4).Value = "Лучший Поставщик" End With End Sub
[/vba] После строки [vba]Код
Сортировать_Дубликаты_Удалить
[/vba] добавьте [vba][/vba] InExSu
Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
Ответить
Сообщение Привет! В модуль добавьте [vba]Код
Sub MakeUp( _ ws As Worksheet) With ws .Cells(1, 3).Value = "Лучшая цена" .Cells(1, 4).Value = "Лучший Поставщик" End With End Sub
[/vba] После строки [vba]Код
Сортировать_Дубликаты_Удалить
[/vba] добавьте [vba][/vba] Автор - InExSu Дата добавления - 22.11.2019 в 18:52
LAS
Дата: Понедельник, 25.11.2019, 11:35 |
Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
InExSu, добрый день! Я честно говоря в этом полный ноль, поэтому мне Ваш ответ не понятен. Если можно сделайте файл с готовым результатом. Спасибо за внимание, терпение и помощь!
InExSu, добрый день! Я честно говоря в этом полный ноль, поэтому мне Ваш ответ не понятен. Если можно сделайте файл с готовым результатом. Спасибо за внимание, терпение и помощь! LAS
Ответить
Сообщение InExSu, добрый день! Я честно говоря в этом полный ноль, поэтому мне Ваш ответ не понятен. Если можно сделайте файл с готовым результатом. Спасибо за внимание, терпение и помощь! Автор - LAS Дата добавления - 25.11.2019 в 11:35