сцепить по условию 
				   
 
 
 Антон1984  
 Дата: Понедельник, 02.10.2023, 17:02 | 
 Сообщение № 1     
   
 
   
 
 
 Группа: Пользователи  
 
 
 Ранг: Прохожий  
 
 Сообщений:  9 
 
 
 
 
  Репутация:    
 0    
 ±  
 
  
 Замечаний:
 0%   ±  
             
  
 
 
 Добрый день. Знаю, что данные темы уже на форуме, почитал, но никак не могу подстроить под свою ситуацию, без дополнительных доработок. Нужно сцепить значения из столбца "Модификация" с добавлением "(", ")", ";", по столбцам марка, модель, дата выпуска. Желательно, что бы пустые не заполнять. 
 
 
Добрый день. Знаю, что данные темы уже на форуме, почитал, но никак не могу подстроить под свою ситуацию, без дополнительных доработок. Нужно сцепить значения из столбца "Модификация" с добавлением "(", ")", ";", по столбцам марка, модель, дата выпуска. Желательно, что бы пустые не заполнять. Антон1984  
 
 
  
  
  
 Ответить 
Сообщение Добрый день. Знаю, что данные темы уже на форуме, почитал, но никак не могу подстроить под свою ситуацию, без дополнительных доработок. Нужно сцепить значения из столбца "Модификация" с добавлением "(", ")", ";", по столбцам марка, модель, дата выпуска. Желательно, что бы пустые не заполнять. Автор - Антон1984  Дата добавления - 02.10.2023  в 17:02   
 
 
 msi2102  
 Дата: Понедельник, 02.10.2023, 20:53 | 
 Сообщение № 2     
   
 
   
 
 
 Группа: Проверенные  
 
 
 Ранг: Обитатель  
 
 Сообщений:  450 
 
 
 
 
  Репутация:    
 135    
 ±  
 
  
 Замечаний:
 0%   ±  
   Excel 2019          
  
 
 
 Попробуйте такой макрос [vba]Код
Sub Макрос1()     Dim arr1, arr2, st As String     arr1 = Range("A2:D" & Cells(Rows.Count, 1).End(xlUp).Row)     ReDim arr2(1 To UBound(arr1), 1 To 1)     For n = UBound(arr1) To LBound(arr1) Step -1         If Not arr1(n, 3) = "" Then st = "(" & arr1(n, 3) & "); " & st         If Not arr1(n, 2) = "" Then arr2(n, 1) = Left(st, Len(st) - 2): st = ""     Next     Range("E2").Resize(UBound(arr2), 1) = arr2 End Sub
 [/vba]  
 
 
Попробуйте такой макрос [vba]Код
Sub Макрос1()     Dim arr1, arr2, st As String     arr1 = Range("A2:D" & Cells(Rows.Count, 1).End(xlUp).Row)     ReDim arr2(1 To UBound(arr1), 1 To 1)     For n = UBound(arr1) To LBound(arr1) Step -1         If Not arr1(n, 3) = "" Then st = "(" & arr1(n, 3) & "); " & st         If Not arr1(n, 2) = "" Then arr2(n, 1) = Left(st, Len(st) - 2): st = ""     Next     Range("E2").Resize(UBound(arr2), 1) = arr2 End Sub
 [/vba] msi2102  
 
 
  
  
  
 Ответить 
Сообщение Попробуйте такой макрос [vba]Код
Sub Макрос1()     Dim arr1, arr2, st As String     arr1 = Range("A2:D" & Cells(Rows.Count, 1).End(xlUp).Row)     ReDim arr2(1 To UBound(arr1), 1 To 1)     For n = UBound(arr1) To LBound(arr1) Step -1         If Not arr1(n, 3) = "" Then st = "(" & arr1(n, 3) & "); " & st         If Not arr1(n, 2) = "" Then arr2(n, 1) = Left(st, Len(st) - 2): st = ""     Next     Range("E2").Resize(UBound(arr2), 1) = arr2 End Sub
 [/vba] Автор - msi2102  Дата добавления - 02.10.2023  в 20:53   
 
 
 Антон1984  
 Дата: Вторник, 03.10.2023, 07:59 | 
 Сообщение № 3     
   
 
   
 
 
 Группа: Пользователи  
 
 
 Ранг: Прохожий  
 
 Сообщений:  9 
 
 
 
 
  Репутация:    
 0    
 ±  
 
  
 Замечаний:
 0%   ±  
             
  
 
 
 спасибо большое. 
 
 
 
  
  
  
 Ответить 
Сообщение спасибо большое. Автор - Антон1984  Дата добавления - 03.10.2023  в 07:59   
 
 
 китин  
 Дата: Вторник, 03.10.2023, 08:39 | 
 Сообщение № 4     
   
 
  
   
 
 
 Группа: Модераторы  
 
 
 Ранг: Экселист  
 
 Сообщений:  7035 
 
 
 
 
  Репутация:    
 1079    
 ±  
 
  
 Замечаний:
 0%   ±  
   Excel 2007;2010;2016          
  
 
 
 PQ всемогущий
[vba]
Код
let     Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],     #"Заполнение вниз" = Table.FillDown(Источник,{"Модель"}),     #"Замененное значение" = Table.ReplaceValue(#"Заполнение вниз","Рено",null,Replacer.ReplaceValue,{"Марка"}),     #"Заполнение вниз1" = Table.FillDown(#"Замененное значение",{"Марка"}),     #"Сгруппированные строки" = Table.Group(#"Заполнение вниз1", {"Марка", "Модель"}, {{"Количество", each _, type table [Марка=text, Модель=text, Модификация=nullable text, Дата выпуска=nullable text]}}),     #"Добавлен пользовательский объект" = Table.AddColumn(#"Сгруппированные строки", "Модификация", each Table.Column([Количество],"Модификация")),     #"Извлеченные значения" = Table.TransformColumns(#"Добавлен пользовательский объект", {"Модификация", each Text.Combine(List.Transform(_, Text.From), ";"), type text}),     #"Развернутый элемент Количество" = Table.ExpandTableColumn(#"Извлеченные значения", "Количество", {"Дата выпуска"}, {"Дата выпуска"}),     #"Переупорядоченные столбцы" = Table.ReorderColumns(#"Развернутый элемент Количество",{"Марка", "Модель", "Модификация", "Дата выпуска"}),     #"Строки с примененным фильтром" = Table.SelectRows(#"Переупорядоченные столбцы", each ([Дата выпуска] <> null)) in     #"Строки с примененным фильтром"
[/vba]
  
 
 
PQ всемогущий
[vba]
Код
let     Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],     #"Заполнение вниз" = Table.FillDown(Источник,{"Модель"}),     #"Замененное значение" = Table.ReplaceValue(#"Заполнение вниз","Рено",null,Replacer.ReplaceValue,{"Марка"}),     #"Заполнение вниз1" = Table.FillDown(#"Замененное значение",{"Марка"}),     #"Сгруппированные строки" = Table.Group(#"Заполнение вниз1", {"Марка", "Модель"}, {{"Количество", each _, type table [Марка=text, Модель=text, Модификация=nullable text, Дата выпуска=nullable text]}}),     #"Добавлен пользовательский объект" = Table.AddColumn(#"Сгруппированные строки", "Модификация", each Table.Column([Количество],"Модификация")),     #"Извлеченные значения" = Table.TransformColumns(#"Добавлен пользовательский объект", {"Модификация", each Text.Combine(List.Transform(_, Text.From), ";"), type text}),     #"Развернутый элемент Количество" = Table.ExpandTableColumn(#"Извлеченные значения", "Количество", {"Дата выпуска"}, {"Дата выпуска"}),     #"Переупорядоченные столбцы" = Table.ReorderColumns(#"Развернутый элемент Количество",{"Марка", "Модель", "Модификация", "Дата выпуска"}),     #"Строки с примененным фильтром" = Table.SelectRows(#"Переупорядоченные столбцы", each ([Дата выпуска] <> null)) in     #"Строки с примененным фильтром"
[/vba]
 китин  
 
 
Не судите очень строго:я пытаюсь научиться   ЯД  41001877306852 
  
  
  
 Ответить 
Сообщение PQ всемогущий
[vba]
Код
let     Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],     #"Заполнение вниз" = Table.FillDown(Источник,{"Модель"}),     #"Замененное значение" = Table.ReplaceValue(#"Заполнение вниз","Рено",null,Replacer.ReplaceValue,{"Марка"}),     #"Заполнение вниз1" = Table.FillDown(#"Замененное значение",{"Марка"}),     #"Сгруппированные строки" = Table.Group(#"Заполнение вниз1", {"Марка", "Модель"}, {{"Количество", each _, type table [Марка=text, Модель=text, Модификация=nullable text, Дата выпуска=nullable text]}}),     #"Добавлен пользовательский объект" = Table.AddColumn(#"Сгруппированные строки", "Модификация", each Table.Column([Количество],"Модификация")),     #"Извлеченные значения" = Table.TransformColumns(#"Добавлен пользовательский объект", {"Модификация", each Text.Combine(List.Transform(_, Text.From), ";"), type text}),     #"Развернутый элемент Количество" = Table.ExpandTableColumn(#"Извлеченные значения", "Количество", {"Дата выпуска"}, {"Дата выпуска"}),     #"Переупорядоченные столбцы" = Table.ReorderColumns(#"Развернутый элемент Количество",{"Марка", "Модель", "Модификация", "Дата выпуска"}),     #"Строки с примененным фильтром" = Table.SelectRows(#"Переупорядоченные столбцы", each ([Дата выпуска] <> null)) in     #"Строки с примененным фильтром"
[/vba]
 Автор - китин  Дата добавления - 03.10.2023  в 08:39   
 
 
 msi2102  
 Дата: Вторник, 03.10.2023, 10:48 | 
 Сообщение № 5     
   
 
   
 
 
 Группа: Проверенные  
 
 
 Ранг: Обитатель  
 
 Сообщений:  450 
 
 
 
 
  Репутация:    
 135    
 ±  
 
  
 Замечаний:
 0%   ±  
   Excel 2019          
  
 
 
 Замените строку:  [vba]Код
   arr1 = Range("A2:D" & Cells(Rows.Count, 1).End(xlUp).Row)
 [/vba] на  [vba]Код
   arr1 = Range("A2:D" & Cells(Rows.Count, 3).End(xlUp).Row)
 [/vba]  
 
 
Замените строку:  [vba]Код
   arr1 = Range("A2:D" & Cells(Rows.Count, 1).End(xlUp).Row)
 [/vba] на  [vba]Код
   arr1 = Range("A2:D" & Cells(Rows.Count, 3).End(xlUp).Row)
 [/vba] msi2102  
 
  
  
  
 Ответить 
Сообщение Замените строку:  [vba]Код
   arr1 = Range("A2:D" & Cells(Rows.Count, 1).End(xlUp).Row)
 [/vba] на  [vba]Код
   arr1 = Range("A2:D" & Cells(Rows.Count, 3).End(xlUp).Row)
 [/vba] Автор - msi2102  Дата добавления - 03.10.2023  в 10:48   
 
 
 jakim  
 Дата: Вторник, 03.10.2023, 15:18 | 
 Сообщение № 6     
   
 
   
 
 
 Группа: Друзья  
 
 
 Ранг: Старожил  
 
 Сообщений:  1218 
 
 
 
 
  Репутация:    
 316    
 ±  
 
  
 Замечаний:
 0%   ±  
   Excel 2010          
  
 
 
 Power Query
 [vba]Код
let     Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],     #"Filtered Rows" = Table.SelectRows(Source, each ([Модификация] <> null)),     #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Дата выпуска"}),     #"Filled Down" = Table.FillDown(#"Removed Columns",{"Марка", "Модель"}),     #"Grouped Rows" = Table.Group(#"Filled Down", {"Марка", "Модель"}, {{"Count", each _, type table [Марка=text, Модель=text, Модификация=text]}}),     #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each [Count][Модификация]),     #"Removed Columns1" = Table.RemoveColumns(#"Added Custom",{"Count"}),     #"Extracted Values" = Table.TransformColumns(#"Removed Columns1", {"Custom", each Text.Combine(List.Transform(_, Text.From), "; "), type text}),     #"Renamed Columns" = Table.RenameColumns(#"Extracted Values",{{"Custom", "Модификация"}}) in     #"Renamed Columns"
 [/vba] 
 
 
Power Query
 [vba]Код
let     Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],     #"Filtered Rows" = Table.SelectRows(Source, each ([Модификация] <> null)),     #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Дата выпуска"}),     #"Filled Down" = Table.FillDown(#"Removed Columns",{"Марка", "Модель"}),     #"Grouped Rows" = Table.Group(#"Filled Down", {"Марка", "Модель"}, {{"Count", each _, type table [Марка=text, Модель=text, Модификация=text]}}),     #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each [Count][Модификация]),     #"Removed Columns1" = Table.RemoveColumns(#"Added Custom",{"Count"}),     #"Extracted Values" = Table.TransformColumns(#"Removed Columns1", {"Custom", each Text.Combine(List.Transform(_, Text.From), "; "), type text}),     #"Renamed Columns" = Table.RenameColumns(#"Extracted Values",{{"Custom", "Модификация"}}) in     #"Renamed Columns"
 [/vba]jakim  
 
 
  
  
  
 Ответить 
Сообщение Power Query
 [vba]Код
let     Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],     #"Filtered Rows" = Table.SelectRows(Source, each ([Модификация] <> null)),     #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Дата выпуска"}),     #"Filled Down" = Table.FillDown(#"Removed Columns",{"Марка", "Модель"}),     #"Grouped Rows" = Table.Group(#"Filled Down", {"Марка", "Модель"}, {{"Count", each _, type table [Марка=text, Модель=text, Модификация=text]}}),     #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each [Count][Модификация]),     #"Removed Columns1" = Table.RemoveColumns(#"Added Custom",{"Count"}),     #"Extracted Values" = Table.TransformColumns(#"Removed Columns1", {"Custom", each Text.Combine(List.Transform(_, Text.From), "; "), type text}),     #"Renamed Columns" = Table.RenameColumns(#"Extracted Values",{{"Custom", "Модификация"}}) in     #"Renamed Columns"
 [/vba]Автор - jakim  Дата добавления - 03.10.2023  в 15:18