How to Calculate Insurance Premiums by Age with Excel Formulas
Question details
The user needs an Excel formula to retrieve a specific insurance premium rate from a data table based on two variables: the selected sum insured and the person's age group.

- Product
- Microsoft Excel
- Device & OS
- not provided
- Scenario
- Creating an automated quotation tool or spreadsheet where the premium cost is looked up dynamically based on age and coverage amount.
- Observed behavior
- The goal is to accurately pull the corresponding premium value from a 2D table using row (sum insured) and column (age group) matching criteria.
Ensure your premium rate table is clearly structured as a 2D matrix, with the 'Sum Insured' amounts listed in a single column (e.g., Column A) and the 'Age Groups' formatted as column headers across the top row.
Use INDEX and MATCH for a Two-Way Lookup
This is the most robust and highly recommended method for extracting data based on both row (sum insured) and column (age group) criteria simultaneously.
The INDEX function returns the value of a cell in a specific row and column of a range. By combining it with two MATCH functions, we can dynamically find the correct row number for the coverage amount and the correct column number for the age group.
Locate the sheet containing your rates (e.g., 'Premium Sheet'). Assume coverage amounts are in A2:A11, age groups are in B1:H1, and the actual premium values are in B2:H11.
In your calculation sheet, assuming the selected sum insured is in cell A2, use MATCH(A2, 'Premium Sheet'!$A$2:$A$11, 0) to find which row contains the coverage amount.
Assuming the selected age group is in cell B2, use MATCH(B2&"*", 'Premium Sheet'!$B$1:$H$1, 0) to find which column header matches the age group. The wildcard "*" helps if there is trailing text.
Select your result cell and enter the complete formula: =INDEX('Premium Sheet'!$B$2:$H$11, MATCH(A2, 'Premium Sheet'!$A$2:$A$11, 0), MATCH(B2&"*", 'Premium Sheet'!$B$1:$H$1, 0)). Press Enter to see the calculated premium.

Use VLOOKUP Combined with MATCH
An alternative approach if you prefer VLOOKUP for row searching but still need dynamic column indexing for the age group.
Calculate Premiums Easily with WPS Spreadsheets
WPS Office provides powerful built-in spreadsheet functions, including INDEX, MATCH, and VLOOKUP, allowing you to build dynamic insurance premium calculators seamlessly.
- 1. Open your premium workbook: Launch WPS Spreadsheets and open your .xlsx or .et file containing the premium rate table.
- 2. Select the target cell: Click on the cell where you want the calculated premium to appear for the client.
- 3. Enter the formula: Type your =INDEX(..., MATCH(), MATCH()) formula. WPS will provide auto-complete suggestions to help you select the correct ranges.
- 4. Get your result: Press Enter to instantly retrieve the accurate premium from your data table without lag.

Frequently Asked Questions
Why is my INDEX MATCH formula returning an #N/A error?
The #N/A error usually means the lookup value (sum insured or age) does not exactly match the data in your premium table headers or rows. Check for accidental trailing spaces, mismatched data types (e.g., numbers stored as text), or adjust your wildcard usage.
Can I calculate premiums using an exact age instead of age groups?
Yes. If your table uses minimum ages for brackets rather than text groups (like '20-29'), you can change the MATCH function's match_type argument from 0 (exact match) to 1 (less than). Ensure your age brackets are sorted in ascending order for this to work properly.
What is the advantage of INDEX MATCH over standard VLOOKUP?
INDEX MATCH allows for two-way lookups, meaning it dynamically searches both rows and columns. It is also more resilient; if you insert or delete columns in your premium table, an INDEX MATCH formula continues to work, whereas a standard VLOOKUP with a hardcoded column index number would break.




