сцепить по условию
Антон1984
Дата: Понедельник, 02.10.2023, 17:02 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация:
0
±
Замечаний:
0% ±
Добрый день. Знаю, что данные темы уже на форуме, почитал, но никак не могу подстроить под свою ситуацию, без дополнительных доработок. Нужно сцепить значения из столбца "Модификация" с добавлением "(", ")", ";", по столбцам марка, модель, дата выпуска. Желательно, что бы пустые не заполнять.
Добрый день. Знаю, что данные темы уже на форуме, почитал, но никак не могу подстроить под свою ситуацию, без дополнительных доработок. Нужно сцепить значения из столбца "Модификация" с добавлением "(", ")", ";", по столбцам марка, модель, дата выпуска. Желательно, что бы пустые не заполнять. Антон1984
Ответить
Сообщение Добрый день. Знаю, что данные темы уже на форуме, почитал, но никак не могу подстроить под свою ситуацию, без дополнительных доработок. Нужно сцепить значения из столбца "Модификация" с добавлением "(", ")", ";", по столбцам марка, модель, дата выпуска. Желательно, что бы пустые не заполнять. Автор - Антон1984 Дата добавления - 02.10.2023 в 17:02
msi2102
Дата: Понедельник, 02.10.2023, 20:53 |
Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 415
Репутация:
129
±
Замечаний:
0% ±
Excel 2007
Попробуйте такой макрос [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
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация:
1078
±
Замечаний:
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
Группа: Проверенные
Ранг: Обитатель
Сообщений: 415
Репутация:
129
±
Замечаний:
0% ±
Excel 2007
Замените строку: [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
Группа: Друзья
Ранг: Старожил
Сообщений: 1216
Репутация:
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