2011-08-17 22 views
18

Sto cercando un modo per creare un totale parziale (totale della riga corrente e superiore) utilizzando i riferimenti strutturati della tabella Excel.Come creare un totale parziale usando i riferimenti strutturati della tabella Excel?

so come farlo utilizzando il vecchio modo basato riga/colonna:
=SUM($A$2:$A2)

E so come totale un'intera colonna utilizzando i riferimenti strutturati:
=SUM([WTaskUnits])

e so come per ottenere la cella corrente utilizzando [#ThisRow], ma non sono sicuro di come ottenere la prima riga della tabella per utilizzarla in un SUM.

risposta

31

In realtà, ho appena trovato un modo di farlo usando INDICE, ma sento che ci dovrebbe essere un modo di riferimento più strutturato. Eppure, per gli altri che cercano di fare questo qui è quello che mi si avvicinò con:
=SUM(INDEX([WTaskUnits],1):[[#This Row],[WTaskUnits]])

Io uso INDEX per ottenere la prima cella della colonna (equivalente di $ A $ 2 nella mia fila/esempio di colonna) e utilizzare [ #Questa riga] normalmente per ottenere la cella nella riga corrente (equivalente di A2 nel mio esempio riga/colonna).

+0

IMHO, questo è uno dei modi migliori per affrontare il problema. Non dimenticare che puoi accettare la tua risposta :) – JMax

+0

+1 per una soluzione eccellente. – dav

+9

È inoltre possibile utilizzare questo: = SUM (INDICE ([WTaskUnits], 1): [@ WTaskUnits]) –

1

Non sai cosa intendi per struttura più strutturata, il modo in cui lo stai facendo va bene. Potresti anche semplicemente iniziare il tuo intervallo nella cella sotto l'intestazione della tabella:

OFFSET([[#Headers],[WTaskUnits]],1,0,1,1): 

Ma non lo definirei più strutturato, semplicemente diverso. Non esiste un riferimento tabella per un intervallo parziale di righe in una colonna, quindi il mio suggerimento sarebbe quello di attenersi a ciò che hai.

+0

Grazie, è bello avere la conferma. È un po 'sorprendente che non abbiano aggiunto un ulteriore supporto per le righe con riferimenti strutturati. Immagino che sentissero che usare le formule esistenti come INDICE e OFFSET era sufficiente. – studgeek

2
=SUM(OFFSET([WTaskUnits],0,0,ROW()-ROW([[#Headers],[Running Total]]))) 

La tabella ha due colonne [WTaskUnits] e [Running Total]. La formula sopra riportata somma l'intervallo di celle richiesto.

I primi argomenti della funzione OFFSET definiscono il punto di partenza della somma. Il quarto mandato,

ROW()-ROW([[#Headers],[Running Total]] 

è un utile linguaggio per il numero della riga corrente nella tabella.

2

Mi rendo conto che questo è un thread vecchio, ma finalmente ho una soluzione che vorrei offrire.

=IF(ISNUMBER(OFFSET([@Balance],-1,0)),OFFSET([@Balance],-1,0)+[@Amount],[@Amount]) 

Nel caso della prima riga di dati, i punti di offset per l'intestazione, che non è un numero, quindi il risultato è solo la colonna Amount.

Le restanti righe danno il Balance precedente da OFFSET più la riga corrente Amount.

1

Nota: se si utilizza = SUBTOTAL (109, ...) anziché = SUM (...), la formula rispetterà i filtri sulla tabella.

0

ho creato il mio totale di esecuzione utilizzando pivot di Excel: valori

  • Sum -> Somma di ...
  • Mostra valori come -> Esecuzione totale

miei 2 centesimi, a 5 anni di ritardo (e forse manca il punto).

+0

Sembra che tu stia utilizzando una tabella pivot, in cui l'OP sta cercando una soluzione per una normale tabella di Excel (ad esempio non una tabella pivot). – dav

-1

Per un tavolo fisso di dati 1. avanzamento all'ultima cella della colonna che si desidera il subtotale nel 2. subtotale della colonna che ha i dati in essa e riferimento assoluto la prima riga 3.Copia formula up alla prima fila

1

utilizzare la seguente formula:

=SUM(INDEX([Values],1) : [@Values]) 

Usiamo INDEX per tornare alla prima cella della colonna valori, e semplicemente utilizzare il riferimento strutturato alla riga corrente di restituire la seconda cella della gamma che vogliamo sommare.

Source