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
Syndicate_Admin
Administrator
Administrator

Eliminar filas negativas y positivas

Me he encontrado con un problema en el que la compra y el reembolso se muestran en mis datos. Quiero deshacerme de ambos valores coincidentes. Ambos vaues están bajo un ID de cliente único.

Gracias

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Hi, @rangeet1 ;

Pruébalo;

let  
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8vAzMDBX0lFSUTA1UIrVQRYwQxcwRxewQBfQxTBEF2qKc6iBgQVYxAhdwBhdwARdwNAAXUQXLBQLAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Customer ID" = _t, Amount = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Customer ID", type text}, {"Amount", type text}}),
    #"Replaced Value" = Table.ReplaceValue(#"Changed Type","$ ","",Replacer.ReplaceText,{"Amount"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Replaced Value",{{"Amount", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type1", "Original", each [Customer ID]&" "&Text.From([Amount])),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "Opposite", each [Customer ID]&" "&Text.From([Amount]*-1)),
    #"Added Custom2" = Table.AddColumn(#"Added Custom1", "Custom.2", each if List.Contains(#"Added Custom"[Original],[Opposite]) then "" else 1),
    #"Filtered Rows" = Table.SelectRows(#"Added Custom2", each ([Custom.2] = 1)),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Original", "Opposite", "Custom.2"})
in
    #"Removed Columns"

El resultado final se muestra a continuación:

vyalanwumsft_0-1642499470434.pngvyalanwumsft_1-1642499476573.png


Saludos
Apoyo a la comunidad Team_ Yalan Wu
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

View solution in original post

12 REPLIES 12
Syndicate_Admin
Administrator
Administrator

Hi, @rangeet1 ;

¿Su archivo es muy grande? ¿Puede eliminar información confidencial y compartir archivos simples?

Saludos
Apoyo a la comunidad Team_ Yalan Wu
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Syndicate_Admin
Administrator
Administrator

Hi, @rangeet1 ;

Pruébalo;

let  
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8vAzMDBX0lFSUTA1UIrVQRYwQxcwRxewQBfQxTBEF2qKc6iBgQVYxAhdwBhdwARdwNAAXUQXLBQLAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Customer ID" = _t, Amount = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Customer ID", type text}, {"Amount", type text}}),
    #"Replaced Value" = Table.ReplaceValue(#"Changed Type","$ ","",Replacer.ReplaceText,{"Amount"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Replaced Value",{{"Amount", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type1", "Original", each [Customer ID]&" "&Text.From([Amount])),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "Opposite", each [Customer ID]&" "&Text.From([Amount]*-1)),
    #"Added Custom2" = Table.AddColumn(#"Added Custom1", "Custom.2", each if List.Contains(#"Added Custom"[Original],[Opposite]) then "" else 1),
    #"Filtered Rows" = Table.SelectRows(#"Added Custom2", each ([Custom.2] = 1)),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Original", "Opposite", "Custom.2"})
in
    #"Removed Columns"

El resultado final se muestra a continuación:

vyalanwumsft_0-1642499470434.pngvyalanwumsft_1-1642499476573.png


Saludos
Apoyo a la comunidad Team_ Yalan Wu
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Syndicate_Admin
Administrator
Administrator

Hi, @rangeet1;

Puede completarlo en power query .

1.agregar columna personalizada.

= Table.AddColumn(#"Changed Type", "Original", each Number.ToText([Customer ID]) &" "& Number.ToText( [Amount]))

vyalanwumsft_0-1642400093012.png

2.agregue otra columna personalizada.

= Table.AddColumn(#"Added Custom1", "Opposite", each Number.ToText([Customer ID]) &" "& Number.ToText( [Amount]*-1))

3.add 3ª columna personalizada.

= Table.AddColumn(#"Added Custom", "Flag", each if List.Contains(#"Added Custom"[Original],[Opposite]) then "" else 1)

4.filter filas. (1)

vyalanwumsft_1-1642400192210.png

5.eliminar columnas.

vyalanwumsft_2-1642400228347.png

El resultado final se muestra a continuación:

vyalanwumsft_3-1642400253030.png

let  
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjQwUNJRMjVQitWBccyQOebIHAtkji6KJl24LkMgzwiZY4zMMUHmgLQieLpgbiwA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Customer ID" = _t, Amount = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Customer ID", Int64.Type}, {"Amount", Int64.Type}}),
#"Added Custom1" = Table.AddColumn(#"Changed Type", "Original", each Number.ToText([Customer ID]) &" "& Number.ToText( [Amount])),
#"Added Custom" = Table.AddColumn(#"Added Custom1", "Opposite", each Number.ToText([Customer ID]) &" "& Number.ToText( [Amount]*-1)),
#"Added Custom2" = Table.AddColumn(#"Added Custom", "Flag", each if List.Contains(#"Added Custom"[Original],[Opposite]) then "" else 1),
#"Filtered Rows" = Table.SelectRows(#"Added Custom2", each [Flag] <> null and [Flag] <> ""),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Original", "Opposite", "Flag"})
in
#"Removed Columns"


Saludos
Apoyo a la comunidad Team_ Yalan Wu
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

I have tried to follow these steps. However, the last step is taking a lot

of time to load.
Thanks 

Gracias por su respuesta.
Si mi tipo de datos para el ID de cliente es un 'texto'. Por ejemplo, HN007 o CU008. Mi monto es una moneda decimal '$ 7.9' o '$100.0'. ¿Cómo puedo aplicar esto?

Gracias

rangeet1
Frequent Visitor

thank you for your answer.However, i am still havinf negative values in the data. 

Syndicate_Admin
Administrator
Administrator

rangeet1_0-1642054660263.png


Esto es lo que estoy buscando. Eliminar la cantidad negativa y positiva coincidente

Gracias

Hola

Si desea hacer esto a nivel visual, simplemente arrastre el ID de cliente al tabel visual y escriba esta medida

Medida = suma(datos[cantidad])

Aplicar un filtro de >0

Gracias
Pero todavía tengo los valores postivos en los datos. con su

la fórmula i sólo puede eliminar los valores negativos. Pero tengo los valores positivos correspondientes que también quiero eliminar.

Hola

Este código M funciona

let
    Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Customer ID", type text}, {"Amount", Int64.Type}}),
    #"Inserted Absolute Value" = Table.AddColumn(#"Changed Type", "Absolute Value", each Number.Abs([Amount]), Int64.Type),
    #"Merged Columns" = Table.CombineColumns(Table.TransformColumnTypes(#"Inserted Absolute Value", {{"Absolute Value", type text}}, "en-IN"),{"Customer ID", "Absolute Value"},Combiner.CombineTextByDelimiter(";", QuoteStyle.None),"Merged"),
    #"Grouped Rows" = Table.Group(#"Merged Columns", {"Merged"}, {{"GroupTables", each _, type table [Amount=nullable number, Merged=text]}}),
    #"Added Custom" = Table.AddColumn(#"Grouped Rows", "CountRows", each Table.RowCount([GroupTables])),
    #"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([CountRows] = 1)),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Filtered Rows", "Merged", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), {"Merged.1", "Merged.2"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Merged.1", Int64.Type}, {"Merged.2", Int64.Type}}),
    #"Removed Columns" = Table.RemoveColumns(#"Changed Type1",{"GroupTables", "CountRows"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Merged.1", "Customer ID"}, {"Merged.2", "Amount"}}),
    #"Changed Type2" = Table.TransformColumnTypes(#"Renamed Columns",{{"Customer ID", type text}})
in
    #"Changed Type2"

Espero que esto ayude.

Untitled.png

@rangeet1 ,

Cree una medida como esta y úsela como filtro:

Measure 4 = 
VAR amt = -1 * MAX('Table (5)'[Amount])
var cust_id = MAX('Table (5)'[Customer ID])
RETURN
    COUNTROWS (
        FILTER (
            ALL( 'Table (5)' ),
            'Table (5)'[Amount] = amt
                && 'Table (5)'[Customer ID] = cust_id )
    )

Ouput:-

Samarth_18_0-1642063262328.png

Gracias

Samarth

Syndicate_Admin
Administrator
Administrator

@rangeet1 , Necesitamos verificar si hay alguna identificación común, usando eso podemos suprimir.


¿Puede compartir datos de muestra y salida de muestra en formato de tabla? O un pbix de muestra después de eliminar datos confidenciales.

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.