Forum Discussion
Index and match mystery (for me that is...)
- Dec 26, 2025
=INDEX(C21:C36;MATCH(C48;A21:A36);1)or
=XLOOKUP(C48;A21:A36;C21:C36;;-1;1)
Helloeacrusher,
You’re very close the issue is that your formula is trying to use `MATCH` in approximate mode against a manipulated array, which doesn’t reliably test whether a value falls between two bounds. The clean way to do this is with a between‑bounds check:
=INDEX(C21:C36, MATCH(1, (C48>=A21:A36)*(C48<=B21:B36), 0))
• C48 → player’s formal handicap
• A21:A36 → “From” values
• B21:B36 → “To” values
• C21:C36 → strokes awarded
This works because `(C48>=A21:A36)*(C48<=B21:B36)` creates an array of 1s and 0s (TRUE/FALSE). `MATCH(1,…,0)` finds the first row where both conditions are TRUE, and `INDEX` returns the strokes from column C.
In your example, with handicap 21.3, the formula correctly returns 4 because 21.3 is between 19.5 and 22.5.
Notes:
• In older Excel, confirm with Ctrl+Shift+Enter (array formula). In Microsoft 365, just press Enter.
• Make sure your ranges don’t overlap or leave gaps, and that the numbers are stored as numbers (not text).
• If your ranges are continuous and sorted, you could simplify further with `VLOOKUP` in approximate mode, but the formula above handles explicit From/To ranges directly.