Forum Discussion
Data filtering by table values
- 9 years ago
You can add a calculated column to your DataTbl table which tests for the existance of the same timestamp in the SecondTable
and returns the Parameter Value if it finds on and 0 if it doesn't find a match.
I notice you SUM your ParameterValues, do you want to SUM if there are multiple matches?
New Column = IF( RELATED(SecondTable[TimeStamp])<>BLANK(), 'DataTbl'[Parameter], 0 )
HI Francesco
I'm not 100% sure I fully understand what you are after but here is a starter.
Please create the following Calculated Table in Power BI Desktop.
Just replace DataTbl and SecondTable with your table and column names.
This approach throws out (or ignores) and rows from DataTbl that do not find a matching TimeStamp in the 2nd Table
NewTable = SELECTCOLUMNS(
FILTER(
CROSSJOIN(DataTbl,SecondTable),
'DataTbl'[TimeStamp] = 'SecondTable'[TimeStamp]
),
"TimeStamp" , 'DataTbl'[TimeStamp] ,
"Parameter" , 'DataTbl'[Parameter]
)- Francesco9 years agoFrequent Visitor
Hi Phil , thanks a lot for your answer that gave me a new way to solve the problem. But still it is not fully solved.
Using the measures:
Power_W = CALCULATE(SUM(DataTable[ParameterValues]);USERELATIONSHIP(DataTable[TimeStamp];TimeTable[TimeStamp]))
I can filter from DataTable al ParameterValues whose timestamp is included in TimeTable.
Instead I would like to have a table with all timestamps of TimeTable[TimeStamp] and
ParameterValue = 0 if not found in DataTable at the related Timestamp.
ParameterValue = DataTable[ParameterValues] if not found.
Regards.
- Phil_Seamark9 years agoMicrosoft Employee
You can add a calculated column to your DataTbl table which tests for the existance of the same timestamp in the SecondTable
and returns the Parameter Value if it finds on and 0 if it doesn't find a match.
I notice you SUM your ParameterValues, do you want to SUM if there are multiple matches?
New Column = IF( RELATED(SecondTable[TimeStamp])<>BLANK(), 'DataTbl'[Parameter], 0 )- Francesco9 years agoFrequent Visitor
Hi Phil,
I would like to add a column not to the DataTbl but to the one_column TimeStampTable.
If a value is found in the DataTable then copy it otherwise put zero.
The best should be not to manage one column for each parameter but all the DataTable parameter_columns at once.
p.s I used SUM as aggregate function, as there is a unique timestamp value, also VALUES can be used.
.