Devolver nombres de columnas si hay coincidencias en la fila, buscando coincidencias múltiples [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Concatenar encabezados de columna si el valor en las filas a continuación no está en blanco 1 respuesta

Tengo una tabla con partes de la siguiente manera;

---------------
| Part number |
---------------
| 123456      |
| 16D345      |
| 16E099      |
| 490586      |
| 970884      |
---------------

Y otro así;

---------------------------------------------------
| Part number | 940822 | 940922 | 170345 | 940222 |
---------------------------------------------------
| 123456      |    X   |        |    X   |    X   |
| 16D345      |    X   |        |    X   |        |
| 16E099      |        |    X   |        |    X   |
| 490586      |    X   |        |    X   |    X   |
| 970884      |        |        |    X   |        |
---------------------------------------------------

Los números en las columnas de la segunda tabla son 'unidades'.
Estoy tratando de descubrir cómo obtener todos los números de unidad donde una parte tiene X. Básicamente quiero terminar con lo siguiente;

----------------------------------------
| Part number | Used in                |
----------------------------------------
| 123456      | 940822, 170345, 940222 |
| 16D345      | 940822, 170345         |
| 16E099      | 940922, 940222         |
| 490586      | 940822, 170345, 940222 |
| 970884      | 170345                 |
----------------------------------------

Ahora, recientemente he aprendido cómo usar INDEX y MATCH, pero no he podido obtener el resultado que quiero. He intentado usar fórmulas de matriz, pero todavía no las entiendo.

Respuestas a la pregunta(1)

Su respuesta a la pregunta