Forum Discussion
Complicated criteria
- 9 years ago
I would suggest the following:
(sample pbix here)- Normalize your data to avoid duplication of Company attributes, so that you have
- A Company table containing Company ID, Authorized Users, Activation date
- An Assignment table containing Company ID, Assignment and Assignment Completion Date
- These are related on the Company ID columns.
(note my date formats below are d/mm/yyyy)
Company table
Assignment table
- Create measures as follows:
Threshold Reached On (Date) = IF ( // Evaluate only for one company HASONEVALUE ( Company[Company ID] ), VAR Threshold = VALUES ( Company[Authorized Users] ) * 0.5 RETURN // Find the earliest date such that the threshold has been reached. // If the threshold is never reached, BLANK is returned. MINX ( FILTER ( VALUES ( Assignment[Assignment Completion Date] ), VAR CurrentRowCompletionDate = Assignment[Assignment Completion Date] RETURN CALCULATE ( COUNTROWS ( Assignment ), Assignment[Assignment Completion Date] <= CurrentRowCompletionDate ) >= Threshold ), Assignment[Assignment Completion Date] ) )Threshold Reached On (Text) = IF ( HASONEVALUE ( Company[Company ID] ), VAR ThresholdReachdOn = [Threshold Reached On (Date)] RETURN IF ( ISBLANK ( ThresholdReachdOn ), "Did Not Reach", FORMAT ( ThresholdReachdOn, "M/DD/YYYY" ) ) ) - Then the measures produce these results (the final text measure formatted as m/dd/yyyy):
You could do the same thing without normalizing, and the DAX would be pretty much the same apart from just having a single table name. I just think it's a good safeguard to ensure you don't by chance have different Company attributes for the same company on different rows.
Regards,
Owen
- Normalize your data to avoid duplication of Company attributes, so that you have
Hi anongard
Why do you not create a calculated column in the Query Editor which can calculate how many days it has been since the Activation Date.
Then load this data and then create a measure based on your criteria below.
Create a second measure which is based on the Days (Activation Date)
Once you have the two measure above you could then compare them and see how is above and who is below?
What measure could I use that would give me the date of the .5*xth assignment, where x=user count, for each individual account? Maybe my DAX is not advanced enough, but I don't know how to get that far.
- v-huizhn-msft9 years ago
Microsoft Employee
Hi anongard,
For the .5*xth assignment, you can use the similar formula.=5*count(Table[userID])
You also can create a calculated column to get result for each individual account using the formula like below.=CALCULATE(5*count(Table[userID]),ALLEXCEPT(Table,Table[account]))
In addition, I totally understand your data is private, you can create a sample table and list the expected result, so that we can provide the solution which is close to your requirement.
Best Regards,
Angelia- anongard9 years ago
Helper I
Thank you for the feedback! I don't think I was clear in my initial post, so I've created a sample table that I think may illuminate what it is I'm looking for. From the table below, I have all of the data except the "Threshold Reached On" column, which ideally I could create as a new table. The formulas that you gave me in the previous post did not really help, unfortunately. I don't know what you meant when you said [account], but trying a variety of my inputs - Account ID, # of Users, etc. yielded nothing very helpful. If you can clarify what you meant by that, as well as what exactly it's supposed to measure, I would appreciate it. Thank you!
P.S. I don't seem to be able to post tables because of HTML formatting errors. If there's a better way to post them (other than unformatted mess), let me know.
- v-huizhn-msft9 years ago
Microsoft Employee
Hi anongard,
If you want to get the following results, please click New Table->Under Modeling on Home page, type the following formula.New=SUMMARIZE(Table,Table[CompanyID],"Threshold Researched on",MAX(Table[Assignment Completion Date]))
For the issue above: 'does it take for Company A to complete .5*100=50 assignments?' I still confuse, if you still have other problems, please feel free to ask.
Best Regards,
Angelia