Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Ayuda con la consulta para evaluar una condición entre dos tablas que implican varias columnas

Hola a todos

Tengo una columna que consiste en la fecha de creación del boleto y otra columna con un ID de creador de boleto en la Tabla A. La Tabla B tiene tres campos que consiste en el ID del creador del boleto, la fecha de unirse al creador del boleto y la fecha de salida.

¿Podría alguien ayudarme a encontrar una solución en la consulta M para buscar el ID de creador de boletos de la Tabla A contra la Tabla B, seguido de establecer si la fecha de creación del ticket está entre la fecha de incorporación del creador de boletos y la fecha de salida?

Si es true, devuelva yes else return no en una columna personalizada. He logrado esto en DAX, pero estoy interesado en hacer lo mismo usando una consulta en M.

Cualquier sugerencia sería apreciada, gracias de antemano.

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

@lbendlin ,

Muchas gracias por su ayuda. Intenté usar la fórmula para agregar una columna personalizada y creó una columna con texto en el que se puede hacer clic que menciona "Función"

asah_0-1658498769812.png

función (k como cualquiera) como cualquiera.

Con respecto al uso de 12/31/99 (31-12-2099), si elijo usar espacios en blanco, Power BI informará de errores para las filas en blanco con el tipo de datos establecido hasta la fecha. Pls aconsejar.

Gracias.

Muestre el código de Power Query. Probablemente un error tipográfico en alguna parte.

Utilice COALESCE([Date],TODAY()) para controlar los espacios en blanco.

Estoy usando el código para la columna personalizada que hace referencia a los mismos datos de ejemplo compartidos anteriormente. Sin embargo, mi proyecto original también tiene muchas otras columnas. El código dado como solución se ha utilizado al final. El "cada uno" después de (k)=> se inserta automáticamente si eso está causando el problema.



dejar
Source = Excel.Workbook(File.Contents("C:\Users\asah\Documents\Power BI\Projects\Table_A.xlsx"), null, true),
#"Table_A_Sheet" = Fuente{[Item="Table_A",Kind="Sheet"]}[Datos],
#"Encabezados promocionados" = Table.PromoteHeaders(#"Table_A_Sheet", [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Ticket created - Timestamp", type datetime}, {"Ticket solved - Timestamp", type datetime}, {"Ticket ID", Int64.Type}, {"Ticket priority", type text}, {"Site Number", type text}, {"Site Number (Obsolete)", type text}, {"Name", type text}, {"Type", type text}, {"Type of issue", type text}, {"Ticket subject", type text}, {"Ticket status", type text}, {"Ticket group", type text}, {"Impact", type text}, {"Tipo de problema - país", escriba texto}, {"Nombre del remitente", escriba texto}, {"ID del remitente", Int64.Type}, {"Nombre del cesionario", escriba texto}, {"Tipo de ticket", escriba texto}, {"Marque aquí si el incidente está vinculado a un problema", escriba lógico}, {"Etiquetas de ticket", escriba texto}, {"Departamento de código", escriba texto}, {"Tipo de código", escriba texto}, {"Subtareas", escriba texto}, {"Primer tiempo de resolución (min)", Int64.Type}, {"Tiempo de resolución completo (min)", Int64.Type}, {"First assignment time (min)", Int64.Type}, {"Average Group stations", Int64.Type}, {"zd-Tickets in SLA", Int64.Type}, {"out(SLA)", Int64.Type}, {"zd-Tickets without SLA", Int64.Type}, {"Good satisfaction tickets", Int64.Type}, {"Bad satisfaction tickets", Int64.Type}}),
#"Filas agrupadas" = Table.Group(#"Changed Type", {"Ticket ID"}, {{"MyTable", cada _, escriba tabla [#"Ticket created - Timestamp"=nullable datetime, #"Ticket solved - Timestamp"=nullable datetime, Ticket ID=nullable number, Ticket priority=nullable text, Site Number=nullable text, #"Site Number (Obsolete)"=nullable text, Name=nullable text, Type=nullable text, Type of issue=nullable text, Ticket subject=nullable text, Ticket status=nullable text, Ticket group=nullable text, Impact=nullable text, #"Type of issue - country"=nullable text, Submitter name=nullable text, Submitter ID=nullable number, Assignee name=nullable text, Ticket type=nullable text, Tick here if incident is linked to a problem=nullable logical, Ticket tags=nullable text, Code department=nullable text, Code type=nullable text, #"Sub-Tasks"=nullable text, #"First resolution time (min)"=nullable number, #"Tiempo de resolución completa (min)"=número anulable, #"Tiempo de primera asignación (min)"=número anulable, Estaciones de grupo promedio=número anulable, #"zd-Tickets en SLA"=número anulable, #"out(SLA)"=número anulable, #"zd-Tickets sin SLA"=número anulable, Tickets de buena satisfacción=número anulable, Tickets de satisfacción incorrectos=número anulable]}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "TicketTag", each Table.Column([MyTable],"Ticket tags")),
#"Columnas eliminadas" = Table.RemoveColumns(#"Added Custom",{"Id de ticket"}),
#"Valores extraídos" = Table.TransformColumns(#"Columnas eliminadas", {"TicketTag", cada Text.Combine(List.Transform(_, Text.From), ", "), escriba texto}),
#"Expanded MyTable" = Table.ExpandTableColumn(#"Valores extraídos", "MyTable", {"Ticket created - Timestamp", "Ticket solved - Timestamp", "Ticket ID", "Ticket priority", "Site Number", "Site Number (Obsolete)", "Name", "Type", "Type of issue", "Ticket subject", "Ticket status", "Ticket group", "Impact", "Type of issue - country", "Submitter name", "Submitter ID", "Assignee name", "Ticket type", "Tick here if incident is linked to a problem", "Code department", "Tipo de código", "Subtareas", "Tiempo de primera resolución (min)", "Tiempo de resolución completo (min)", "Tiempo de primera asignación (min)", "Estaciones de grupo promedio", "zd-Tickets en SLA", "out(SLA)", "zd-Tickets sin SLA", "Tickets de satisfacción buenos", "Tickets de satisfacción malos"}, {"Ticket created - Timestamp", "Ticket solved - Timestamp", "Ticket ID", "Ticket priority", "Site Number", "Site Number (Obsolete)", "Name", "Type", "Type of issue", "Ticket subject", "Ticket status", "Grupo de tickets", "Impacto", "Tipo de problema - país", "Nombre del remitente", "ID del remitente", "Nombre del cesionario", "Tipo de billete", "Marque aquí si el incidente está vinculado a un problema", "Departamento de código", "Tipo de código", "Subtareas", "Tiempo de resolución de la primera (min)", "Tiempo de resolución completo (min)", "Tiempo de primera asignación (min)", "Estaciones de grupo promedio", "zd-Tickets en SLA", "out(SLA)", "zd-Tickets sin SLA", "Buenos tickets de satisfacción", "Bad satisfaction tickets"}),
#"Duplicados eliminados" = Table.Distinct(#"Expanded MyTable", {"ID de ticket"}),
#"Filas filtradas" = Table.SelectRows(#"Duplicados eliminados", cada uno ([Grupo de tickets] <> "111_SD" y [Grupo de tickets] <> "MTB")),
#"Columna condicional agregada" = Table.AddColumn(#"Filas filtradas", "SiteNumber", cada una si [Número de sitio] = "" luego [#"Número de sitio (obsoleto)"] de lo contrario [Número de sitio]),
#"Columnas reordenadas" = Table.ReorderColumns(#"Added Conditional Column",{"Ticket created - Timestamp", "Ticket solved - Timestamp", "Ticket ID", "Ticket priority", "Site Number", "Site Number (Obsolete)", "SiteNumber", "Name", "Type", "Type of issue", "Ticket subject", "Ticket status", "Ticket group", "Impact", "Type of issue - country", "Submitter name", "Submitter ID", "Assignee name", "Ticket type", "Tick here if incident is linked to a problem problem", "Code department", "Tipo de código", "Subtareas", "Tiempo de primera resolución (min)", "Tiempo de resolución completo (min)", "Tiempo de primera asignación (min)", "Estaciones de grupo promedio", "zd-Tickets en SLA", "out(SLA)", "zd-Tickets sin SLA", "Tickets de satisfacción buenos", "Tickets de satisfacción malos", "TicketTag"}),
#"Columnas eliminadas1" = Table.RemoveColumns(#"Columnas reordenadas",{"Número de sitio", "Número de sitio (obsoleto)"}),
#"Columnas renombradas" = Table.RenameColumns(#"Columnas eliminadas1",{{"Ticket created - Timestamp", "Ticket created"}, {"Ticket solved - Timestamp", "Ticket solved"}}),
#"Added Custom1" = Table.AddColumn(#"Renamed Columns", "Custom", each (k)=> if Table.RowCount(Table.SelectRows(#"Table B",each k[Submitter ID]=[Submitter ID] and k[Ticket created]>DateTime.From([DOJ]) y k[Ticket created] 0 then "Yes" else "No")
en
#"Añadido Personalizado1"

Syndicate_Admin
Administrator
Administrator

Proporcione datos de muestra desinfectados que cubran completamente su problema. Si pega los datos en una tabla en su publicación o utiliza uno de los servicios de archivos, será más fácil ayudarlo. No puedo usar capturas de pantalla de sus datos de origen.

Muestre el resultado esperado en función de los datos de muestra que proporcionó. Las capturas de pantalla del resultado esperado están bien.

https://community.powerbi.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447523

@LBENDLIN ,

Consulte los datos de ejemplo de la siguiente manera:

Cuadro A

Ticket creadoTicket resueltoID del remitente
2022-07-09T00:47:032022-07-09T00:47:30123456789101
2022-07-09T00:47:032022-07-09T00:47:30112131415161
2022-07-09T00:47:032022-07-09T00:47:30718192021222

Cuadro B

Nombre del remitenteDOJDOLID del remitente
Usuario A01/01/0112/31/99123456789101
Usuario B01/01/0108/28/20112131415161

Requiero una columna personalizada en la Tabla A para devolver un Sí / No o 0 / 1 dependiendo de las siguientes condiciones para que coincida:

1) El ID del remitente en la Tabla A existe en la Tabla B

2) 'Ticket creado' para este ID de remitente en la Tabla A debe estar entre las fechas doj y DOL en la Tabla B

y me gustaría lograr lo anterior utilizando la consulta M si es posible.

Resultado previsto en el cuadro A

Ticket creadoTicket resueltoID del remitenteCustomColumn
2022-07-09T00:47:032022-07-09T00:47:30123456789101
2022-07-09T00:47:032022-07-09T00:47:30112131415161No
2022-07-09T00:47:032022-07-09T00:47:30718192021222No

Cualquier ayuda sería apreciada.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("lcuxDQAhEAPBXi4GyfYBB9TxGaL/NiD/iHRWu5YJUkZkjA+YJSbc0l8dVykvtUUfBG2nx5mis7Cyvc/BznETJdneBw==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Ticket created" = _t, #"Ticket solved" = _t, #"Submitter ID" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Ticket created", type datetime}, {"Ticket solved", type datetime}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", (k)=> if Table.RowCount(Table.SelectRows(#"Table B",each k[Submitter ID]=[Submitter ID] and k[Ticket created]>DateTime.From([DOJ]) and k[Ticket created] 0 then "Yes" else "No")
in
    #"Added Custom"

Helpful resources

Announcements
PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.