Доброе время суток, подскажите пожалуйста, есть таблица с исходными данными, эти данные нужно перенести в строку разных ячеек, после перенесенные данные объединить в одной ячейке? приложил файл с примером.
Доброе время суток, подскажите пожалуйста, есть таблица с исходными данными, эти данные нужно перенести в строку разных ячеек, после перенесенные данные объединить в одной ячейке? приложил файл с примером.Fokus-pokuS
Добрый день. То что в левой части - можно получить с помощью уже написанной UDF
Код
=VLOOKUP2($B$3:$C$25;1;$F3;СТОЛБЕЦ()-6;2)
Код общедоступен, но если проблема найти и нужен, конечно могу дать. Но возможно кто-то стандартными предложит решение. По правой части - готового у меня нет, но уверен что тоже можно написать UDF.
Добрый день. То что в левой части - можно получить с помощью уже написанной UDF
Код
=VLOOKUP2($B$3:$C$25;1;$F3;СТОЛБЕЦ()-6;2)
Код общедоступен, но если проблема найти и нужен, конечно могу дать. Но возможно кто-то стандартными предложит решение. По правой части - готового у меня нет, но уверен что тоже можно написать UDF.Hugo
let from = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content], to = Table.Group(from, "Столбец 1", {"tmp", each fn([Столбец 2])}) in to
[/vba]где fn()[vba]
Код
(lst)=> let sort = List.Sort(lst, Order.Ascending), pos = List.Positions(sort), group = List.Transform(pos, each sort{_}-_), fn = (t, cur) => let num = Text.From(sort{cur}), gr = group{cur}, last = group{if cur=0 then 0 else cur-1}, next = group{if cur=List.Max(pos) then 0 else cur+1}, txt = if cur=0 then num else if gr<>last then ", " & num else if gr<>next then "-" & num else "" in t & txt, to = List.Accumulate(pos, "", fn) in to
[/vba]
вполне справится функция позаимствована у Криса Вэбба
формулами вряд ли, а вот PQ:
[vba]
Код
let from = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content], to = Table.Group(from, "Столбец 1", {"tmp", each fn([Столбец 2])}) in to
[/vba]где fn()[vba]
Код
(lst)=> let sort = List.Sort(lst, Order.Ascending), pos = List.Positions(sort), group = List.Transform(pos, each sort{_}-_), fn = (t, cur) => let num = Text.From(sort{cur}), gr = group{cur}, last = group{if cur=0 then 0 else cur-1}, next = group{if cur=List.Max(pos) then 0 else cur+1}, txt = if cur=0 then num else if gr<>last then ", " & num else if gr<>next then "-" & num else "" in t & txt, to = List.Accumulate(pos, "", fn) in to