| Offset | Name | Size | Contents |
| 4 | iEntry | 2 | Index of the active AutoFilter |
| 6 | grbit | 2 | Option flags |
| 8 | doper1 | 10 | DOPER structure for the first filter condition (see text) |
| 18 | doper2 | 10 | DOPER structure for the second filter condition (see text) |
| 28 | rgch | var | String storage for vtString DOPER (see text) |
| Offset | Bits | Mask | Name | Contents |
| 0 | 1 – 0 | 0003h | wJoin | = 1 if the custom filter conditions are ANDed = 0 if the custom filter conditions are ORed |
| 2 | 0004h | fSimple1 | = 1 if the first condition is a simple equality (for optimization) | |
| 3 | 0008h | fSimple2 | = 1 if the second condition is a simple equality (for optimization) | |
| 4 | 0010h | fTop10 | = 1 if the condition is a Top 10 AutoFilter | |
| 5 | 0020h | fTop | = 1 if the Top 10 AutoFilter shows the top items; = 0 if it shows the bottom items | |
| 6 | 0040h | fPercent | = 1 if the Top 10 AutoFilter shows percentage; = 0 if it shows items | |
| 15 – 7 | FF80h | wTop10 | The number of items to show (from 1 to 500 decimal, expressed as a binary number) | |
| Offset | Name | Size | Contents |
| 4 | iEntry | 2 | Index of the active AutoFilter |
| 6 | grbit | 2 | Option flags |
| 8 | doper1 | 10 | DOPER structure for first filter condition (see text) |
| 18 | doper2 | 10 | DOPER structure for the second filter condition (see text) |
| 28 | rgch | var | String storage for vtString DOPER (see text) |
| Offset | Bits | Mask | Name | Contents |
| 0 | 1 – 0 | 03h | wJoin | = 1 if the custom filter conditions are ANDed = 0 if the custom filter conditions are ORed |
| 2 | 04h | fSimple1 | = 1 if the first condition is a simple equality (for optimization) | |
| 3 | 08h | fSimple2 | = 1 if the second condition is a simple equality (for optimization) | |
| 7 – 4 | F0h | (Reserved) | ||
| 1 | 7 – 0 | FFh | (Reserved) | |
| Offset | Name | Size | Contents |
| 0 | vt | 1 | Data type (see text) |
| 1 | grbitSgn | 1 | Comparison code (see text) |
| 2 | rk | 4 | RK number (see "RK" on page 376) |
| 6 | (reserved) | 4 | |
| Offset | Name | Size | Contents |
| 0 | vt | 1 | Data type (see text) |
| 1 | grbitSgn | 1 | Comparison code (see text) |
| 2 | num | 8 | IEEE floating-point number |
| Offset | Name | Size | Contents |
| 0 | vt | 1 | Data type (see text) |
| 1 | grbitSgn | 1 | Comparison code (see text) |
| 2 | (reserved) | 4 | |
| 6 | cch | 1 | Length of the string (the string is stored in rgch field that follows the DOPER structures) |
| 7 | (reserved) | 3 | |
| Offset | Name | Size | Contents |
| 0 | vt | 1 | Data type (see text) |
| 1 | grbitSgn | 1 | Comparison code (see text) |
| 2 | fError | 1 | Boolean/error flag |
| 3 | bBoolErr | 1 | Boolean value or error value |
| 4 | (reserved) | 6 | |
| Error value | Value (hex) | Value (dec.) |
| #NULL! | 00h | 0 |
| #DIV/0! | 07h | 7 |
| #VALUE! | 0Fh | 15 |
| #REF! | 17h | 23 |
| #NAME? | 1Dh | 29 |
| #NUM! | 24h | 36 |
| #N/A | 2Ah | 42 |
| vt | DOPER type |
| 00h | Filter condition not used |
| 02h | RK number |
| 04h | IEEE number |
| 06h | String |
| 08h | Boolean or error value |
| 0Ch | Match all blanks |
| 0Eh | Match all non-blanks |
| grbitSgn | Operator |
| 01 | < |
| 02 | = |
| 03 | <= |
| 04 | > |
| 05 | <> |
| 06 | >= |