How to Average Lowest Scores with Multiple Criteria in Excel
Question details
The user needs to create a complex spreadsheet formula that dynamically selects a specific number of lowest golf scores, applies adjustments based on the game count, and calculates the accurate handicap average.

- Product
- Microsoft Excel
- Device & OS
- not provided
- Scenario
- Calculating a sports handicap average where the number of lowest scores used in the average changes based on the total number of games played, utilizing lookup tables for adjustments.
- Observed behavior
- Previous attempts at the formula returned incorrect high totals (e.g., 35.5) instead of correctly isolating and averaging only the specific lowest scores (e.g., 16.9) dictated by the criteria.
Verify that your lookup tables for game counts, required lowest scores to count (e.g., Columns V:W), and adjustment values (e.g., Column X) are organized in adjacent columns without empty rows interrupting the data range.
Combine SMALL, AVERAGE, and XLOOKUP to Calculate Conditional Averages
Use the SMALL function combined with XLOOKUP to dynamically retrieve the specific array of lowest scores required based on the current game count, then calculate the average.
To achieve a dynamic average where the quantity of numbers being averaged changes based on another variable, you must generate an array using the SMALL function. By placing XLOOKUP inside the 'k' argument of SMALL, the formula automatically determines how many of the lowest scores to fetch.
Nested IF statements can be added to handle specific game count conditions and apply progressive adjustments without breaking the main averaging logic.
Ensure your main score data expands dynamically (e.g., $J$2:J12) and your game count reference is stored in a static cell like $N$1. Next, set up your lookup array in V2:V21, the corresponding number of scores to count in W2:W21, and any adjustment values in X2:X21.
Write the lookup formula to find how many scores to include based on the game count: XLOOKUP($N$1, $V$2:$V$21, $W$2:$W$21). This will act as the 'k' input to tell the SMALL function how many bottom values to extract.
Add IF conditions for specific game thresholds. For example, if $N$1 is exactly equal to the total games, apply a 0 adjustment, or fetch from the adjustment column: IF($N$1=6, XLOOKUP($N$1, $V$2:$V$21, $X$2:$X$21), ...).
Combine the elements into the final formula: =IF(COUNT($J$2:$J$12)<$N$1,"",ROUND(AVERAGE(SMALL($J$2:$J$12, XLOOKUP($N$1,$V$2:$V$21,$W$2:$W$21) + IF($N$1=COUNT($J$2:$J$12),0,IF($N$1=6,XLOOKUP($N$1,$V$2:$V$21,$X$2:$X$21),IF($N$1=4,XLOOKUP($N$1,$V$2:$V$21,$X$2:$X$21),IF($N$1=3,XLOOKUP($N$1,$V$2:$V$21,$X$2:$X$21),0)))))),1)). Press Enter to calculate the dynamic average.

Calculate Complex Averages Dynamically with WPS Spreadsheet
WPS Office Spreadsheet fully supports advanced array formulas, XLOOKUP, and conditional formatting, allowing you to easily handle dynamic averages and complicated mathematical criteria.
- 1. Open WPS Spreadsheet: Launch WPS Office and open your workbook containing the scores and lookup tables.
- 2. Enter the Formula: Select the target cell where the average should be displayed and paste your combined AVERAGE, SMALL, and XLOOKUP formula.
- 3. Evaluate Formula: If you receive unexpected results, use the 'Evaluate Formula' tool located under the Formulas tab in WPS Spreadsheet to trace how your XLOOKUP resolves step-by-step.

Frequently Asked Questions
How do I average the bottom 3 values in a list without complex lookup tables?
If you just want a static average of the 3 lowest values, you can use an array constant in the SMALL function: =AVERAGE(SMALL(A1:A10, {1,2,3})). This instantly averages the three smallest numbers in the range A1:A10.
Why does my XLOOKUP formula return an error inside the SMALL function?
The SMALL function requires a numerical 'k' value (or an array of numerical values) to know which nth position to fetch. If your XLOOKUP refers to blank cells or text values in the return array, it will cause a #VALUE! or #N/A error. Double-check that your lookup tables contain only numbers.
Is the XLOOKUP function supported in WPS Office?
Yes, WPS Office fully supports the XLOOKUP function in its most recent versions. It provides the exact same syntax and behavior as Microsoft Excel, ensuring seamless compatibility for your dynamic lookup formulas.




