Forum Discussion
Syndicate_Admin
1 year agoAdministrator
Problema de Table.Group
Teniendo en cuenta estos datos de prueba: Necesito crear una tabla (como la que se muestra a continuación) que combine los nombres: 1. El campo GrpLeader contiene el PersonId del líder d...
Syndicate_Admin
1 year agoAdministrator
Hola @newhopepdx, disculpas por el retraso. Pruebe la solución revisada a continuación:
let
Source = YourTable,
AddFullName = Table.AddColumn(Source, "FullName", each [FirstName] & " " & [LastName]),
Grouped = Table.Group(
AddFullName,
{"GrpId"},
{
{"GroupData", each _, type table [GrpId=number, PersonId=number, GrpLeader=number, FirstName=text, LastName=text, FullName=text]}
}
),
AddGroupName = Table.AddColumn(Grouped, "GroupName", each
let
groupTable = [GroupData],
leaderId = Record.Field(Table.First(groupTable), "GrpLeader"),
leaderRow = Table.SelectRows(groupTable, each [PersonId] = leaderId){0},
leaderFirst = Text.From(leaderRow[FirstName]),
leaderLast = Text.From(leaderRow[LastName]),
otherMembers = Table.SelectRows(groupTable, each [PersonId] <> leaderId),
otherFirsts = List.Transform(Table.Column(otherMembers, "FirstName"), Text.From),
lastNames = List.Distinct(List.Transform(Table.Column(groupTable, "LastName"), Text.From)),
groupName =
if List.Count(lastNames) = 1 then
Text.Combine({leaderFirst} & otherFirsts, " ") & " " & lastNames{0}
else
Text.Combine(
List.Transform(
List.Combine({{leaderRow[FullName]}, Table.Column(otherMembers, "FullName")}),
Text.From
),
" & "
)
in
groupName
),
Final = Table.SelectColumns(AddGroupName, {"GrpId", "GroupName"})
in
FinalSyndicate_Admin
1 year agoAdministrator
Samson
Sí, eso funciona. Con su código como una GRAN ayuda, exploré lo que hacía cada línea y reemplaza la línea otherFirsts que proporcionó primero con esto: otherFirsts = Table.ToColumns(otherMembers){3}, y funcionó también.
¡Gracias!
- Syndicate_Admin1 year agoAdministrator
¡Impresionante, me alegro de saber que funcionó!