Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now

Reply
FU
Helper IV
Helper IV

Tracking data changes

I am trying to create a visual as per below where I can track changes in my data on a weekly basis by selecting 2 reports (as shown in the example below Week1 and Week3)

Let's take the below table as an example. Let's assume every week I run a flow to automatically grab a snapshot of the current data in my Excel file and store these files into a SharePoint folder which is connected to my PBI file.

 

Example - 

 

The week 1 table is showing my data at a given snapshot date.

 

Week 1:

Project NameProject IDProgramme IDForecastStatus
AProjectID 1ProgrammeID 1£500,000.00Status A
BProjectID 2ProgrammeID 2£500,000.00Status B
CProjectID 3ProgrammeID 3£500,000.00Status C
DProjectID 4ProgrammeID 4£500,000.00Statuc D

 

 

One week later my power flow takes a snapshot of my Excel file and stores Week 2 into my SharePoint folder

 

Week 2: (changes from week 1 and week 2 in 'Forecast' and 'Status' columns. 

Project NameProject IDProgramme IDForecastStatus
AProjectID 1ProgrammeID 1£500,000.00Status A
BProjectID 2ProgrammeID 2£640,000.00Status H
CProjectID 3ProgrammeID 3£700,000.00Status G
DProjectID 4ProgrammeID 4£500,000.00Statuc O

 

After several weeks I would have multiple snapshots of this table with data changing each week. I want to create a visual which allows me to see which field have been changed. Something like the below image:

 

If i select week 1 and week 3 in my filters, the column+row which have changes in them would be highlighted.

 

FU_0-1671579869756.jpeg

 

 

I hope this is clarifies? If not please let me know!

2 ACCEPTED SOLUTIONS

Ok, now I see that the tables are not the same. Actually - at all. This will be harder to approach, but can be done.

 

1. I've created a new folder on my computer: "D:\PowerBI\Tracking changes in files\source" that contains the files from you (you can change it later to Sharepoint folder).

2. I've prepared a parameter for you that stores folder location so you can see it later:

bolfri_0-1671626808582.png

 

3. I've created a "New source" from folder and set up a path to previously created parameter

bolfri_1-1671626865932.png

bolfri_2-1671626875609.png

4. As you can see it detects all the files in this folder, so make sure that this folder contains only a desired files. Yes, you can filter unnesessery files eg. when extenstion doesn't match, but I want to keep it simple.

bolfri_3-1671626991189.png

5. For this example I will show you how to import Overview tables from folders, but it needed to be done for each sheet that you want to track. And also - it can be done by function so it will detect all the Sheets in the file and track them all but to see if that was what you wanted lets do it manualy only 2 of them: Overview and Milestone 

bolfri_4-1671627070598.png

6. I've renamed folders, parameters and functions here, because it will be easier to understand whats goin on.

bolfri_6-1671627542252.png

 

 

7. In the "OverviewTransform SampleFile" table will add an index column so we can track changes for each row and do not lose this information.

bolfri_7-1671627560147.png

 

8. In the "OverviewTransform SampleFile" table Select Index column and then Unpivot all other columns

bolfri_8-1671627665429.png

9. In the "OverviewTransform SampleFile" table se should see something like this:

bolfri_9-1671627688419.png

10. In Overview table we should see something like this:

bolfri_10-1671627741854.png

So we have filename, index (row number in that file), columnname and value of that column.

11. Let's add a new custom column with a name of this table (Overview).

bolfri_12-1671628149077.png

 

 

12. Done. No we need to repeat that to Milestone table.

- Import from folder based on folderPath parameter

- this time select Milestone sheet

- rename queries and parameters

- add index

- unpixot rest of the columns

- add custom column

 

13. We should see something like this:

bolfri_13-1671628227331.png

 

14. Now we want to combine them into one table, so we are selecting Home > Appent Queries > As new

bolfri_14-1671628302492.png

15. Select option that you want 3 or more tables and select tables to append 

bolfri_15-1671628347093.png

 

16. Right now we have such table

bolfri_16-1671628497541.png

 

Source.Name: file names that information is coming from

SourceTable.Name: a table name from that file

Index: row index

ColumnName: business column name

Value: value of that column and index in that file

 

17. On the Overview and Milestone tables uncheck the "Unable load" option so we won't have duplicated information.

bolfri_17-1671628635437.png

This post is getting too long so let me finish here and create a new answer how to viz it.





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




View solution in original post

Step 1: Create 2 tables containing possible filter to files. Previously it Was 'Sample'Snapshot. Right now it's FilesTracker[Source.Name]

FileFilter_1 = GROUPBY(FilesTracker;FilesTracker[Source.Name])
FileFilter_2 = GROUPBY(FilesTracker;FilesTracker[Source.Name])
 
Step 1.1. (optional): I always want to write DAX in dedicated table so I've created a new calculated table DAX that holds everything.
DAX = ROW("DAX";"DAX")

Step 2: Create a value measure for File1
Value from file 1 =
var selectedFile = VALUES(FileFilter_1[Source.Name])
return CALCULATE(SELECTEDVALUE(FilesTracker[Value]);FILTER('FilesTracker';FilesTracker[Source.Name] in selectedFile))
 
Step 3: Create a value measure for File2
Value from file 2 =
var selectedFile = VALUES(FileFilter_2[Source.Name])
return CALCULATE(SELECTEDVALUE(FilesTracker[Value]);FILTER('FilesTracker';FilesTracker[Source.Name] in selectedFile))
 
Step 4: Create a measure that defines if it's a change or not
Changes detector = IF([Value from file 1]<>[Value from file 2];1;0)
 
Step 5. Put up a filter on table to see only rows that has some changes 
bolfri_0-1671630999818.png

 

Step 6. Put all filters on the page and viz it as you want 🙂

 

Final effect:

bolfri_1-1671631091452.png

 





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




View solution in original post

21 REPLIES 21

Step 1: Create 2 tables containing possible filter to files. Previously it Was 'Sample'Snapshot. Right now it's FilesTracker[Source.Name]

FileFilter_1 = GROUPBY(FilesTracker;FilesTracker[Source.Name])
FileFilter_2 = GROUPBY(FilesTracker;FilesTracker[Source.Name])
 
Step 1.1. (optional): I always want to write DAX in dedicated table so I've created a new calculated table DAX that holds everything.
DAX = ROW("DAX";"DAX")

Step 2: Create a value measure for File1
Value from file 1 =
var selectedFile = VALUES(FileFilter_1[Source.Name])
return CALCULATE(SELECTEDVALUE(FilesTracker[Value]);FILTER('FilesTracker';FilesTracker[Source.Name] in selectedFile))
 
Step 3: Create a value measure for File2
Value from file 2 =
var selectedFile = VALUES(FileFilter_2[Source.Name])
return CALCULATE(SELECTEDVALUE(FilesTracker[Value]);FILTER('FilesTracker';FilesTracker[Source.Name] in selectedFile))
 
Step 4: Create a measure that defines if it's a change or not
Changes detector = IF([Value from file 1]<>[Value from file 2];1;0)
 
Step 5. Put up a filter on table to see only rows that has some changes 
bolfri_0-1671630999818.png

 

Step 6. Put all filters on the page and viz it as you want 🙂

 

Final effect:

bolfri_1-1671631091452.png

 





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Helpful resources

Announcements
November Power BI Update Carousel

Power BI Monthly Update - November 2025

Check out the November 2025 Power BI update to learn about new features.

Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors