Table with filtered rows - powerbi

How can I filter in the table only the lines where the values of "Conversion Time"> "Upper Limit Express Conv"
Since "Upper Limit Express Express" is a variable that is adjusted with Date slicer

This way it worked
Filter Column =
VAR Conversion Time = SELECTEDVALUE(Autentique[Conversion Time])
Return
IF(SELECTEDVALUE(Conversion Time)>[Limite Superior Conversão];"A";"B")

You could use a filter column to do this:
Filter Column =
VAR UpperLimit = [Upper Limit Express Conv]
RETURN IF([Conversion Time]>UpperLimit,1,0)
Once the column is created you can simply use it in the filter pane and filter for either 1 or 0 depending on your needs. Hope this helps.
Edit:
Since the column [Conversion Time] is also not readily available, you can try passing that into a variable:
Filter Column =
VAR UpperLimit = [Upper Limit Express Conv]
VAR ConvTime = DATEDIFF([Activities.Novo],[Signed_At],DAY)
RETURN IF(ConvTime>UpperLimit,1,0)

Related

Power BI Dax Measure and return multiple columns

I am filtering the data based on the current logged in user using the below query, now I would like to return some of the columns associated with that user - how to achieve that ?
In the below case I get only 1 value - I tried to return a complete row but it throws me the error "Multiple columns cannot be converted to a scalar value" - any other way to show multiple columns?
CurrentUserData =
VAR CurrentUserState = CALCULATE(MAX(TimeReport[UserPrincipalName]),FILTER(TimeReport, TimeReport[UserPrincipalName] = USERPRINCIPALNAME()))
RETURN
IF(
SELECTEDVALUE(TimeReport[UserPrincipalName]) = CurrentUserState,
Values(TimeReport[Neukunden_Akquise_Produkte])
)
Reference: https://community.powerbi.com/t5/Desktop/Show-Current-Logged-in-User-data-only/m-p/2219446#M810376
Thanks
Got the solution and credit goes to #miguelarce
https://community.powerbi.com/t5/Developer/RLS-vs-Filter-for-current-user/m-p/329584
Measure1
WhoIsWatching = USERPRINCIPALNAME()
(that is email style usernames, or you can use USERNAME() for windows style users)
Measure 2
FilterByViewer = IF(selectedvalue(table[email])=[WhoIsWatching],1,0)
Drag Measure 2 as a filter for visual, select advanced filtering and set it to
"Show items when value IS 1"

Find max value and related records too

I have following table.
I want to find out Distributors and assign code for max date transactions.
so answer will be like this.
MAXDateByDistribuitor :=
VAR CurrentDate = SELECTEDVALUE('Table'[Date of Transaction])
VAR LastDateByDist =
LASTDATE(
CALCULATETABLE(
VALUES('Table'[Date of Transaction]),
ALLEXCEPT('Table','Table'[Distribuitors])))
RETURN
//Filters on this visual
//Show items when the value:
//MAXDateByDistribuitor is 1 | Apply filter
IF(CurrentDate=LastDateByDist,1,0)
Note that when using a single table, the functions will only return values present in that table. It would be advisable to add at least one calendar and one dimension to identify the distributors.

Find difference between two rows by usind Dax in Power BI

I have three column one is Id(ID is same) 2nd col is amount and third is date, I want difference between two rows(amount)
As you want to have the previous value of the date where the ID is equal, you can use the following:
Add a column,
Column4 =
var baseFilter = FILTER(DiffRows;DiffRows[Column1] = EARLIER(DiffRows[Column1]))
var selectDate = CALCULATE(LASTDATE(DiffRows[Column3]);baseFilter;
FILTER(baseFilter; DiffRows[Column3] < EARLIER(DiffRows[Column3])))
return
DiffRows[Column2] - CALCULATE(sum(DiffRows[Column2]);baseFilter;
FILTER(baseFilter; DiffRows[Column3] =selectDate))
First I create a basefilter to ensure the IDs are same.
Next I select the date whcih is the previousdate within the set of same ids
Last I use this date, to filter the correct value out of the rows.
End result:

Power BI Lookup with Duplicates Equation

I have a data set that contains duplicates and i am trying to do the equivalent of a Vlookup from excel. In excel when you use the vlookup function it will just return the first value even if there is a duplicate. The data set that i am working with has a unique 16 character string.
I have utilized some videos, forms, and other resources but no luck. I have used the calculation equation with a first non blank and a filter but i either get an error or returns blank.
https://1drv.ms/x/s!AtrxZbQBYb0LjZtaIkZcn4qsMimwnQ?e=PZbNud
Column = CALCULATE(
FIRSTNONBLANK('Table1'[ID]),
FILTER('Table1','Table1'[Parent]='Table1'[ID]))
You can go with:
Column =
var SampleID = 'Sample Data'[ID]
var EarliestDate = CALCULATE(MIN('Sample Data'[Creation Date]);FILTER('Sample Data';'Sample Data'[Parent] = SampleID))
return CALCULATE(MIN('Sample Data'[Text]);FILTER('Sample Data';'Sample Data'[Parent] = SampleID && 'Sample Data'[Creation Date] = EarliestDate))
Note: it finds the earliest date ann when dates are equal, smallest string
Enjoy!

Need to help build a control column that finds a bug with DAX

Power BI Desktop, DAX
I need to help build a control column that finds a bug.
I have three columns: "SN" - serien nr. Data type: text, "MTH" Type data: Whole Number and "Date" Data type: Date.
Each SN has x Mth. Every Mth has just one date.
For each SN, it is true that it can not have more Mth at an earlier date.
Example:
I solved it only by counting the help tables in Query Editor, which took a lot of performance.
I was able to achieve this using the following calculated column:
Control =
VAR BugSN = Bug[SN]
VAR BugMth = Bug[Mth]
VAR BugDate = Bug[Date]
RETURN CALCULATE(
MAX(Bug[Date]),
ALL(Bug), Bug[SN] = BugSN, Bug[Mth] = BugMth
) = BugDate
What this says is that if the date in that row is the max for that SN and Mth combination, then TRUE otherwise FALSE.
(I named the table Bug, but you'll need to replace that with whatever your table name is.)