I've got a problem in PowerBI which im trying to solve for quite a while now.
I made a histogram which shows me how often a value exists.
For the values I have a upper and lower limit.
Also I want to have a vertical targetline which shows me where the values should be.
There's also a slicer where I can select different stations and depending on that the values, limits and targetgoal change.
The problem is that the targetline doesn't always appear. Always then when there is no value at the exact spot where the targetline should be.
In this Picture the target line should be at 61. but there is no "Wert".
I really tried a lot of things to get it working but it just do not want to work. It only works if I set "show all values" on the shared axis. But I only want to see All_Values within the limits.
The DAX for the target line is: targetline = IF(ISFILTERED(Stationen[Station]), IF( VALUES('Values'[All_Values]) =[Target],300,0),BLANK())
So I hope there is a possibilitiy to only show "All_Values" in between the limits. I tried to write a measure but there are no measures allowed as shared axis.
Values_Between = CALCULATE(VALUES('Values'[All_Values]),Filter('Values'[All_Values]>[LL] && 'Values'[All_Values]<UL))
Because when I only show All_Values between the Limits, I can turn on "show values whith no data"
I would really appreciate if someone could help me. It can also be a completely different approach.
Related
Working with basketball data, I'm trying to get the time on court for the players (there are some columns that have information about a player or players).
I tried to obtain the value with a calculated column, named "TimeOnCourt". The code works for most cases but there is a case that, due to a mistake in the data entry team, there are different values of the players columns for the same "TimeOnCourt" so, when I try to visualize the information, the data entry mistake comes out.
I guess I could use the column "Index" to add a piece of code to choose the MIN value for the "TimeOnCourt" column but, after trying some options, I don't know where to put it or if I have to change the full code.
I also tried with Test_Flags but not working for all cases (but could fix 2 of the 4 cases).
Add you the link with the pbix file and the Test_Flag measures I tried: Link to pbix file v3
And the image with the mistake marked. The expected time in the right visualization should be 0:40:00 instead of 0:43:03 (it's due to the duplicate in Full Quarter = 2Q and Time_Def = 0:04:00. This could happen again although I talked with them so the solution should be general, not filtering this specific case.
Problem
My question is: Is there a way to return a column in a Matrix with different data types to be summarized as shown in the picture?(Using SWITCH)
I am not sure if this has been phrased in this way before but hopefully someone knows a simpler solution than what I've tried.
Im trying to return a column in a Matrix with different data types to be summarized. I have tried something similar in transform data to the following.
MixedFormatColumn = SWITCH('Cars'[Attribute],
"Socks",CONVERT('Socks'[Value],STRING) ,
"Paper",FORMAT('Paper'[Value], "#,0.0" ) ,
"Plastics",FORMAT('Plastics'[Value], "$#,0" ) ,
CONVERT('Crayons'[Value],STRING)
)
Although not exact, im sure you get the idea. I just keep getting stuck not sure if its an Power Query or a Measure issue and really not sure how to go about this. If someone could at least point me in the right direction it would be greatly appreciated. Thank you whomever is reading this for your time.
A column or a measure cannot have mixed data types or mixed formatting. In order to get the $ value of socks sold, you would need the $ value for the sale. In order to get a count of socks sold, you would need a number, unless you want to count the rows for socks, but a row might be about more than just one pair of socks.
Mixing percentages into all this in one single matrix column is not possible. You may want to rethink your approach.
I am trying to calculate a price based on rates. If the number is $20,000 or below, there is a flat rate of $700. If the number is between 20,001.01 and $50,000, the rate is 3.5% of the number. The rates continue to lower as the numbers go up. I can get Google Sheets to populate the box with $700 if it is below $20,000 but I can't seem to make it do the multiplication for me. The cell just shows C4*.035
I want it to multiply the number shown in the C4 square by the percentage listed.
Here is the code as it currently sits:
=if(AND(C4<=20000),"700",IF(AND(C4>=20000.01,C4<=50000),"C4*.035", IF(AND(C4>=50000.01,C4<=100000),"C4*.0325", IF(AND(C4>=100000.01),"C4*.03"))))
Note, I know nothing about coding so I apologize if it is sloppy or doesn't make sense. I tried to copy and format based on an example that was semi similar to mine.
try:
=IF(C4<=20000, 700,
IF(AND(C4>=20000.01, C4<=50000), C4*0.035,
IF(AND(C4>=50000.01, C4<=100000), C4*0.0325,
IF(AND(C4>=100000.01), C4*0.03))))
As BigBen noticed in his comment - there's a mistake in your formula. You should not use " " around the formula if you don't want it to be read as a string.
Actually more clean solution is using IFS formula for this task.
=ifs(C4<=20000,700,
C4<=50000,C4*0.035,
C4<=100000,C4*0.0325,
C4>100000,C4*0.03)
Apologies up front, this is going to take a second to explain but I'd rather be thorough so the problem is clear. The main problem that I am having is that people are not being properly filtered out of a matrix that I am using and I believe I have isolated the problem to some measures that I have written. Below is a picture of what I'm working with (I guess you'll have to follow the link):
My problem is that when I try to apply a filter using the slicer, you would expect the available names to be filtered out of the matrix based on if they fall under the particular team leader or director selected. However, they do not, as seen in this picture:
Clearly, people are not being filtered out because there are still values in the AnswerRatePass column and the SurveyScorePass column. I will focus on just AnswerRatePass to cut the problem in half. The purpose of AnswerRatePass is to output text to identify if the Answer Rate of a person exceeded their goal, met the goal, or missed the goal. My code for AnswerRatePass is:
AnswerRatePass = if([AnswerRateGoal] = 1,"Exceed",
if([AnswerRateGoal]=0,"Achieved","Missed"))
As you surely noticed, [AnswerRatePass] is using the value of [AnswerRateGoal] to determine what to do. I use this because it sort of simplifies the code for my Recommendation measure, which assesses if a person met their goals for both criteria, meaning we suggest to promote this person, or what their case is. My code for AnswerRateGoal is:
AnswerRateGoal =
if(ISBLANK([AnswerRate]),0,
if(values(TMD[Title])="Executive",
if([AnswerRate]>=.94,1,
if([AnswerRate]>=.92,0,-1)),
if(values(TMD[Title])="President's Club",
if([AnswerRate]>=.96,1,
if([AnswerRate]>=.94,0,-1)),
if([AnswerRate]>=.96,0,-1)
)))
If these measures (AnswerRatePass, SurveyScorePass, and Recommendation) are removed from the matrix, the slicers work exactly as expected. So, long story short, what I'm pretty sure I need is some sort of filter for these measures so that these values will disappear when using a slicer that doesn't apply to that person, allowing the individual person to also be filtered out by the slicer as well. Unless someone has a different idea, I'm pretty sure that's what I need but I haven't been able to come up with a way to do it. I'm open to any help/suggestions.
Yep, I've seen this before. I think what you want is for AnswerRatePass to return a blank if AnswerRate is blank. Try something like this:
AnswerRatePass =
IF(
ISBLANK([AnswerRate]),
BLANK(),
IF(
[AnswerRateGoal] = 1,
"Exceed",
IF(
[AnswerRateGoal] = 0,
"Achieved",
"Missed"
)
)
)
Side note: The SWITCH function is often a cleaner approach then nested IF functions.
I need to define a calculated member in MDX (this is SAS OLAP, but I'd appreciate answers from people who work with different OLAP implementations anyway).
The new measure's value should be calculated from an existing measure by applying an additional filter condition. I suppose it will be clearer with an example:
Existing measure: "Total traffic"
Existing dimension: "Direction" ("In" or "Out")
I need to create a calculated member "Incoming traffic", which equals "Total traffic" with an additional filter (Direction = "In")
The problem is that I don't know MDX and I'm on a very tight schedule (so sorry for a newbie question). The best I could come up with is:
([Measures].[Total traffic], [Direction].[(All)].[In])
Which almost works, except for cells with specific direction:
So it looks like the "intrinsic" filter on Direction is overridden with my own filter). I need an intersection of the "intrinsic" filter and my own. My gut feeling was that it has to do with Intersecting [Direction].[(All)].[In] with the intrinsic coords of the cell being evaluated, but it's hard to know what I need without first reading up on the subject :)
[update] I ended up with
IIF([Direction].currentMember = [Direction].[(All)].[Out],
0,
([Measures].[Total traffic], [Direction].[(All)].[In])
)
..but at least in SAS OLAP this causes extra queries to be performed (to calculate the value for [in]) to the underlying data set, so I didn't use it in the end.
To begin with, you can define a new calculated measure in your MDX, and tell it to use the value of another measure, but with a filter applied:
WITH MEMBER [Measures].[Incoming Traffic] AS
'([Measures].[Total traffic], [Direction].[(All)].[In])'
Whenever you show the new measure on a report, it will behave as if it has a filter of 'Direction > In' on it, regardless of whether the Direction dimension is used at all.
But in your case, you WANT the Direction dimension to take precendence when used....so things get a little messy. You will have to detect if this dimension is in use, and act accordingly:
WITH MEMBER [Measures].[Incoming Traffic] AS
'IIF([Direction].currentMember = [Direction].[(All)].[Out],
([Measures].[Total traffic]),
([Measures].[Total traffic], [Directon].[(All)].[In])
)'
To see if the Dimension is in use, we check if the current cell is using OUT. If so we can return Total Traffic as it is. If not, we can tell it to use IN in our tuple.
I think you should put a column in your Total Traffic fact table for IN/OUT indication & create a Dim table for the IN & Out values. You can then analyse your data based on IN & Out.