Fix DGET Function Not Accepting Inline Array Criteria in Excel
Question details
The user is experiencing an issue where the DGET function fails to process inline arrays or dynamically generated arrays directly within the formula's criteria argument.

- Product
- Spreadsheet
- Device & OS
- not provided
- Scenario
- Writing a database formula (such as DGET) and attempting to use an inline array or a VSTACK formula result directly as the criteria condition.
- Observed behavior
- The DGET function returns an error because it strictly requires a worksheet cell range for its criteria argument and does not recognize inline arrays or memory-based dynamic arrays.
Ensure you have a few blank cells available above or beside your main dataset to manually input your database criteria headers and conditions.
Use Dedicated Worksheet Cells for the Criteria Range
The standard and required method for using database functions like DGET is to reference physical worksheet cells that contain the criteria headers and values.
Database functions in spreadsheet software are designed to read criteria from a specific range on the sheet. They cannot process inline arrays like {"Height";">16"} directly inside the formula arguments.
In a blank cell outside your dataset, type the exact column header name you want to filter by (e.g., type 'Height' in cell G1).
In the cell immediately below the header, type your specific condition (e.g., type '>16' in cell G2).
Modify your DGET formula to reference these specific cells. For example, use =DGET(A1:D100, "Name", G1:G2) instead of manually typing the array.

Reference a Spilled Dynamic Array
If you are generating your criteria dynamically using functions like VSTACK, you must let the result spill into worksheet cells first before referencing it in DGET.
Master Database Functions in WPS Spreadsheet
WPS Spreadsheet fully supports advanced database functions like DGET, DSUM, and DCOUNT. You can easily set up criteria ranges on your sheets to extract and manage specific data from large datasets.
- 1. Open your data file: Launch WPS Spreadsheet and open the document containing your database.
- 2. Create a criteria range: Select blank cells to type your criteria column headers and their corresponding conditions.
- 3. Apply the DGET formula: Type =DGET into your target cell, select your database range, the field you want to extract, and highlight your newly created criteria cells.
- 4. Extract the data: Press Enter to instantly retrieve the specific record that matches your conditions.

Frequently Asked Questions
Can I use VSTACK directly inside DGET's criteria argument?
No, DGET strictly requires a physical cell range. You cannot nest dynamic array functions like VSTACK directly into the criteria argument. You must output the VSTACK result to a worksheet cell first and reference that spilled range.
Which other functions share this criteria range limitation?
All database functions that begin with the letter 'D' share this requirement. This includes functions like DSUM, DCOUNT, DMAX, DMIN, and DAVERAGE. None of them accept inline arrays for criteria.
Why do spilled arrays work but inline arrays fail in DGET?
A spilled array occupies physical cells in the worksheet, giving the data concrete cell addresses (like A1:A2), which satisfies the DGET function's requirements. An inline array like {"A";"B"} only exists in the software's memory during calculation and lacks a physical cell reference.




