2012-02-01 16 views

risposta

12

Sto indovinando intendi riferimento l'intera colonna/fila come una gamma/matrice in un'altra formula?

Se è così, l'unico modo che posso pensare sarebbe quella di utilizzare OFFSET

=OFFSET($A:$A,,MyColIndex-1) 
=OFFSET($1:$1,MyRowIndex-1,) 

questo è ...

=OFFSET(reference,rows,cols,[height],[width]) 

Tuttavia questo non funzionerà se si inserisce una colonna a sinistra di A o riga 1.

MODIFICA: appena trovato un modo per aggirare questo piccolo problema ...

=OFFSET($A:$A,,MyColIndex-Column($A:$A)) 
=OFFSET($1:$1,MyRowIndex-Row($1:$1),) 
+0

+1 per la modifica della colonna ($ A: $ A)! – FrancescoMM

3

ne dite qualcosa di simile:

=SUM(INDEX(2:1048576,0,2)) 

Questo riassume l'intera seconda colonna nell'intervallo specificato, cioè B2: B1048576. Funziona perché un 0 nell'argomento della riga della funzione indice restituisce l'intera colonna, nell'intervallo specificato. Quanto segue potrebbe riassumere solo B2: B3:

=SUM(INDEX(2:3,0,2)) 

... e questo sarebbe riassumere C2: C3

=SUM(INDEX(B2:F3,0,2)) 
+0

+1 Uso Index molto, ma non conoscevo questo trucco. –

+0

+1 ben fatto. La funzione 'Index' è utile per la stessa applicazione su array VBA. – brettdj

+0

@brettdj, non lo sapevo. Potrebbe essere molto utile. –

3

Se è possibile convertire la vostra gamma ad un tavolo, quindi è possibile utilizzare i riferimenti strutturati verso fare riferimento alle colonne nella tabella.

Esempio

  • vostro tavolo si chiama Table1 e ha colonne Column1, Column2, Column3
  • cellule E1 ha il nome di una colonna (ad esempio Column1)

In questo caso, si può calcolare (per esempio) la somma della colonna specificata da E1 con:

=SUM(INDIRECT("Table1["& E1 &"]")) 
+0

Nel caso non si abbia familiarità con loro, le tabelle sono come liste, ma migliorate. In Excel 2007, selezionando un intervallo e premendo 'Ctrl-L' ora viene creata una tabella anziché una lista. – stevepastelan

+0

Buona chiamata sul tavolo ma non è necessario utilizzare indirettamente. Puoi semplicemente usare = SUM (Table1 [Header1]) dove Header1 è il titolo dell'intestazione di colonna. È preferibile evitare indirettamente, se possibile. – Jesse

+0

Jesse, che funzionerà se è possibile inserire l'header dell'IDcode1 nella formula. Tuttavia, se vuoi specificare la colonna in base al valore di qualche altra cella, so solo come farlo usando 'INDIRETTO' ... – stevepastelan

Problemi correlati