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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends September 15. Request your voucher.

Find articles, guides, information and community news

Most Recent
bhanu_gautam
Super User
Super User

Writing Better DAX Starts with VAR
Ever noticed your DAX formulas taking longer to compute or becoming unreadable as they grow?

One of the easiest and most powerful optimizations you can apply in DAX is using VAR variables to store intermediate results.

In this article, we’ll walk through:

🧠 What VAR really does under the hood
🛠️ How using variables improves performance
✍️ Why your code becomes much easier to maintain
📊 A step-by-step example
🚀 Advanced tips using nested VARs

Read more...

FarhanJeelani
Super User
Super User

If you manage Power BI at scale, you’ve probably wished for a single button you could press to stop all report refreshes at once. The reality is that there isn’t a universal one-click UI button in Power BI Desktop or the service to pause all refreshes. The practical, scalable solution? Pause the datasets that feed your reports. When a dataset’s refresh is paused, all reports that rely on that dataset stop refreshing too. You can get almost the same experience as a one-click solution by automating the pause across your target workspaces using REST API, PowerShell, or a small Flow/App.

Read more...

ibarrau
Super User
Super User

On many occasions, I come across problems that could easily be solved using the Power BI REST API. I often recommend it, but I’m increasingly encountering users who feel a bit intimidated by interacting with the API.

This article will guide us through setting up the necessary configurations to authenticate and start using the Power BI REST API with Python, using SimplePBI. However, remember that the setup is independent of the programming language. Once the credentials are ready, any language can be used.

Read more...

Abhilash_P
Kudo Kingpin
Kudo Kingpin

This blog covers how to set up Copilot in Power BI Desktop and what’s required to get started

Read more...

Mahesh0016
Super User
Super User

Struggling to get your months to sort correctly in descending order within a Power BI Matrix visual? You’re not alone! In this article, we’ll walk through step-by-step techniques—using a Date table, [Date Sort] column, and smart DAX—to ensure your date and month columns always appear in the correct order.

Read more...

uzuntasgokberk
Super User
Super User

Learn how to integrate Power BI with SharePoint to embed reports, manage images, insights and collaboration.

Read more...

Royel
Solution Supplier
Solution Supplier

Are you drowning in duplicate apps? Creating separate Executive, Sales, and Finance apps that essentially show the same data with different views?

There's a smarter way. Power BI App Audiences lets you deliver personalized, role-specific experiences within a single app – no more maintenance nightmares or content duplication.

What You'll Discover:

Streamlined Navigation: Each user sees only what matters to their role
Layered Security: Combine with RLS for bulletproof data protection
Developer Productivity: Manage one app instead of dozens

Enterprise Scale: Support up to 25 audiences and 10,000 users

Perfect For:

  • CEOs who need high-level KPIs only
  • Managers requiring departmental breakdowns
  • Sales teams focused on individual performance
  • IT admins seeking centralized management

Ready to revolutionize how you deliver insights? Our step-by-step walkthrough shows you exactly how to set up audiences, manage permissions, and verify everything works perfectly.

Plus: Learn the critical workspace permission mistake that breaks App Audiences – and how to avoid it!

[Read the full guide →]

Read more...

uzuntasgokberk
Super User
Super User

Explore Power BI DAX functions with practical examples. Learn basic functions like CALCULATE, ALL, ALLSELECTED, ALLEXCEPT, DIVIDE, IF, and DATEADD, and see how to apply them in real-world scenarios.

Read more...

uzuntasgokberk
Super User
Super User

Generate and improve DAX measures with natural language using Power BI Copilot. Speed up the process, reduce errors, and quickly learn DAX patterns.

Read more...

SolomonovAnton
Super User
Super User

You can create custom roles in Power BI Report Server (on-prem) — but you do it in SQL Server Management Studio (SSMS), not in the web portal. Roles are built from predefined tasks (permissions). Tasks themselves can’t be altered, and a single role can include either item-level tasks or system-level tasks (not both).

 

How security works

  • Role = set of tasks. Tasks are fixed (e.g., View reports, Manage reports). You can combine tasks into your own role definitions. You cannot create new tasks or change task behaviour.
  • Two scopes:
    • System-level roles (site-wide operations such as managing schedules, jobs, server settings).
    • Item-level roles (permissions on folders, reports, data sources, resources). A role can include tasks from one scope only.
  • Role assignments happen in the web portal (map users/groups to roles at site level and/or on folders/reports).
Read more...

tharunkumarRTK
Super User
Super User

In my previous blog I explained bout Web.BrowserContents, in this blog I will exaplin why we should avoid using it 

 

What if the data is not on the web page? 

Let’s say you’re interested in the ‘Index of Consumer Sentiment’ data from the University of Michigan’s portal:

data.sca.isr.umich.edu/get-table.php

 

tharunkumarRTK_0-1754835719669.png

You could manually download the file and import it into Power BI Desktop — but that’s tedious. Every data update would require you to download the latest file and refresh your dataset manually. 

A better approach is to find the direct file URL from the site, usually by inspecting the anchor (<a>) tag hyperlink. Once you have this URL, connecting directly works—until you realize there is a unique file’s ID, month and year with in the URL as query parameter.  

 

https://data.sca.isr.umich.edu/get-table.php?
c=YB&y=2025&
m=6&n=1a&
f=pdf&
k=a01fbcbe6e713ac1a6d67875f5e19fc2

 

It indicates every month the URL parameter value changes. So, you’re back to square one. 

Time to roll up the sleeves and brainstorm a solution

 

Using Web.Contents and Text.FromBinary 

When you use the graphical interface and supply the web page URL, the first navigation window will show you the table it has identified but it will not show the underlying anchor tag URLs. 

 

tharunkumarRTK_1-1754835872078.png

M expression will look similar to this: 

Web.BrowserContents("https://data.sca.isr.umich.edu/tables.php") 

If you go this route, refreshing the dataset from the Power BI Service fails due to two main reasons: 

Dynamic Data Source Limitation 
Web.BrowserContents does not support data refresh from power bi service  

 

Solution 
1. Replace Web.BrowserContents with Web.Contents, and split your web URL into a root URL and a query parameter. 
Web.Contents("https://data.sca.isr.umich.edu", [RelativePath="tables.php#"]) 

tharunkumarRTK_0-1754836194538.png

 

This modification avoids issues with dynamic data sources and browser engine requirements. 

Extract the HTML using Web.Contents(), As we all know the output of this function is binary value, convert this binary to text using Text.FromBinary.  

tharunkumarRTK_1-1754836238525.png

As you can see we are able to extract the underlying HTML, the next task to identify the file url within this code. Here’s where things get tricky. As far as I know, there’s no M function that reads anchor elements directly. 

But we have workarounds! Either we can use text manipulation function like Text.BetweenDelimiter OR we can use Html.Table function. Second option would require HTML knowledge to identify the class and identifier names of different elements in the code. Since we only need one link and to keep things simple, lets solve this using text manipulation functions 

We can use functions like Text.PositionOf to locate the exact file URL. For example, in my scenario, the relative file URL is found between two position markers. As a result, you can dynamically extract the file URL. 

 

 

Text.BetweenDelimiters(
Text.BetweenDelimiters(
Text.FromBinary(
Web.Contents("https://data.sca.isr.umich.edu/tables.php#")),
"The Index of Consumer Sentiment", " </div>"),
" href=", ">")

 

 

 

tharunkumarRTK
Super User
Super User

Extracting or scraping data from publicly accessible websites is not difficult in Power BI Desktop thanks to its web connector. 

tharunkumarRTK_0-1754835387022.png

 

let 
 Source = Web.BrowserContents( 
   "https://www.worldometers.info/world-population/population-by-country/
 ) 
in 
Source  

 

If you've noticed Html.Tables being used as well, you might wonder why. The answer is simple: the output of Web.BrowserContents isn't directly a table or a readable value—it’s a binary value. You need to convert this binary data into something readable, which is where parsing functions come in. That’s why, when you’re pulling data from an API, along with Web.Contents function, functions like Json.Document, Xml.Document, or Csv.Document are invoked depending on the endpoint's data format. Similarly, data from Excel files located in Sharepoint folder will use Excel.Workbook(). 

 

Why Is Html.Tables Needed? 

Let’s break this down. Suppose the URL you provided isn’t an Excel file on SharePoint or an API endpoint, but just a publicly accessible webpage. The data is available right on the page itself, which is — naturally — in HTML format. To present tabular data in HTML, developers often use the <table> tag. So, when you use a web URL as a source in Power BI Desktop, it’s intelligence identifies the output format and automatically applies the necessary parsing functions to present your data. If the site contains multiple tables (multiple <table> tags), the navigation pane displays all of them, allowing you to choose which table you want to import. 

Since this data is publicly accessible, anonymous authentication works, and you can refresh the data from the Power BI Service.  

 

In my next blog I will continue the discussion on this topic where I will explain a practical scenario

Ilgar_Zarbali
Super User
Super User

Calculation groups can greatly minimize the need for creating duplicate measures by enabling you to define DAX expressions as calculation items, which can then be applied to the existing measures in your model. In this newsletter article, I used the AdventureWorks dataset. The Power BI Desktop file, both for practice and with solutions, can be downloaded from the following link.

https://onedrive.live.com/?id=357FB5C8090FE1B2%21s1e4f1311b59d4cad85bac9e6d2a9107e&cid=357fb5c8090fe...

Read more...

Arul
Super User
Super User

Tired of emailing .pbix files back and forth and losing track of the “latest version”?
With CI/CD in Power BI, you can automate deployments, keep perfect version control and roll back mistakes in seconds all using Azure DevOps.

In this guide, I will show you how to set it up from scratch, even if you have never touched pipelines before.

Read more...

uzuntasgokberk
Super User
Super User

Add and use Apply All and Clear All Slicers in Power BI to update visuals or reset filters with one click. Clean, fast, step-by-step guide.

Read more...

Helpful resources

Join Blog
Interested in blogging for the community? Let us know.