Привет тебе, о великий и знающий человек! Помоги, пожалуйста, разобраться с такой проблемой, так как до меня никак не доходит, как это сделать =( Пример во вложениях
Дано 2 столбца B и C. В столбце B есть одинаковые номера В столбце С тоже есть одинаковые номера, которые соотносятся с данными из B Нужно сделать 2 новых столбца, где в первом будут удалены дубли из B, а во втором значения объедены через запятую.
пример: (фио столбец B, товары столбец C) Иванов Иван - 10 яблок Иванов Иван - 5 груш Сидоров Сидр - 5 яблок Петров Пётр - 7 яблок Петров Пётр - 9 груш
А результат: (столбец D и товар столбец E) Иванов Иван - 10 яблок, 5 груш Сидоров Сидр - 5 яблок Петров Пётр - 7 яблок, 9 груш
Привет тебе, о великий и знающий человек! Помоги, пожалуйста, разобраться с такой проблемой, так как до меня никак не доходит, как это сделать =( Пример во вложениях
Дано 2 столбца B и C. В столбце B есть одинаковые номера В столбце С тоже есть одинаковые номера, которые соотносятся с данными из B Нужно сделать 2 новых столбца, где в первом будут удалены дубли из B, а во втором значения объедены через запятую.
пример: (фио столбец B, товары столбец C) Иванов Иван - 10 яблок Иванов Иван - 5 груш Сидоров Сидр - 5 яблок Петров Пётр - 7 яблок Петров Пётр - 9 груш
А результат: (столбец D и товар столбец E) Иванов Иван - 10 яблок, 5 груш Сидоров Сидр - 5 яблок Петров Пётр - 7 яблок, 9 грушsergeyssavateev
для второго столбца наверняка можно использовать ОБЪЕДИНИТЬ из новых версий, но у меня такой нет, поискав в интернете нашел такую пользовательскую функцию: [vba]
Код
Function sergeyssavateev(TextRange As Range, SearchRange As Range, Condition As String) Dim Delimeter As String, i As Long
Delimeter = ", " 'разделитель
If SearchRange.Count <> TextRange.Count Then sergeyssavateev = CVErr(xlErrRef) Exit Function End If
For i = 1 To SearchRange.Cells.Count If SearchRange.Cells(i) Like Condition Then OutText = OutText & TextRange.Cells(i) & Delimeter Next i
sergeyssavateev = Left(OutText, Len(OutText) - Len(Delimeter)) End Function
для второго столбца наверняка можно использовать ОБЪЕДИНИТЬ из новых версий, но у меня такой нет, поискав в интернете нашел такую пользовательскую функцию: [vba]
Код
Function sergeyssavateev(TextRange As Range, SearchRange As Range, Condition As String) Dim Delimeter As String, i As Long
Delimeter = ", " 'разделитель
If SearchRange.Count <> TextRange.Count Then sergeyssavateev = CVErr(xlErrRef) Exit Function End If
For i = 1 To SearchRange.Cells.Count If SearchRange.Cells(i) Like Condition Then OutText = OutText & TextRange.Cells(i) & Delimeter Next i
sergeyssavateev = Left(OutText, Len(OutText) - Len(Delimeter)) End Function
да, получается там, где было только 1 значение - формула дублирует его(( можно как-то исправить этот момент? или может дополнительно как-то убрать такие дубли по факту?
да, получается там, где было только 1 значение - формула дублирует его(( можно как-то исправить этот момент? или может дополнительно как-то убрать такие дубли по факту?sergeyssavateev
понял, что есть ещё одна проблема, сцепка может быть не только 2 результатов, но и 3-4-5. а формулы выше сцепляют только по 2 значения( а там, где есть сцепка, например, 4х значений, формула сцепляет только 1оге и 4ое (на скрине пример)
как можно сделать, чтобы объединение работа не только по 2 значениям а объединяло все?
понял, что есть ещё одна проблема, сцепка может быть не только 2 результатов, но и 3-4-5. а формулы выше сцепляют только по 2 значения( а там, где есть сцепка, например, 4х значений, формула сцепляет только 1оге и 4ое (на скрине пример)
как можно сделать, чтобы объединение работа не только по 2 значениям а объединяло все?
sergeyssavateev, если не хотите вариант от elovkov, то доп.столбцы. формулы справятся даже если №№ идут не по-порядку [p.s.]обратите внимание - файл перезалит должен быть 215_1[/p.s.]
sergeyssavateev, если не хотите вариант от elovkov, то доп.столбцы. формулы справятся даже если №№ идут не по-порядку [p.s.]обратите внимание - файл перезалит должен быть 215_1[/p.s.]Nic70y
так, не сразу смог разобраться как прописать это в 16ой версии, но сделал и теперь да, всё раскидывает и сцепляет везде корректно как и надо!)
СПАСИБО вам обоим, благодаря вашим ответам получилось сделать то, что нужно) не мог никак сам понять и обратился за помощью к вам, гуру) спасибо ещё раз))
так, не сразу смог разобраться как прописать это в 16ой версии, но сделал и теперь да, всё раскидывает и сцепляет везде корректно как и надо!)
СПАСИБО вам обоим, благодаря вашим ответам получилось сделать то, что нужно) не мог никак сам понять и обратился за помощью к вам, гуру) спасибо ещё раз))sergeyssavateev