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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
SoufTC
Helper I
Helper I

Delete rows based on calculated number

I’m having trouble to delete rows based on calcluted # number.

 

I have 3 tables.

 

1. A table that defines unique list of call (call)[List] per day (call)[Date]. each call has an answer status (call)[Status]. I created a column to have a unique field (call)[Key]

 

Call which appears as following :

|   List          |  Status  |    Date            |    Key
-------------------------------------------------------------
|   List1         |  A        |    2022-02-09  |   List1 2022-02-09
|   List1         |  A        |    2022-02-09  |   List1 2022-02-09
|   List1         |  DO     |    2022-02-09  |   List1 2022-02-09
|   List1         |  DO     |    2022-02-09  |   List1 2022-02-09
|   List1         |  DO      |    2022-02-09  |   List1 2022-02-09
|   List2         |  A        |    2022-02-09  |   List2 2022-02-09
|   List2         |  DO      |    2022-02-09  |   List2 2022-02-09
|   List2         |  DO      |    2022-02-09  |   List2 2022-02-09
|   List3         |  A        |    2022-02-09  |   List3 2022-02-09
|   List3         |  DO        |    2022-02-09  |   List3 2022-02-09
|   List3         |  DO      |    2022-02-09  |   List3 2022-02-09
|   List1         |  C        |    2022-02-10  |   List1 2022-02-10
|   List2         |  A        |    2022-02-10  |   List1 2022-02-10
|   List2         |  DO        |    2022-02-10  |   List1 2022-02-10
|   List2         |  A        |    2022-02-10  |   List1 2022-02-10
|   List3         |  DO        |    2022-02-10  |   List1 2022-02-10
|   List3         |  A        |    2022-02-10  |   List1 2022-02-10

 

2. A table a repository Status (Status )[Names] and (Status)[Status]; The join with the (Call)table is done with the (Status)[Status]

 

Status which appears as following :

 

|   Names       |  Status       |
-----------------------------
|   answer        |      A          |
|   drop out     |     DO         |
|   cancel         |     C            |

 

2. A table Number with a calculated column (Number)[#drop] ; The join with the (Call)table is done with the (Call)[Key]

 

Number which appears as following :

|   Key                       |  # drop    |   
-------------------------------------
| List1 2022-02-09    |  2       |
| List2 2022-02-09    |  2        |
| List3 2022-02-09    |  1        |
| List1 2022-02-10    |  0        |
| List2 2022-02-10    |  1        |
| List3 2022-02-10    |  1        |

 

I want to create a new table called NewDF by deleting the rows based on (Number)[#drop] and with (Status )[Names] = "drop out"

 

Desired result is the following:

 

|   List          |  Status  |    Date            |    Key
-------------------------------------------------------------
|   List1         |  A        |    2022-02-09  |   List1 2022-02-09
|   List1         |  A        |    2022-02-09  |   List1 2022-02-09
|   List1         |  DO     |    2022-02-09  |   List1 2022-02-09
|   List2         |  A        |    2022-02-09  |   List2 2022-02-09
|   List3         |  A        |    2022-02-09  |   List3 2022-02-09
|   List3         |  DO      |    2022-02-09  |   List3 2022-02-09
|   List1         |  C        |    2022-02-10  |   List1 2022-02-10
|   List2         |  A        |    2022-02-10  |   List1 2022-02-10
|   List2         |  A        |    2022-02-10  |   List1 2022-02-10
|   List3         |  A        |    2022-02-10  |   List1 2022-02-10

 

Please, any help?

Thank's in advance

1 ACCEPTED SOLUTION
SpartaBI
Community Champion
Community Champion

@SoufTC this was super super tricky.
Also, you had mistakes in your tables you copied (look at the first table you pasted), so make sure you test this with accurate data.
Attaching the file:
Delete Rows.pbix
It involved extra neccesary steps in Power Query so make sure you follow them and then I could have written this calculated table:

 

Calc Table = 
VAR _tbl1 = 
    SELECTCOLUMNS(
        FILTER(
            ADDCOLUMNS(
                FactCalls,
                "@Removal Index", 
                IF(
                    RELATED(DimStatus[Names]) <> "drop out", 
                    0,
                    RANKX(FILTER(FactCalls,FactCalls[Key] = EARLIER(FactCalls[Key])), FactCalls[Index], ,ASC) - COUNTROWS(FILTER(FactCalls, FactCalls[Status] <> "DO" && FactCalls[Key] = EARLIER(FactCalls[Key])))
                ) - RELATED(DimDrops[# drop])
            ),
            [@Removal Index] < 0
        ),
        "List", [List],
        "Status", [Status],
        "Date", [Date],
        "Key", [Key]
    )
RETURN
    _tbl1

 




2022-05-19 17_30_22-Re_ Need help on DAX function with measure vs colu... - Microsoft Power BI Commu.png

Showcase Report – Contoso By SpartaBI


SpartaBI_3-1652115470761.png   SpartaBI_1-1652115142093.png   SpartaBI_2-1652115154505.png

Full-Logo11.png

View solution in original post

3 REPLIES 3
SoufTC
Helper I
Helper I

@SpartaBIthank's for your response. from the table Number we define how many rows to delete according to the (Number)[#drop]: for example according to Table Number for the (Call)[Key] = List1 2022-02-09  we have (Number)[#drop] = 2 rows to delete. In (call)[List] we have 3 rows = DO so we keep delete 2 and keep 1. I don't know if clear enough thank's in advance

SpartaBI
Community Champion
Community Champion

@SoufTC this was super super tricky.
Also, you had mistakes in your tables you copied (look at the first table you pasted), so make sure you test this with accurate data.
Attaching the file:
Delete Rows.pbix
It involved extra neccesary steps in Power Query so make sure you follow them and then I could have written this calculated table:

 

Calc Table = 
VAR _tbl1 = 
    SELECTCOLUMNS(
        FILTER(
            ADDCOLUMNS(
                FactCalls,
                "@Removal Index", 
                IF(
                    RELATED(DimStatus[Names]) <> "drop out", 
                    0,
                    RANKX(FILTER(FactCalls,FactCalls[Key] = EARLIER(FactCalls[Key])), FactCalls[Index], ,ASC) - COUNTROWS(FILTER(FactCalls, FactCalls[Status] <> "DO" && FactCalls[Key] = EARLIER(FactCalls[Key])))
                ) - RELATED(DimDrops[# drop])
            ),
            [@Removal Index] < 0
        ),
        "List", [List],
        "Status", [Status],
        "Date", [Date],
        "Key", [Key]
    )
RETURN
    _tbl1

 




2022-05-19 17_30_22-Re_ Need help on DAX function with measure vs colu... - Microsoft Power BI Commu.png

Showcase Report – Contoso By SpartaBI


SpartaBI_3-1652115470761.png   SpartaBI_1-1652115142093.png   SpartaBI_2-1652115154505.png

Full-Logo11.png

SpartaBI
Community Champion
Community Champion

@SoufTC I'm missing what logic do you want to get from the KEY / # Drop table.
I wrote for now this:

 

Calc Table = 
FILTER(
    FactCalls,
    RELATED(DimStatus[Names]) <> "drop out"
)

 


Just add why the DO in your result are still there after the removal and I'll add the logic


2022-05-19 17_30_22-Re_ Need help on DAX function with measure vs colu... - Microsoft Power BI Commu.png

Showcase Report – Contoso By SpartaBI


SpartaBI_3-1652115470761.png   SpartaBI_1-1652115142093.png   SpartaBI_2-1652115154505.png

Full-Logo11.png

Helpful resources

Announcements
July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.

Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 community update carousel

Fabric Community Update - June 2025

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