Ciao a tutti,
se ho capito correttamente, dovresti usare tutte formule matriciali (quindi da confermare con CTRL+MAIUSC+INVIO) con qualche accorgimento...
Sono abbastanza lunghe in modo da renderle un pò dinamiche, ma non sono formule complicate.
Nell'ultimo foglio che hai allegato ho spostato la tabella 2 (adesso va dalla colonna L alla colonna O) per poter levare le celle unite (le celle unite non vanno d'accordo con le formule matriciali).
Quindi, per la Tabella 2:
Cella M20 (formula matriciale) per le coordinate:
=SE.ERRORE(PICCOLO(SE.ERRORE(SE($D$7:$J$13="x";RIF.RIGA($D$7:$J$13)+RIF.COLONNA($D$7:$J$13)*10^5;"")-6-PICCOLO(SE($D$7:$J$13="x";RIF.COLONNA($D$7:$J$13)*10^5;"");RIF.RIGA(J1));"");RIF.RIGA(J1))&SINISTRA(INDIRIZZO(1;PICCOLO(SE.ERRORE(SE($D$7:$J$13="x";RIF.COLONNA($D$7:$J$13);"")-3;"");RIF.RIGA(J1));4);LUNGHEZZA(INDIRIZZO(1;PICCOLO(SE.ERRORE(SE($D$7:$J$13="x";RIF.COLONNA($D$7:$J$13);"")-3;"");RIF.RIGA(J1));4))-1);"")
Cella N20 (formula matriciae) per il nome dell'elemento:
=SE(M20="";"";INDICE($D$5:$J$5;CONFRONTA(SINISTRA(INDIRIZZO(1;PICCOLO(SE.ERRORE(SE($D$7:$J$13="x";RIF.COLONNA($D$7:$J$13);"")-3;"");RIF.RIGA(J1));4);LUNGHEZZA(INDIRIZZO(1;PICCOLO(SE.ERRORE(SE($D$7:$J$13="x";RIF.COLONNA($D$7:$J$13);"")-3;"");RIF.RIGA(J1));4))-1);$D$6:$J$6;0)))
Cella O20 (formula matriciale) per la funzione:
=SE(M20="";"";INDICE($A$7:$A$13;SINISTRA(M20;SOMMA(SE(VAL.NUMERO(STRINGA.ESTRAI(M20;RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(M20)));1)*1);1;0)))))
Cella L20 per la numerazione:
=SE(M20="";"";RIGHE($1:1))
Fatto questo, copia il range di celle L20:O20 verso il basso.
Ti lascio il file in allegato....
P.S.
Sempre nell'ultimo file allegato, avevi scritto tutte le "funzioni" sbagliate quindi non son sicuro se quello che ti ho proposto è realmente quello che volevi ottenere