Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Excel funzione INDIRECT

Linguaggi e sistemi

Moderatori: Foto UtenteMassimoB, Foto UtentePaolino, Foto Utentefairyvilje

0
voti

[1] Excel funzione INDIRECT

Messaggioda Foto Utenteelfo » 19 mag 2024, 10:50

Presento qui sotto il comportamento della funzione INDIRECT in Excel 2007.

i riferimenti sono alla figura qui sotto.

Consideramo due fogli (Sheet1 e Sheet2) che contengono nella cella D4 il valore 33 (sheet1) e 44 (sheet2) - celle a fondo rosso

Nello Sheet1 scriviamo (in due posizioni arbitrarie) le seguenti due formule (molto simili?)
Codice: Seleziona tutto
=INDIRECT(Sheet2!D1&A4)

Codice: Seleziona tutto
=INDIRECT("Sheet2"&"!"&D1&A4)


Il risultato della prima formula e' 33 - cella riquadrata di blu

Il risultato della seconda formula e' 44 - cella riquadrata di blu

Con la prima formula la funzione INDIRECT "pesca" l'indirizzo della cella da cui copiare il valore nello Sheet2 (D1= D e A4 =4 - celle riquadrate di verde) formando l'indirizzo D4 e copia il valore della cella D4 dello Sheet1 (33) nella posizione con la formula dello Sheet1

Con la seconda formula la funzione INDIRECT "pesca" l'indirizzo della cella da cui copiare il valore nello Sheet1 (D1= D e A4= 4 - celle riquadrate di verde) formando l'indirizzo D4 e copia il valore della cella D4 dello Sheet2 (44) nella posizione con la formula dello Sheet1

Riassumendo:

- Prima formula:

-- indirizzo da Sheet2
-- dato da Sheet1
-- copia in Sheet1 (cella con formula)

- Seconda formula:

-- indirizzo da Sheet1
-- dato da Sheet2
-- copia in Sheet1 (cella con formula)
ExcelIndirect1.jpg
Avatar utente
Foto Utenteelfo
6.524 4 5 7
G.Master EY
G.Master EY
 
Messaggi: 2724
Iscritto il: 15 lug 2016, 13:27

0
voti

[2] Re: Excel funzione INDIRECT

Messaggioda Foto UtenteEdmondDantes » 19 mag 2024, 11:38

elfo ha scritto:molto simili?


Non sono la stessa cosa.
Non ho capito se il tuo è un dubbio o hai voluto mostrare questo comportamento solo apparentemente anomalo.
Il Conte di Montecristo

Se non studio un giorno, me ne accorgo io. Se non studio due giorni, se ne accorge il pubblico.

Io devo studiare sodo e preparare me stesso perché prima o poi verrà il mio momento.
Abraham Lincoln
Avatar utente
Foto UtenteEdmondDantes
11,9k 8 11 13
Disattivato su sua richiesta
 
Messaggi: 3619
Iscritto il: 25 lug 2009, 22:18
Località: Marsiglia

0
voti

[3] Re: Excel funzione INDIRECT

Messaggioda Foto Utenteelfo » 19 mag 2024, 14:19

EdmondDantes ha scritto:Non ho capito se il tuo è un dubbio

Grazie per la risposta.

Confesso di non aver capito bene la sintassi della funzione INDIRECT.

Ho scritto qui sia per avere un chiarimento sia a mia futura memoria quando dovro' usarla.
Avatar utente
Foto Utenteelfo
6.524 4 5 7
G.Master EY
G.Master EY
 
Messaggi: 2724
Iscritto il: 15 lug 2016, 13:27

2
voti

[4] Re: Excel funzione INDIRECT

Messaggioda Foto UtenteEdmondDantes » 19 mag 2024, 15:17

Dì niente.

La sintassi di INDIRECT() è semplice. Non credo ci sia altro da dire oltre a quanto riportato nel manuale di Microsoft Excel.
A INDIRECT() passi il riferimento a una cella che deve contenere a sua volta il riferimento a un'altra cella dalla quale leggere e mostrare il contenuto. Indirettamente, riferendoti alla prima cella, leggi il contenuto della seconda cella.
Questo è il funzionamento di base della funzione.

E' interessante invece la questione che hai mostrato sull'argomento della funzione, così come impostato da te. E' un gioco di parentesi, stringhe e concatenazione di valori. Un po' complicato da spiegare con il tuo esempio, considerando che in entrambi i fogli hai fatto riferimento alle stesse colonne D, A e alla stessa cella D4. Non faccio altro che ripetere D1, A4 e D4, anche se appartengono a fogli diversi. :mrgreen:

Hai passato solo l'argomento obbligatorio, pertanto il riferimento a una cella deve essere di tipo A1, cioè una lettera e un numero (o un qualsiasi altro nome assegnato alla cella tramite la casella nome).
Nel tuo caso stai passando il contenuto delle celle D1 e A4, combinandoli: "D4". Legge indirettamente il valore "D4" e restituisce il contenuto della cella D4. Lasciamo stare per il momento i fogli di riferimento.
Se passassi direttamente D4 troveresti un #RIF! perché in D4 non c'è il riferimento a nessun'altra cella. Se passassi invece "D4" otterresti 33 perché hai passato la stringa "D4" non D4, cioè il contenuto della cella D4. Se passassi A10 e in A10 hai B5, allora la funzione mostrerebbe il contenuto di B5. E' necessario creare il passaggio indiretto: leggere una stringa dalla prima cella o passare direttamente una stringa per mostrare il contenuto della seconda cella richiamata.

Vediamo come hai creato questi riferimenti, ricordando che la formula è scritta nello sheet1, pertanto i risultati saranno mostrati solo in esso. Inoltre i riferimenti puntano allo sheet1, salvo diversa dichiarazione esplicita.

Nel primo caso hai scritto:
Codice: Seleziona tutto
Sheet2!D1&A4

Cosa significa? Concatena il contenuto di D1 dello sheet2 al contenuto di A4 dello sheet1. Hai formato "D4". Quale D4? Quello dello sheet1. La funzione mostrerà il valore 33.

Nel secondo caso hai scritto
Codice: Seleziona tutto
"Sheet2"&"!"&D1&A4

Questo è diverso dal primo caso. Il risultato intermedio è
Codice: Seleziona tutto
"Sheet2!D4"

D4 lo hai scritto con i dati di D1 e A4 dello sheet1 e il risultato finale (intermedio) è "Sheet2!D4", cioè la cella D4 dello sheet2. La funzione mostrerà nello sheet1 il valore 44.

Il contenuto della cella A4 dello sheet2 è irrilevante nel tuo caso perché non è letto da nessuna delle due funzioni.
Spero di non aver fatto confusione visto che ho elaborato i dati con il computer biologico :mrgreen:
Ci saranno sicuramente altre possibilità. Qui mi sono limitato al tuo esempio.
Il Conte di Montecristo

Se non studio un giorno, me ne accorgo io. Se non studio due giorni, se ne accorge il pubblico.

Io devo studiare sodo e preparare me stesso perché prima o poi verrà il mio momento.
Abraham Lincoln
Avatar utente
Foto UtenteEdmondDantes
11,9k 8 11 13
Disattivato su sua richiesta
 
Messaggi: 3619
Iscritto il: 25 lug 2009, 22:18
Località: Marsiglia

0
voti

[5] Re: Excel funzione INDIRECT

Messaggioda Foto UtenteGioArca67 » 19 mag 2024, 19:48

Corretta interpretazione del computer biologico
Avatar utente
Foto UtenteGioArca67
3.714 4 5 9
Master
Master
 
Messaggi: 3600
Iscritto il: 12 mar 2021, 9:36

0
voti

[6] Re: Excel funzione INDIRECT

Messaggioda Foto UtenteEdmondDantes » 19 mag 2024, 23:05

Foto Utenteelfo, se desiderassi fare un'immersione matematica... :mrgreen:
Saremmo inclusivi. Non solo saldature! :D

(Foglio) A
Codice: Seleziona tutto
  Colonna A
1 A1
2 A2
3 A3
4 A4
5 A5
6 A6
7 A7
8 A8
9 A9


(Foglio) B
Codice: Seleziona tutto
  Colonna A                         Colonna B
1 A1                                =INDIRECT(A!A1)
2 A2                                =INDIRECT(A!A2)
3 A3                                =INDIRECT(A!A3)
4 A4                                =INDIRECT(A!A4)
5 A5                                =INDIRECT(A!A5)
6 A6                                =INDIRECT(A!A6)
7 A7                                =INDIRECT(A!A7)
8 A8                                =INDIRECT(A!A8)
9 A9                                =INDIRECT(A!A9)
Il Conte di Montecristo

Se non studio un giorno, me ne accorgo io. Se non studio due giorni, se ne accorge il pubblico.

Io devo studiare sodo e preparare me stesso perché prima o poi verrà il mio momento.
Abraham Lincoln
Avatar utente
Foto UtenteEdmondDantes
11,9k 8 11 13
Disattivato su sua richiesta
 
Messaggi: 3619
Iscritto il: 25 lug 2009, 22:18
Località: Marsiglia

0
voti

[7] Re: Excel funzione INDIRECT

Messaggioda Foto Utenteelfo » 20 mag 2024, 13:03

EdmondDantes ha scritto:Il contenuto della cella A4 dello sheet2 è irrilevante nel tuo caso perché non è letto da nessuna delle due funzioni.

Foto UtenteEdmondDantes arigrazie!

Questa affermazione mi ha aperto un mondo. :ok:

Ho capito che il problema non era tanto nella funzione INDIRECT quanto nell'argomento che gli passavo.

Qui sotto riporto i due fogli del post precedente con alcune modifiche che mi hanno permesso - alla luce delle tue spiegazioni - di capire meglio il tutto.

C'e' ancora un punto che non mi e' ancora totalmente chiaro - e' un mio limite - e ci devo ragionare sopra.

- ho "cambiato di posto" alle celle con due dati da copiare 33 Sheet1 D4 44 Sheet2 E5 (celle sfondo rosso) per evitare le ambiguita' che avevi evidenziato

Tabella 1

- ho esplicitato le nuove formule

Tabella 2

- ho "estratto" gli argomenti della funzione (per gli argomenti ho utilizzato due versioni - completa e forma breve - per mettere in evidenza il foglio di "provenienza" dell'indirizzo e del dato

- ho esplicitato le formule degli argomenti

Indirect_4.jpg
Avatar utente
Foto Utenteelfo
6.524 4 5 7
G.Master EY
G.Master EY
 
Messaggi: 2724
Iscritto il: 15 lug 2016, 13:27

0
voti

[8] Re: Excel funzione INDIRECT

Messaggioda Foto Utenteelfo » 20 mag 2024, 13:17

EdmondDantes ha scritto:se desiderassi fare un'immersione matematica...

Credo che tu abbia sopravvalutato la mia voglia e - soprattutto - le mie capacita' :(

Pero'...

STOP ACHTUNG VERBOTEN
__________________________________________
La lettura di quanto segue e' fortemente sconsigliata, lo fate a vs rischio e pericolo e declino ogni responsabilita'da ogni danno diretto o indiretto che ne potrebbe conseguire. :(

Consideriamo due fogli Alfa e Beta con una tabella ciascuno Alfa (Tabella1) e Beta (Tabella2)

Le due tabelle sono "congruenti" ed hanno lo stesso ordinamento sia nelle righe sia nelle colonne ma, ovviamente, dati diversi nelle celle.

L'obiettivo e' quello di avere nel foglio Sheet1 una tabella (Tabella3) che riunisca i dati delle due tabelle precedenti:

- mantenendo le stesse righe
- alternando I dati nelle colonne (Alfa_colonna1 - Beta_Colonna1 - Alfa_colonna_2 - Beta_colonna2)

Tale obiettivo dovrebbe essere raggiunto scrivendo due formule nelle celle C4 e D4 e copiando poi tali formule nell'intera tabella.

Il metodo "classico" rappresentato nella Tabella4 "non funziona per le colonne" perche' la copia utilizza il metodo "relativo" e la formula della cella D16 "pesca" un dato "spostato" di due colonne mentre il dato nella tabella Alfa e' spostato di solo una colonna.

La formula riquadrata di rosso (sbagliata e frutto di copia dalla cella C16 nella cella E16) recita
Codice: Seleziona tutto
=Alfa!E4

mentre dovrebbe essere
Codice: Seleziona tutto
=Alfa!D4

Per risolvere questo problema ho ipotizzato di utilizzare la funzione INDIRECT cui passo come argomento l'indirizzo della cella cui prendere i dati combinando il dato indicato nel rigo 1 e nella colonna A dello Sheet1.

Nel rigo 12 e' indicato l'argomento che viene passato alla funzione INDIRECT con la relativa formula.

Il "gioco" del blocco ($) delle colonne e delle righe nelle formule evidenziato in rosso assicura la corretta copia "relativa".

Domanda:

Avete un modo piu' semplice (meno arzigogolato) per risolvere il problema?

Table.jpg
Avatar utente
Foto Utenteelfo
6.524 4 5 7
G.Master EY
G.Master EY
 
Messaggi: 2724
Iscritto il: 15 lug 2016, 13:27

0
voti

[9] Re: Excel funzione INDIRECT

Messaggioda Foto UtenteEdmondDantes » 20 mag 2024, 14:27

Ho seguito (quasi) il tuo consiglio e non ho letto tutta la spiegazione.
Un appunto, ma che devo fare anche a me stesso purtroppo. Una tabella in Excel, almeno nelle versioni più recenti è un oggetto a sé stante con funzionalità proprie, anche di tipo avanzato. Un insieme di celle semplicemente formattate con colori di sfondo e bordi linea non sono una tabella all'interno del mondo Excel, anche quelle con il filtro attivato. Detto questo sono il primo a chiamare tabelle entrambe le strutture. :cry:

Inutile che riporti qui la spiegazione. Cerca su internet "unire tabelle con CERCA.VERT()" (VLOOKUP function). La tecnica va ripetuta per ogni colonna da copiare e incollare e richiede di trasformare l'insieme di dati in tabelle con un click.
Questo risolve il tuo problema, perché la funzione e le tabelle (propriamente dette) tengono conto dei riferimenti, purché non modifiche la struttura delle tabelle originarie (spostare o aggiungere colonne. La chiave primaria deve essere posizionata nella prima colonna). Ho un dubbio sulla tua versione di Excel. Non ricordo se permette la conversione di un insieme di dati in tabella. Verifica tu.

Ci sono altri approcci ovviamente, comprese quelle proprie di database e analisi dati ormai presenti nelle versioni più moderne di Excel.

PS
La riga di intestazione unica tipo "Tabella 1" invece è vietata, a prescindere da Excel, e non permette di definire tabella un insieme di dati, almeno così insegna la base di dati :mrgreen:
Il Conte di Montecristo

Se non studio un giorno, me ne accorgo io. Se non studio due giorni, se ne accorge il pubblico.

Io devo studiare sodo e preparare me stesso perché prima o poi verrà il mio momento.
Abraham Lincoln
Avatar utente
Foto UtenteEdmondDantes
11,9k 8 11 13
Disattivato su sua richiesta
 
Messaggi: 3619
Iscritto il: 25 lug 2009, 22:18
Località: Marsiglia

0
voti

[10] Re: Excel funzione INDIRECT

Messaggioda Foto UtenteEdmondDantes » 22 mag 2024, 18:52

Hai provato?
Il Conte di Montecristo

Se non studio un giorno, me ne accorgo io. Se non studio due giorni, se ne accorge il pubblico.

Io devo studiare sodo e preparare me stesso perché prima o poi verrà il mio momento.
Abraham Lincoln
Avatar utente
Foto UtenteEdmondDantes
11,9k 8 11 13
Disattivato su sua richiesta
 
Messaggi: 3619
Iscritto il: 25 lug 2009, 22:18
Località: Marsiglia

Prossimo

Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 22 ospiti