# Index and Match optimization

on
Following formula only find he first occurrence of value 10 and returns the column header in row 1 .. how can I make it to find all occurrence of value 10 in the row and output corresponding column header in row 1?

=INDEX(\$B\$1:\$G\$1,MATCH(10,INDEX(\$B\$2:\$G\$7,MATCH("Row 3",\$A\$2:\$A\$7,0),0),0))
Comment
Watch Question

Do more with

EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Mechanical Engineer
Most Valuable Expert 2013
Top Expert 2013

Commented:
Here is an array-entered formula you might use:
=IFERROR(INDEX(\$B\$1:\$G\$1,SMALL(IF(INDEX(\$B\$2:\$G\$7,MATCH("Row 3",\$A\$2:\$A\$7,0),0)=10,COLUMN(\$B\$2:\$G\$7)-COLUMN(\$B\$2)+1,""),COLUMNS(\$B1:B1))),"")

To array-enter a formula:
1.  Select the cell, then click in the formula bar
2.  Hold the Control and Shift keys down
3.  Hit Enter, then release all three keys
Excel should respond by adding curly braces { } surrounding the formula.

The formula will return an empty string (looks like  blank) if you don't array-enter it successfully. If so, repeat the steps.

The formula is designed to be copied across and return successive header labels until there are no more cells containing 10 in "Row 3". When the list is exhausted, the formula returns an empty string.
Mechanical Engineer
Most Valuable Expert 2013
Top Expert 2013
Commented:
Sample file with array-entered formula