How to use the DGET function
What is the DGET function?
The DGET function fetches a value from a column in a database whose records meet a condition or criteria.
Table of Contents
1 . Introduction
What is DGET an abbreviation of?
DGET is an abbreviation of Database Get.
What is GET?
There is no function named GET in Excel, however, FILTER, VLOOKUP, HLOOKUP, LOOKUP, and XLOOKUP are somewhat similar in functionality.
What happens if the DGET function matches multiple values?
You get an error value, see section 5 below. I recommend the new Excel 365 FILTER function, it returns multiple matches if needed. You can find an example in section 5 below.
What is a database in this context?
Excel defines a database as a list of related data in which rows of related information are records, and columns of data are fields. The first row of the list contains labels for each column.
Where can you place the criteria range?
You can place your criteria range wherever you want on your worksheet, however, it is not recommended below the list/database. The function needs a blank row below the list to work properly.
What criteria characters are allowed?
Allowed criteria range characters are less than and greater than signs <>, use them to specify a criteria range. Also, asterisks * can be used to match partial strings.
How to calculate the DGET for the entire list/database?
To include the entire list/database enter a blank line below the criteria range column labels.
2. Syntax
DGET(database, field, criteria)
database | Required. The cell reference to a list or database. |
field | Required. The field argument lets you choose which column to use. You can use the column name enclosed with double quotation marks or the corresponding column number. |
criteria | Required. A cell reference to the criteria range. The criteria range needs to have column labels and at least one condition below the column label. |
3. Example 1
In a sales database, you want to get the sales number from the "Number" column where the "Item" column is equal to "A412". How can you use the DGET function to get this value?
The data in cell range B6:D12 in the image above, here is that data:
Item | Size | Number |
A102 | M | 370 |
A103 | L | 690 |
A099 | S | 310 |
A412 | S | 190 |
A341 | L | 550 |
A340 | M | 730 |
The criteria are in cell range B2:B3:
Item |
A412 |
The arguments are:
database = B6:D12
field = 3
criteria = B2:B3
This example uses one condition to get a single value from column "Number". The condition is specified in cell B3 and and is applied to column "Item".
The condition "A412" matches cell B10 and the value in column "Number" on the same row is "190".
Formula in cell B15:
The formula returns "190" in cell B15.
4. Example 2
In a sales database, you want to get the product from the "Item" column where the "Size" column is equal to "M" and the "number" column has a value larger than 700. Both conditions must match on the same row. How can you use the DGET function to get this value?
The data in cell range B6:D12 in the image above, here is that data:
Item | Size | Number |
A102 | M | 370 |
A103 | L | 690 |
A099 | S | 310 |
A412 | S | 190 |
A341 | L | 550 |
A340 | M | 730 |
The image above shows how to use two criteria and both conditions must match on the same row. The conditions are:
- "M" in column "Size"
- ">700" in column "Number"
The arguments are:
database = B6:D12
field = 1
criteria = B2:C3
The conditions are entered on the same row which is row 3, this means that both conditions must match, in other words "AND"-logic.
Formula in cell B15:
The formula extracts a value from column Item based on two conditions. The size must be M and number must be above 700. Only one record match, the function returns A340 in cell B15.
5. DGET Function not working
The DGET function returns a #NUM error if there is more than one match. The image above demonstrates this error, the condition is specified in cell B3 which is "M" and is applied to column "Size" which is specified in cell B2.
Formula in cell B15:
The result in cell B15 is a #NUM error and this is because there are two cells that match the condition. They are cells C7 and C12, the DGET function can't return both matches, instead a #NUM error is displayed. A workaround is to use the new FILTER function available to Excel 365 subscribers.
Excel 365 dynamic array formula in cell B15:
This formula returns an array of values if necessary, it spills the values to cell B15 and cells below as far as needed. The example above returns values "370" and "730" in cells B15 and B16.
This example shows a #VALUE! error that is triggered if no values match at all. The first condition is specified in cell B3 and is "M" applied to column "Size". The second condition is "B*" which is applied to column "Item".
The asterisk lets you look for any number of characters, in this case, the condition means that any cell value that begins with "B" regardless of the remaining characters is a match. However, none of the cells in C7:C12 match this condition.
Formula in cell B15:
The result is a #VALUE error, there are no records that match both conditions.
Functions in 'Database' category
The DGET function function is one of 11 functions in the 'Database' category.
How to comment
How to add a formula to your comment
<code>Insert your formula here.</code>
Convert less than and larger than signs
Use html character entities instead of less than and larger than signs.
< becomes < and > becomes >
How to add VBA code to your comment
[vb 1="vbnet" language=","]
Put your VBA code here.
[/vb]
How to add a picture to your comment:
Upload picture to postimage.org or imgur
Paste image link to your comment.
Contact Oscar
You can contact me through this contact form