PowerBI / PowerQuery: Date slicer for multiple tables - powerbi

Fellow PowerBI enthusiasts,
I am working on a reporting tool for our support team within our company. They would like to see the hours worked for each operator on a specific selection of dates. This could be just one day, or the whole week.
There are three different kinds of tasks that can be logged. Either time spent on Changes, on Incidents or on Operations (Change-, Incident- and OperationsActivityTimeRegistrations). There is a relationship between these registration tables and the operators table to show the full names in the PowerBI Dashboard, but there is one problem:
I cannot make a proper slicer for the dates. If I select one of the dates from a ___TimeRegistrations table, it will only filter on the dates for that table. That's why we made a new table called 'Datum' which contains all the dates from 1-1-2018 till 31-12-2019 and use those as input for my slicer, but I cannot make a link.
A picture of the relationships: https://imgur.com/a/eoB3rvE
A picture of the report: https://imgur.com/a/yhrACoV
Thanks in advance!
Kind Regards,
Sander

Related

Looking for results between selected dates and before in power bi

I have a dashboard with two slicers. First slicer is selecting stages of building homes ( trench, frame, roof etc) second slicer is end date time. Both slicers are using the fields exist in the same table. Users want to select two stages lets say stageA and stageB, and the date selection is 12/1/2022 to 1/1/2023 now we have stages with end date time in a table view. In the future users want to see even if latest stage is within the date slicer it doesnt matter even if the earlier stage is within the date slicer or "before" they want to see it SO THAT they can look at these two date's variance! Any help would be appreciated. Thanks !
I have been looking online for one week, couldn't find any solution

Filtering by Date and changing measure

I'm trying to build a report in a table that returns a count of completed checklists that are filtered by 2 Date Intelligence slicers. I have the targets for that month in a table, but I'm not sure how to change the measure by what's selected in the slicer.
I would like the measure to return the Target.Monthname of the selected slicers from the table Targets. The slicer is based on the DonesafeFolder Table with "Date of Completion"
Your question is a bit hard to understand.
But from your pictures, I think you should take a step back.
when using powerBI it is recommended to use a star schema, with facts and dimensions tables. Usually you model that when you import your data (with power query).
When using a star schema you also have a date dimension with the month on the rows instead of columns and powerBI is better at handling data structured like that. to lean about designing the data model you can read MS's guide to star schemas
Of cause, if you know what you are doing, you can use your approach, but it makes things alot harder.
BTW. you can't access the values in the slicers/filters directly. they filters the column you select which are then passed to the measures you create. If your datamodel is sound they should indirectly filter your measure.

Power BI Can't create relationship between two tables

I have tables like this diagram, and existing relationships are in highlighted boxes.
Then I tried to create relationship between Dates[Date] and Users[Last Hire Date], I got an error message saying there is an ambiguous conflict.
I don't see what conflict there is and how to overcome it?
The ambiguity is easier to see when you start with the Dates table. The arrows in the relations represent the filter direction. By selecting a certein Date in Dates, you are selecting several Emails in Time Log Aggregation where Date of Worklog equals Date. Simultaneously you are selecting several other Emails in Useres and Groups, where Last Hire Date equals Date. These 2 selections of Emails have nothing in common and they would match only by pure coincidence.
A workaround for this situation would be to duplicate the Dates table.

Showing Side by Side Measures from Semi-Related Tables in Power BI

I have a data model in Power BI that, among other things, has the following tables
Employees (Dimension; employee ID/name)
Jobs (Dimension; contains details about the job, including job ID)
Employee history- Contains a record for each day an associate was in a job(snapshot table);
Job Budget History- Contains a record for each day a job was budgeted(snapshot table)
Calendar Table
The table is modeled like so (simplified version):
In Power BI, I am trying to make a simplified table view that contains measures based on both the budget history as well as the employee history for the most recent day in the dataset (simple count rows/distinct count of calendar table)
However, attempting to do so gives me the results below if I try to put both measures on the table. Basically it appears to be doing a cross join between each table and matching associates with jobs they don't have (this happens when the budget is added).
Of course, if I just do one of the singular measures everything works perfectly. I am fairly certain it is because there is no real connection between the 'employee' and the 'budget history' in this relationship, so it is just joining everything on the date without any context.
I have tried several things such as making inactive relationships with userelationship(), using visual level filters etc. but I'm not sure what the best option in this situation would be. (I am trying to avoid bidirectional relationships if possible)
Ideally this information should show on this date that Joe was present as President, Sally was present as an operator, and the Manager position had nobody, but all three were budgeted.
Any advice is appreciated. I have attached a simplified mockup pbix file for reference.
PBIX File
This is a complicated problem for many reasons. I was able to produce this report:
by removing field "Name" from the table and replacing it a measure:
Employee Name =
CALCULATE(
SELECTEDVALUE(Employees[Name]),
CROSSFILTER(Employees[Employee_ID], Employee_History[Employee_ID], BOTH)
)
It looks exactly like the report you want, but if you have additional requirements, you'll need to make sure that such approach works for you.
If this is acceptable, a brief explanation:
the root cause of the issue is missing Employee-Budget relationship. When you put Name in the table as a filter, it doesn't propagate to the budget table and causes a cartesian product.
Removing Name from the table eliminates the need for the filter propagation, but then you won't see employee names. I solved this by pulling employee names with the measure, where required propagation is forced by CROSSFILTER function (essentially, it's like a temporary bi-directional relation only when you need it, so it does not negatively affect the rest of the model).

Creating Date Relationship in Power BI for Slicers

I'd like to slice across visuals based on dates in MS Power BI (i.e., one filter for say month will slice all visuals for that time period.
I created a date table from http://www.agilebi.com.au/power-bi-date-dimension/ to link to the date columns in each table.
I connected xlsx workbook.
Image of columns in Power BI
I added tried to edit the relationship so connect the 2 date columns. However, when I insert the filter using the date_table as values and try to use it, the visuals disappear.
Visuals are Gone
However, when I create the slicer and slice across multiple visuals, they go blank.
**I tried changing the type to "Both" but it didn't fix the problem.
The script at AgileBI.com.au creates a date table with a 'Date' field that has a data type of text. You can (surprisingly) do a relationship between 2 fields of different data types and not get an error. However, a join between a text field that contains dates, and a regular date field will mean that rows that look like they should match up do not.
You can confirm this is happening by picking a value in the 2 tables that you think should match up and seeing if they are identical. In my case, I had Tuesday, November 01, 2016 in my imported table, and 11/1/2016 in the other table. While they both represent the same date (in the US), they clearly look different. A good place to see this is in the Edit Relationship screen (and it definitely would have been helpful to include a screenshot of that in your original post).
Anyway, if the dates in your table don't match up to the corresponding (text) dates in the Date table, then when you filter to "2016" on your slicer, the visuals will all go blank.
I would recommend:
Click Edit Queries
On the left hand side, select the table of dates (called Invoked Function by the script)
Click on the header for the Date column (it will likely already be selected)
Select Transform on the ribbon
Change the Data Type from Any to Date
Click Home > Close & Apply
Hope this helps.