How to Pass Multiple Values in Filter in Power BI
Trying to filter your Power BI report by a specific list of customers, products, or marketing campaigns can feel surprisingly tricky. While filtering by a single value is straightforward, applying a filter for dozens or even hundreds of specific items at once requires stepping beyond the basic options. This article will walk you through several effective methods for passing multiple values in a Power BI filter, from simple user interface tricks to more powerful DAX and Power Query techniques.
Using Checkboxes in a Basic Slicer or Filter
The simplest way to filter by a few specific values is by using the default multi-select feature built into Power BI's slicers and filter pane. It's not the most scalable solution, but for short lists, it's quick and effective.
Step-by-Step Instructions:
- Add a Slicer or Use the Filter Pane: Drag the field you want to filter by (e.g., "Product Name" or "Country") onto your report canvas to create a slicer, or add it to the "Filters on this page" section in the Filters pane.
- Enable Multi-Select: If you're using a slicer, the default list view allows you to select multiple items by holding down the Ctrl key while clicking. You can customize this behavior under the slicer's formatting options. In the Format Visual pane, go to Slicer settings > Selection and turn on the "Multi-select with CTRL" option. Now your users can easily pick multiple items.
- Select Your Values: Simply check the boxes next to each item you want to include in your filter. The report will update in real-time to reflect your selections.
When to use this method: This approach is ideal for interactive reports where end-users need to select a small, manageable number of items from a list. It’s intuitive and requires no technical setup.
Limitations: This becomes impractical when you need to filter by a very long list of values. Manually finding and checking 50 specific product IDs in a list of thousands is inefficient and prone to errors.
Free PDF · the crash course
AI Agents for Marketing Crash Course
Learn how to deploy AI marketing agents across your go-to-market — the best tools, prompts, and workflows to turn your data into autonomous execution without writing code.
Advanced Filtering with Multiple "CONTAINS" or "IS" Conditions
For one-off analyses where you have a short list of text values, the advanced filtering capabilities in the Filters pane can be a useful alternative to manually checking boxes, especially if your values have common patterns.
How an "OR" Condition Works
The key here is using the "OR" logic in your filtering rules. This tells Power BI to include any row that meets at least one of the conditions you set.
Step-by-Step Example
Let’s say you want to see sales data for only three specific countries: the United States, United Kingdom, and Canada.
- Drag the "Country" field into the "Filters on this page" or "Filters on this visual" well.
- In the filter card, change the Filter type from "Basic filtering" to Advanced filtering.
- In the "Show items when the value" section, leave the first rule as is and type "United States" in the value box.
- Below that rule, you’ll see an option for "And" / "Or". Click it and select Or.
- A second rule will appear. Set this one to is and type "United Kingdom".
- Click "Add filter" to add a third rule. Make sure it's also connected with Or and set the value to is "Canada".
- Click Apply filter. Your visual will now only show data for these three countries.
When to use this method: This is best for situations where you have a small, fixed list of values (fewer than 10-15) and don't want to create clutter with a visible user slicer on your report page.
Limitations: Just like the first method, this doesn't scale well. Manually typing 100 different SKUs into the filter pane is not a good use of time.
Filtering with Another Table (The Disconnected Table Method)
Here is where we get into more powerful and scalable solutions. Let's say you have a list of 200 customer IDs from a marketing campaign saved in an Excel spreadsheet. You can use this list to filter your main sales data table in Power BI using a disconnected table and a simple DAX measure.
Part 1: Create a Disconnected Filter Table
A "disconnected table" is just a table you import into Power BI that has no formal relationship with your other data tables in the model view. Its only purpose is to hold the list of values you want to use as a filter.
- Go to the Home tab in Power BI Desktop and click Enter Data.
- A window will pop up allowing you to create a tiny table. Rename "Column1" to something descriptive, like "FilterCustomerID."
- Now, copy your list of customer IDs from your spreadsheet or text file and paste them directly into this column.
- Name the table something clear, like "CampaignCustomers," and click Load.
- Important: Go to the "Model" view in Power BI. You will see your new table. If Power BI automatically created a relationship between your new table and your main data source, delete that relationship. We want this table to remain disconnected.
Part 2: Write a DAX Measure to Apply the Filter
Next, we need to create a simple DAX measure that will act as a flag, identifying which rows in your main data table should be shown.
- Navigate back to the "Report" view. Right-click on your main data table (e.g., "Sales") and select New measure.
- In the formula bar, enter the following DAX formula. Be sure to replace the table and column names with your own.
Show Customer = IF(
MAX('Sales'[CustomerID]) IN VALUES('CampaignCustomers'[FilterCustomerID]),
1,
0
)Let's break down this DAX code:
MAX('Sales'[CustomerID]): This looks at the Customer ID for each row in the visual.VALUES('CampaignCustomers'[FilterCustomerID]): This creates a unique list of all the customer IDs from our disconnected filter table.IN: This operator checks if the Customer ID from the 'Sales' table exists anywhere inside the list from the 'CampaignCustomers' table.IF(..., 1, 0): This is a simple conditional check. If the Customer ID is found in the list, the measure returns 1. If not, it returns 0.
Part 3: Apply the Measure as a Filter
- Select the visual (like a table or matrix) you want to filter.
- Drag the new [Show Customer] measure you just created into the Filters on this visual well in the Filters pane.
- A filter card will appear for the measure. In the filter card details, set the condition to is 1 and click Apply filter.
Your visual is now filtered to only show data for the customers in your externally provided list!
When to use this method: This is a powerful technique for when you have a dynamic, external list of items to filter by. You can easily update the 'CampaignCustomers' table without having to rework your DAX or report visuals.
Using Power Query to Merge and Filter Data
What if you always want a dataset to be pre-filtered by a specific list of values before it even gets loaded into your Power BI data model? This is a great job for Power Query. By merging your main data with your list of filter values, you can effectively discard any non-matching rows upstream.
Free PDF · the crash course
AI Agents for Marketing Crash Course
Learn how to deploy AI marketing agents across your go-to-market — the best tools, prompts, and workflows to turn your data into autonomous execution without writing code.
Step-by-Step Instructions
- First, make sure your primary data source (e.g., 'AllSales') and your list of filter values (e.g., from an Excel file named 'TargetRegions') are both loaded as separate queries in the Power Query Editor. You can open it by clicking Transform Data on the ribbon.
- Select your 'AllSales' query in the left-hand Queries pane.
- Go to the Home tab on the Power Query ribbon and click Merge Queries.
- The Merge window will open. In the top dropdown, your 'AllSales' table should already be selected. Select the common column you want to filter on, for example, the 'RegionID' column.
- In the bottom dropdown, select your 'TargetRegions' table. Click its corresponding column as well — the matching 'RegionID' column.
- Now, look at the Join Kind setting. This is the most important part. Change the join kind to Inner (only matching rows). This tells Power Query to only keep the rows in 'AllSales' that have a matching 'RegionID' in the 'TargetRegions' table.
- Click OK.
- You’ll be taken back to your 'AllSales' query, and it will now have a new column on the far right. You don’t need the contents of this new column — the filtering is already done. Right-click its header and select Remove.
- When you are finished, click Close & Apply.
Now, your Power BI data model will only contain data matching your target list of values. This can vastly improve report performance by reducing the overall size of your dataset.
When to use this method: This is the best approach when you have a large dataset and a defined, relatively static list of items that you always want to filter for. This approach permanently restricts the data loaded into your report, boosting performance and simplifying the data model for end-users.
Final Thoughts
As you can see, Power BI offers layered solutions for filtering your data by multiple values. While a simple multi-select slicer is great for user-driven exploration, techniques leveraging DAX and Power Query provide the scalable power needed for filtering based on long, dynamic, or external lists of items.
Learning these methods can greatly enhance your report processing efficiency but also highlights a point: mastering traditional business intelligence tools indeed requires a certain amount of learning time and effort. If you are just looking to quickly obtain answers, we have developed Graphed . You simply need to describe your needs — for example, 'Show me the sales data of products A, B, and C from last month' — and we'll instantly create an interactive dashboard for you. This saves you the hassle of step-by-step operations, and the entire process takes just a few seconds.
Related Articles
How to Create Facebook Ads API for Claude Code
Create a Meta Marketing API access token that never expires, using a system user, so Claude Code can pull Facebook ad reports and manage campaigns.
ClickHouse vs Postgres: When to Switch to Columnar
Comparing ClickHouse vs PostgreSQL means matching storage architecture to workload. Row storage wins for transactions. Columnar wins for scan-heavy analytics.
Google Ads for Orthodontists: Get More Booked Consults
Most orthodontic Google Ads campaigns waste money on low-intent searches. The problem is structure, not the platform.