The $O$1-1 was just subtracting 1 from the linked cell value that appeared in O2 as a result of your selection... since you have a blank as the first selection the formula had to incorporate the offset of 1. I hadn't noticed that you had a different range of names to point your drop down list to in M3:M7... and I guess I assumed that the list in I12:K15 was the main list and therefore the names were listed in the same order...
So instead it would have been better to use:
=IFERROR(INDEX($J$12:$L$15,MATCH(INDEX($M$3:$M$7,$O$1),$J$12:$J$15,0),COLUMNS($A$1:A$1)),"")
or
=IFERROR(INDEX(J$12:J$15,MATCH(INDEX($M$3:$M$7,$O$1),$J$12:$J$15,0)),"")
...but now with your new problem of duplicate matches, instead try:
=IFERROR(INDEX(J$12:J$2000,SMALL(IF($J$12:$J$2000=INDEX($M$3:$M$7,$O$1),ROW($J$12:$J$2000)-ROW($J$12)+1),ROWS($A$1:$A1))),"")
confirmed with CTRL+SHIFT+ENTER not just ENTER and copied down as far as you need (without going too far as the formula becomes less efficient) and copied across the 3 columns.
Bookmarks