How to Filter a Selected Excel Table Column with a Dynamic Array Formula in WPS Office
Question details
The user needs an efficient dynamic array formula that filters a selected column from a structured Excel Table and removes blank values, while automatically accommodating changes in imported data size.

- Product
- WPS Office Spreadsheets
- Device & OS
- not provided
- Scenario
- Imported data changes size, and the user wants to avoid INDIRECT and multiple helper cells when returning a selected column based on a header name.
- Observed behavior
- The existing INDIRECT and helper-cell approach is not reliable when imported data changes row and column counts; the goal is a structured table-based dynamic array formula.
Before entering the formula, make sure the imported data range has a header row and that headers are unique. If the data is generated by Python, either have Python create an Excel table or convert the returned range to a table before referencing PythonData.
Filter a Selected Excel Table Column with a LET and FILTER Dynamic Array Formula
Use this method when imported data changes size and you want a single dynamic formula that excludes blank cells without helper cells or INDIRECT.
Structured references automatically expand as the table grows or shrinks, making the formula reliable for imported data. LET stores the first FILTER result so you can filter out blanks in the same cell.
Select the imported data or have Python create the table. Go to the Insert tab, click Table, confirm the range and check My table has headers, then name the table PythonData in the Table Name box or Table Design tab.
Type the exact column header you want to return into cell A1 or another single cell, and update the formula reference to that cell.
In the cell where you want the filtered column to start, enter =LET(selected,FILTER(PythonData,PythonData[#Headers]=$A$1),FILTER(selected,selected<>"")) and press Enter.
Verify that the returned list automatically includes only the selected header column and excludes blank cells. Add or remove table rows to confirm the spill range adjusts.

Filter a Selected Table Column Dynamically in WPS Office Spreadsheets
WPS Office Spreadsheets supports dynamic array formulas and structured table references, so you can use LET and FILTER to return a selected column and exclude blanks in one step. Open your existing Excel workbook, convert the imported range to a table, and enter the same formula.
- 1. Download and open WPS Office Spreadsheets: Download WPS Office, launch WPS Spreadsheets, and open the workbook that contains the imported data.
- 2. Convert the data to a structured table: Select the imported range, go to Insert > Table, check My table has headers, and rename the table to PythonData.
- 3. Enter the dynamic array formula: Type =LET(selected,FILTER(PythonData,PythonData[#Headers]=$A$1),FILTER(selected,selected<>"")) in the output cell and press Enter.
- 4. Review the spill range: Confirm that the selected header column appears without blank cells and updates when rows or columns are added.

Frequently Asked Questions
Why should I use a structured Excel Table instead of INDIRECT for filtering a selected column?
A structured table like PythonData has references that automatically expand or shrink as imported data changes row and column counts, so the FILTER formula remains reliable without helper cells or volatile INDIRECT.
How do I make the formula remove blank cells from the selected column?
The LET function stores the header-filtered result as selected, then the second FILTER uses selected<>"" to return only non-empty values from that column.
Can I use this dynamic array formula in WPS Office?
Yes. Open the workbook in WPS Office Spreadsheets, convert the imported range to a table, and enter the LET and FILTER formula. It works with .xlsx workbooks and Excel-compatible dynamic arrays.
What should I do if the header name changes or is in a different cell?
Update the cell reference in PythonData[#Headers]=$A$1 to point to the cell containing the desired header, and make sure the header text matches exactly including case and spacing.




