cancel
Showing results for
Did you mean:

Fabric is Generally Available. Browse Fabric Presentations. Work towards your Fabric certification with the Cloud Skills Challenge.

Frequent Visitor

## How to calculate SUM IF in this particular case?

My data has 2 dates. I have to count how many times they are same BUT not per row but per date1.

For example, I can create a column with simple if statement, or countrows and check "if same". Problem is aggregation. Now on aggregation by date 1 - for 1-jul, 2-jul it will give me 2 and 3. Instead, I am now looking for a calculation measure/column that treats 2 and 3 as 1 count only and then I have to take percentage of total.

What approach should I take?

Basically, I have to count percentage of times the dates are same, ignoring the fact if their are more rows per value of date1. (because in actual data I have more columns and there would be more repetition).

Thanks a lot.

 Date 1 Date 2 If same 1-Jul 1-Jul 1 1-Jul 30-Jun 0 1-Jul 1-Jul 1 2-Jul 2-Jul 1 2-Jul 1-Jul 0 2-Jul 2-Jul 1 2-Jul 2-Jul 1
1 ACCEPTED SOLUTION
Memorable Member

@Devashish ,
Currently it summarizes values by column "Date 1".
First variable "FilterSameDays" has that part : Summarize(filter([table], value, [column1],[column2],[column3]).

At the moment, column 1 is "Date 1", under column2 and column 3 you can set other columns by which you would like also to group data.

8 REPLIES 8
Memorable Member

Hi @Devashish ,

Try this formula:

Total Same Days =
var filterSameDays = FILTER('Table','Table'[Same Date]>0)
var CountSameDays = COUNTROWS(filterSameDays)
RETURN
IF(CountSameDays>0,1,0)

Cheers,
Nemanja
Frequent Visitor

Hi,

The problem is Total = 1.  I want to count how many times it is 1.  That is the whole point of having these 1s.

Memorable Member

Hi @Devashish ,

Try this option:

Total Same Days 2 =
var filterSameDays =
SUMMARIZE(FILTER('Table','Table'[Same Date]>0),'Table'[Date 1]),
"If Same Day",IF(COUNTROWS('Table')>0,1,0)
)
var CountSameDays = COUNTROWS(filterSameDays)
var Counter = IF(CountSameDays>0,1,0)

RETURN
IF(HASONEVALUE('Table'[Date 1]),Counter,SUMX(filterSameDays,[If Same Day]))

Cheers,
Nemanja
Frequent Visitor

Hi Nemanja,

Thanks, it seems to be working now.

Please check my Message 4 above. I want this information to be broken up by WORKCENTER (per employee)

What changes do I have to make in the code?

Memorable Member

@Devashish ,
Currently it summarizes values by column "Date 1".
First variable "FilterSameDays" has that part : Summarize(filter([table], value, [column1],[column2],[column3]).

At the moment, column 1 is "Date 1", under column2 and column 3 you can set other columns by which you would like also to group data.

Frequent Visitor

Thanks for explaining. I will explore more on SUMMARIZE DAX. Seems very useful.

Community Champion

Hi @Devashish ,

Not very clear as to what is the expected output.

Share more data and the expected output to help you on this.

Regards,

HN

Frequent Visitor

Hi Harsh,

This I get on aggregation of above table

 Date 1 If same 1-Jul 2 2-Jul 3

I want this

 Date 1 New measure perc 1-Jul 1 100% 2-Jul 1 100% Total 2 100%

For ex: I tried using New measure = If([If same]>0,1,0), but then I can not SUM - because the total also says 1. And then I don't know how to calculate % of rows in this new table that it is 1 or 0. It would give me 100% or 0% in each row and then aggreated percentage in total.

Full story:

Date 1 - Normal calendar date

Date 2 - Employee logging in the time sheet data

KPI: We want to check on how many times, employee is logging on the same day.

Now, the 8 hours per day are also not logged at once. They can be divided and logged against type of work and even over days. So, maybe on 2nd July someone books 2 hours for travel and 6 hours for work for the work that was done on 1st of July. In this case, the hours are not booked on same day so synchronization against Date 1 for 1st July should be 0%.

So I tried with countrows+filter and if statement  - in the last 2 rows. The problem is it is giving me total of number of rows because the hours booked are broken up against different areas (travel, work etc). So, basically, these 5,5, 4, 10 all means 1 to me and 0 means 0. How to achieve this? Thanks

Announcements

#### Power BI Monthly Update - November 2023

Check out the November 2023 Power BI update to learn about new features.

#### Fabric Community News unified experience

Read the latest Fabric Community announcements, including updates on Power BI, Synapse, Data Factory and Data Activator.

#### The largest Power BI and Fabric virtual conference

130+ sessions, 130+ speakers, Product managers, MVPs, and experts. All about Power BI and Fabric. Attend online or watch the recordings.

Top Solution Authors
Top Kudoed Authors