Ricerca coordinate di una tabella

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
MarcoAmabile
00martedì 26 gennaio 2016 12:00
Salve a tutti,

ho creato una tabella su excel dove ho dei precisi valori sia sulle ascisse che sulle ordinate.
Premetto che le ascisse A B C e le ordinate 1 2 3 4 non corrispondono a quelle assolute ma le ho assegnate io (es la prima X si trova nella cella avete coordinate 1A della mia tabella, ma il riferimento assoluto corrisponde a 41H). Siccome ho bisogno di riportare i valori delle coordinate nel foglio di calcolo successivo per creare un'altra tabella, c'è una funzione che selezionando la x mi riporti le coordinate corrispondenti su un'altra tabella?
es tabella 2:

ho una casella vuota dove devo riportare le cordinate della x in 1A, lo devo fare in maniera manuale o si può automatizzare?

Grazie mille,

Marco
MarcoAmabile
00martedì 26 gennaio 2016 12:16
Ho caricato un piccolo file come esempio, ovviamente la tabella è molto più grande e farla a mano c'è molto margine di errore e ci vuole molto tempo.
ninai
00martedì 26 gennaio 2016 14:41
ciao
ho il sospetto che i dati in esempio non siano esaustivi, comunque, se le X risiedono solo in B3:B6, allora la formula potrebbe essere, in B10:
=SE.ERRORE(PICCOLO(SE($B$3:$B$6="x";RIF.RIGA($A$3:$A$6)-2);RIGHE($B$10:B10))&"A";"")

da confermare come matriciale.
MarcoAmabile
00martedì 26 gennaio 2016 14:43
No , le X risiedono su tutta la tabella, la tabella ha circa 60 colonne e 70 righe. In questa tabella ci sono almeno 150 X e dovrei riportare le coordinate relative alla tabella 1 di queste X in un altra tabella.
ninai
00martedì 26 gennaio 2016 17:10
prima di cominciare a proporre formule al buio, sarebbe il caso che allegassi un file con esempi completi (X in più colonne), con i risultati attesi e senza informazioni che non centrano con la problematica (quei 10, 20, F1, F2 in che modo entrano nel problema??).
MarcoAmabile
00martedì 26 gennaio 2016 17:32
Ok, ho provato a ricreare un tabella un po' più estesa per chiarire il mio scopo.
cromagno
00mercoledì 27 gennaio 2016 02:24
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 [SM=g27833]
ninai
00mercoledì 27 gennaio 2016 07:06
ciao
devo confessare che con questo quesito mi sono "incartato", arrivando ad una soluzione rattoppata e senza averne piena consapevolezza di come funziona (ho adattato formule in archivio), sicuramente ci saranno soluzioni più semplici:

Ho nominato "tabella" il range D7:J13

in D20:
=INDIRIZZO(RESTO(PICCOLO(SE(tabella="X"; RIF.COLONNA(tabella)-3+(RIF.RIGA(tabella)-6)/1000); RIF.RIGA(A1));1)*1000;INT(PICCOLO(SE(tabella="X";RIF.COLONNA(tabella)-3+(RIF.RIGA(tabella)-6)/1000); RIF.RIGA(A1)));4)
in E20:
=INDICE($D$5:$J$5;INT(PICCOLO(SE(tabella="X";RIF.COLONNA(tabella)-3+(RIF.RIGA(tabella)-6)/1000); RIF.RIGA(A1))))

in G20:
=INDICE($A$7:$A$13;RESTO(PICCOLO(SE(tabella="X"; RIF.COLONNA(tabella)-3+(RIF.RIGA(tabella)-6)/1000); RIF.RIGA(A1));1)*1000)

attenzione alle celle unite
Sono tutte Matriciali


edit
ciao cromagno
sono così fuso che non mi ero accorto neanche del tuo intervento, ma per adesso passo, non ci sto capendo più niente [SM=x423023]


edit
nella prima, per invertire le lettere:
=ARROTONDA(RESTO(PICCOLO(SE(tabella="X"; RIF.COLONNA(tabella)-3+(RIF.RIGA(tabella)-6)/1000); RIF.RIGA(A1));1)*1000;0)&CODICE.CARATT(INT(PICCOLO(SE(tabella="X";RIF.COLONNA(tabella)-3+(RIF.RIGA(tabella)-6)/1000); RIF.RIGA(A1)))+64)
MarcoAmabile
00mercoledì 27 gennaio 2016 08:51
Re:
cromagno, 27/01/2016 02:24:

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 [SM=g27833]




Grazie mille Cromagno era proprio quello che volevo! eccetto l'ultima riga dove funzione e rischio non hanno nessun collegamento. Per eliminare quella relazione dovrei solamente cancellare la funzione?
Tuttavia ho fatto una prova, cercando di applicare le formule ad una tabella più grande ma per ora appena schiaccio invio mi risulta la cella bianca. Devo stare attento a impostare tutti i parametri.

Siete formidabili!
MarcoAmabile
00mercoledì 27 gennaio 2016 08:58
Per favore, visto che queste formule le devo usare per diverse tabelle di grandezza diversa, potresti fare uno schema di come utilizzare queste formule? Chiedo troppo? Vorrei sapere a cosa si riferiscono i numeri interi es -6, 4 o 10^5..ecc

Grazie mille
cromagno
00giovedì 28 gennaio 2016 07:58
Ciao Marco,
prova a capirla da solo tramite il "Valuta formula" di excel...
è l'unico modo per capirla adeguatamente.

Se anche con quello dovessi avere problemi allora proverò a spiegartela...
[SM=x423053]
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 04:56.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com