ns89
Hola,
Con suerte, una pregunta simple, soy un principiante en Power BI pero tengo experiencia con Qlik:
Tengo dos tablas de origen de datos (A y B), ambas con una columna de ID de producto en cada una. (La tabla B tiene más ID de productos que la tabla A).
1. Me gustaría crear una nueva tabla (C) que tenga todos los ID de productos únicos de la tabla A.
2. Luego me gustaría agregar/unir todos los ‘ID de producto únicos en la Tabla B que aún no se han agregado a la Tabla C’ a mi recién creada Tabla C.
¡Cualquier ayuda sería genial! – (En Qlik podrías hacer fácilmente un ‘concatenar donde no existe‘ en una tabla.)
Gracias
dax
Hola @ns89,
Puede probar debajo del código M para ver si funciona o no
Tabla A y Tabla B
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSlTSUTIEYiOlWJ1opSQwS0fJGMxLBrNgcolQOROl2FgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [name = _t, id = _t, amount = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"name", type text}, {"id", Int64.Type}, {"amount", Int64.Type}})
in
#"Changed Type"
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSlPSUTJUitWJVkoEsozArGQgy1QpNhYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [NAME = _t, amount = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"NAME", type text}, {"amount", Int64.Type}})
in
#"Changed Type"
Entonces la nueva tabla C
let
Source = Table.NestedJoin(A, {"name"}, B, {"NAME"}, "B", JoinKind.RightAnti),
#"Removed Columns" = Table.RemoveColumns(Source,{"name", "id", "amount"}),
#"Expanded B" = Table.ExpandTableColumn(#"Removed Columns", "B", {"NAME", "amount"}, {"NAME", "amount"}),
#"Appended Query" = Table.Combine({#"Expanded B", Table.FromColumns({A[name],A[amount]},{"NAME","amount"})})
in
#"Appended Query"
Atentamente,
zoe zhi
Si esta publicación le ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
dax
Hola @ns89,
Puede probar debajo del código M para ver si funciona o no
Tabla A y Tabla B
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSlTSUTIEYiOlWJ1opSQwS0fJGMxLBrNgcolQOROl2FgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [name = _t, id = _t, amount = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"name", type text}, {"id", Int64.Type}, {"amount", Int64.Type}})
in
#"Changed Type"
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSlPSUTJUitWJVkoEsozArGQgy1QpNhYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [NAME = _t, amount = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"NAME", type text}, {"amount", Int64.Type}})
in
#"Changed Type"
Entonces la nueva tabla C
let
Source = Table.NestedJoin(A, {"name"}, B, {"NAME"}, "B", JoinKind.RightAnti),
#"Removed Columns" = Table.RemoveColumns(Source,{"name", "id", "amount"}),
#"Expanded B" = Table.ExpandTableColumn(#"Removed Columns", "B", {"NAME", "amount"}, {"NAME", "amount"}),
#"Appended Query" = Table.Combine({#"Expanded B", Table.FromColumns({A[name],A[amount]},{"NAME","amount"})})
in
#"Appended Query"
Atentamente,
zoe zhi
Si esta publicación le ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Anónimo
Hola @ns89
Hay una función similar a SQL UNION en el Editor de consultas llamada «Agregar consultas» en la parte superior derecha de la cinta de inicio en el editor de consultas.
si hace clic en agregar canteras como nuevas y selecciona las tablas, creará su nueva tabla con columnas coincidentes. Hay este video de youtube que lo explica muy bien y me deja entenderlo. https://www.youtube.com/watch?v=qXH4WjCykLc
Recomendaría limpiar las tablas que está agregando antes de agregar porque intentará hacer coincidir en cada columna, donde no coincida creará valores «nulos».
Espero que esto ayude
Dobby Libr3
greg_deckler
Quieres algo como:
Table C =
DISTINCT(
UNION(
'Table A'[Product ID],
'Table B'[Poduct [ID]
)
)
ns89
En respuesta a greg_deckler
Hola @Greg_Deckler,
Gracias por esto. Lo siento, no especifiqué, pero lo que también necesitaría son otras columnas de la Tabla A (como la columna ‘Orden’).
Por ejemplo:
Producto A Orden A — De la Tabla A
Producto B Orden A — De la Tabla A
Producto C (en blanco) — De la Tabla B (Como el Producto C no está en la Tabla A, lo hemos unido aquí)
es posible? ¡Gracias de nuevo!
greg_deckler
En respuesta a ns89
No estoy seguro de qué Orden es (texto, numérico, ?). Consulte esta publicación sobre cómo obtener una respuesta rápida a su pregunta: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490
En teoría, si es un número, use ADDCOLUMNS alrededor de su UNIÓN y haga la SUMA de un FILTRO de la Tabla A donde ProductID en la tabla A es igual a ProductID. (Podría tener que usar ANTES)