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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

Limpieza de datos- en potencia bi. Retire los billetes repetidos

Mi tabla actual aparece de la siguiente manera.

Current file.JPGEl ejemplo de archivo actual

Producción esperada

Expected output.JPG

Cualquier idea o sugerencia sobre cómo obtener esta salida anterior.

8 REPLIES 8
Anonymous
Not applicable

could this page moved from spanish to english as i do not understand spanish, kind request.

v-deddai1-msft
Community Support
Community Support

Hola @bushpalaneelima ,

Acabo de crear la consulta M depende de la salida que proporcionó, ¿Podría decirnos la lógica de los datos limpios? Copie el código en el editor avanzado:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("rZJLC4JAFIX/i+BOmfuY0VpGEbVp41IkhrRwYyLS729GUzNtIQWXew7zOHxzmTh2tgefgMBHhMDxnF2lr/UZjTsWaa6NEmBohNddQwDXSFTrW5Y2BwgECcQ3r5zEm2S3ZfJsipI2iu2CdPvNuWstEi1GYkEweMa/I/FiJCkIB8/wMxKCD5KhR7LHo1LnhdHTZtp0WVb3xwsI1wJJEHdEKOh7slqS3HwCNdhwnAsBjoj3lS4u2eerV3aU7M5RG9JwltqOUUk5TGpaSfIE", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Ticket number" = _t, Draft = _t, Market = _t, Year = _t, TotalCount = _t, CompletedCount = _t, #"%ofCompleted" = _t, Status = _t, #"Actual Receiving Date" = _t, #"Published Date" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Ticket number", type text}, {"Draft", type text}, {"Market", type text}}),
    #"Filtered Rows1" = Table.SelectRows(#"Changed Type", each ([Year] <> "")),
    #"Replaced Value" = Table.ReplaceValue(#"Filtered Rows1","",null,Replacer.ReplaceValue,{"Draft"}),
    #"Filled Down" = Table.FillDown(#"Replaced Value",{"Draft"}),
    #"Inserted Text After Delimiter" = Table.AddColumn(#"Filled Down", "Text After Delimiter", each Text.AfterDelimiter([Draft], "_"), type text),
    #"Grouped Rows" = Table.Group(#"Inserted Text After Delimiter", {"Ticket number"}, {{"all", each _, type table [Ticket number=text, Draft=text, Market=text, Year=text, TotalCount=text, CompletedCount=text, #"%ofCompleted"=text, Status=text, Actual Receiving Date=text, Published Date=text, Text After Delimiter=text]}, {"max", each List.Max([Text After Delimiter]), type text}}),
    #"Expanded all" = Table.ExpandTableColumn(#"Grouped Rows", "all", {"Ticket number", "Draft", "Market", "Year", "TotalCount", "CompletedCount", "%ofCompleted", "Status", "Actual Receiving Date", "Published Date", "Text After Delimiter"}, {"Ticket number.1", "Draft", "Market", "Year", "TotalCount", "CompletedCount", "%ofCompleted", "Status", "Actual Receiving Date", "Published Date", "Text After Delimiter"}),
    #"Filtered Rows" = Table.SelectRows(#"Expanded all", each [Text After Delimiter] = [max]),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Text After Delimiter", "max"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Removed Columns",{{"Actual Receiving Date", type date}, {"Published Date", type date}})
in
    #"Changed Type1"

Untitled picture.png

Si este post ayuda, entonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Saludos

Dedmon Dai

@v-deddai1-msft , gracias por su respuesta, esto funcionó. He modificado en base a sus soluciones para mi necesidad.

dejar
Origen = Excel.Workbook(File.Contents("\mydrive.gsk.com@SSLDavWWWRootpersonalajayvarma_x_saikumar_gsk_comDocumentsDigital_Job_Trackeng_ConsumerDigital_2020 - Revised.xlsx"), null, true),
#"2020_Sheet" = Fuente{[Item="2020",Kind="Hoja"]}[Datos],
#"Encabezados promocionados" = Table.PromoteHeaders(#"2020_Sheet", [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Ticket Number", type text}, {"Draft", type text}, {"Veeva #(lf)Channel", type text}, {"Market", type text}, {"Market Contact", type text}, {"Category", type text}, {"Channel", type text}, {"Brand", type text}, {"Sub Brand", type text}, {"Global/#(lf)Local", type text}, {"Name of the Global Master", type text}, {"Global#(lf)Master Year", type text}, {"Total No. of #(lf)Slides in GM", escriba text}, {"No. of Global Slides #(lf)in localised version", type text}, {"% of Global slides in#(lf)Localised version", type text}, {"No of Local #(lf)Slides(if any)", type text}, {"Zinc Code", type text}, {"Presentation Name on iRep", type text}, {"Job Type", type text}, {"Date of #(lf)Approval", type date}, {"Status", type text}, {"Actual #(lf)Receiving Date", type date}, {"DC Start Date", type date}, {"Delivery Date", type date}, {"Content Launch Date", type date}, {"Designer Name", type text}, {"Designer #(lf)Engg Min", Int64.Type}, {"Slide Count", Int64.Type}, {"Main Folder #(lf)(Directory)", type text}, {"Sub-Folder #(lf)(Sub-Directory)", type text}, {"Comments", type text}}),
#"Filas filtradas2" = Table.SelectRows(#"Tipo cambiado", cada uno ([Número de ticket] <> null)),
#"Columnas renombradas1" = Table.RenameColumns(#"Filtered Rows2",{{"Veeva #(lf)Channel", "Veeva Channel"}, {"Global/#(lf)Local", "Global_or_Local"},{"Global#(lf)Master Year","Global Master Year"} ,{"Total No. of #(lf)Slides in GM", "Total Number of Slides within GM"}, {"No. of Global Slides #(lf)in localised version", "Number of Global Slides with localised version"}, {"% of Global slides in#(lf)Localised version", "Percentage of Global slides with Localised version"}, {"No of Local #(lf)Slides(if any)", "Number of Local Slides"}, {"Date of #(lf)Approval","Date of Approval"} ,{"Actual #(lf)Receiving Date", "Actual Receiving Date"},{"Designer #(lf)Engg Min","Designer Engg Min"},{"Main Folder #(lf)(Directory)","Main Folder"},{"Sub Folder #(lf)(Sub-Directory)","Sub Folder"}}),
#"Columna duplicada" = Table.DuplicateColumn(#"Columnas cuyo nombre ha cambiado1", "Borrador", "Borrador - Copiar"),
#"Dividir columna por delimitador" = Table.SplitColumn(#"Duplicated Column", "Draft - Copy", Splitter.SplitTextByDelimiter("_", QuoteStyle.Csv), {"Draft - Copy.1", "Draft - Copy.2"}),
#"Changed Type1" = Table.TransformColumnTypes(#"Dividir columna por delimitador",{{"Borrador - Copy.1", escriba texto}, {"Borrador - Copy.2", Int64.Type}}),
#"Columnas eliminadas" = Table.RemoveColumns(#"Changed Type1",{"Draft - Copy.1"}),
#"Columnas cuyo nombre ha cambiado" = Table.RenameColumns(#"Columnas eliminadas",{{"Borrador - Copy.2", "DraftNumber"}}),
#"Filas filtradas" = Table.SelectRows(#"Columnas cuyo nombre ha cambiado", cada [#"Año maestro global"] <> ""),
#"Valor reemplazado" = Table.ReplaceValue(#"Filas filtradas","",null,Replacer.ReplaceValue,{"Draft"}),
#"Filled Down" = Table.FillDown(#"Valor reemplazado",{"Borrador"}),
#"Inserted Text After Delimiter" = Table.AddColumn(#"Filled Down", "Text After Delimiter", each Text.AfterDelimiter([Draft], "_"), type text),
#"Filas agrupadas" = Table.Group(#"Inserted Text After Delimiter", {"Ticket Number"}, {{"ALL", each _, type table[Ticket Number=text, Draft=text, Veeva Channel=text , Market=text, Market Contact=text, Category=text, Channel=text, Brand=text, Sub Brand=text, Global_or_Local=text, Name of the Global Master=text, Global Master Year=text, Total Number of Slides within GM=text, Number of Global Slides with localised version=text, Percentage of Global slides with Localised version=text , Number of Local Slides=text, Zinc Code=text, Presentation Name on iRep = text, Job Type=text, Date of Approval = text, Status = text, Actual Receiving Date=text, DC Start Date = text, Delivery Date=text, Content Launch Date=text, Designer Name=text , Designer Engg Min=text, Slide Count = text, Main Folder = text, Sub Folder = text, Comments = text, Text After Delimiter=text]},{"max", each List.Max([Text After Delimiter]), type text}}),
#"Expanded ALL" = Table.ExpandTableColumn(#"Grouped Rows", "ALL", {"Ticket Number", "Draft", "Veeva Channel", "Market", "Market Contact", "Category", "Channel", "Brand", "Sub Brand", "Global_or_Local", "Name of the Global Master", "Global Master Year", "Total Number of Slides within GM", "Number of Global Slides with localised version", "Percentage of Global slides with Localised version", "Number of Local Slides", "Zinc Code", "Presentation Name on iRep", "Job Type", "Date of Approval", "Status", "Actual Receiving Date", "DC Start Date", "Delivery Date", "Content Launch Date", "Designer Name", "Designer Engg Min", "Slide Count", "Main Folder", "Sub Folder", "Comments", "Text After Delimiter"}, {"Ticket Number.1", "Draft", "Veeva Channel", "Market", "Market Contact", "Category", "Channel", "Brand", "Sub Brand", "Global_or_Local", "Name of the Global Master" , "Año maestro global", "Número total de diapositivas dentro de GM", "Número de diapositivas globales con versión localizada", "Porcentaje de diapositivas globales con versión localizada", "Número de diapositivas locales", "Código zinc", "Nombre de presentación en iRep", "Tipo de trabajo", "Fecha de aprobación", "Estado", "Fecha de recepción real", "Fecha de inicio de DC", "Fecha de entrega", "Fecha de lanzamiento de contenido", "Nombre del diseñador", "Diseñador Engg Min", "Recuento de diapositivas", "Carpeta principal", "Subcarpeta", "Comentarios", "Texto después del delimitador"}),
#"Filas filtradas1" = Table.SelectRows(#"Expanded ALL", cada [Texto después del delimitador] = [max]),
#"Tipo cambiado2" = Table.TransformColumnTypes(#"Filtered Rows1",{{"Fecha de recepción real", escriba date}, {"DC Start Date", escriba date}, {"Delivery Date", escriba date}, {"Content Launch Date", escriba date}})
in
#"Changed Type2"

Anonymous
Not applicable

Hi, i did not under stand the language. yes the solution you gave me worked. i modified as per my need and put your solution inside the need. Thank you, i have accepted your solution. if i am missing something, please let me know will do that. i accepted the solution.

Anonymous
Not applicable

@v-deddai1-msft , Gracias por su respuesta, Cuando copio pegado el código obtuve el error. IT podría ser casue es un archivo json y estoy cargando un archivo de Excel. Pero mirando el código responde a la pregunta y proporciona entradas al desafío. Gracias por hacer eso.

Tengo una pregunta en el código que ha compartido no pude ver varible "Nombre" podría ser posible inculvar?

collinq
Super User
Super User

Hola bushpalaneelima,

¿Es que usted está tratando de obtener el número de boleto con el número de borrador más alto? Veo que usted tiene el mismo número de boleto repetidamente, pero que las líneas son diferentes después.

Si mi pensamiento es correcto, entonces puede hacer esto filtrando para el campo Fecha máxima o Borrador máximo para cada número de boleto.

Agradecería Kudos si mi respuesta fue útil. También agradecería que marcara esto como una solución si resolviera el problema. ¡Gracias!



Did I answer your question? Mark my post as a solution!

Proud to be a Datanaut!
Private message me for consulting or training needs.




Anonymous
Not applicable

this is showing in spanish could it be converted into english. please. i need to mark this as sloved. please help.

Anonymous
Not applicable

Hola Señor, En primer lugar Gracias por la ayuda!

Respuestas a la pregunta de la siguiente manera:

¿Es que usted está tratando de obtener el número de boleto con el número de borrador más alto? Veo que usted tiene el mismo número de boleto repetidamente, pero que las líneas son diferentes después. Sí señor, tiene este punto correcto. En total 3 variables (número de billete, borrador, nombre) están en la jugada. El número de ticket cuando se vuelve a enviar para el cambio creó un nuevo borrador, por lo tanto, estamos considerando sólo el último borrador de billete. Ahora, el desafío era que algunos de los tickets tienen varios trabajos, los campos de nombre capturan los trabajos múltiples y el número de ticket, pero como ha notado que el borrador no se repite para el campo de nombre del mismo ticket.

Si mi pensamiento es correcto, entonces puede hacer esto filtrando para el campo Fecha máxima o Borrador máximo para cada número de boleto. Traté de hacer lo mismo y me inconsisté fuera de poner, ya que los campos de fecha no tiene todas las fechas capturadas. El borrador máximo no se captura para los campos de varios trabajos.

Este conjunto de datos se extrae de un sistema en archivos Excel o csv.

Si usted tiene alguna sugerencia estoy esperando, por favor ayude.

Gracias una vez más, felicitaciones a su muestra de trabajo. ayuda. ¿Hay un botón que necesito para felicitaciones hágales saber, estoy feliz de hacer eso señor.

saludos

Neelima.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

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.