Aggiunta di colonne calcolate a Excel Pivot senza dettagli


1

Esiste un modo per aggiungere un campo calcolato che si applicherebbe solo alla colonna totale, senza aggiungere dettagli non necessari per ciascun elemento della colonna?

Considera il seguente esempio.

I dati sono i seguenti:

Year    Product     Units   Price   Revenue
2013    Porduct A   100     1.5     150
2013    Porduct B   150     1.6     225
2013    Porduct C   200     1.7     300
2013    Porduct D   250     1.8     375
2013    Porduct E   300     1.9     450
2014    Porduct A   150     1.5     225
2014    Porduct B   200     1.6     300
2014    Porduct C   250     1.7     375
2014    Porduct D   300     1.8     450
2014    Porduct E   350     1.9     525

Il perno risultante è il seguente:

Perno risultante

Ora, diciamo, voglio aggiungere uno sconto del 10% per ogni totale di prodotti, tuttavia quando aggiungo un campo calcolato ottengo separatamente i dettagli di sconto non necessari per ogni anno:

Pivot con campi calcolati

Quello che voglio davvero è sbarazzarmi dei dettagli anno per anno e lasciare il calcolo solo per il totale:

Uscita desiderata

Ma mi piacerebbe raggiungerlo senza nascondere le colonne, ma semplicemente aggiungere un campo, come farei normalmente senza pivot. Il motivo è che potrebbero esserci molti calcoli conseguenti che mi piacerebbe eseguire senza far crescere il pivot in orizzontale (specialmente quando eseguo un'analisi mese per mese estende la tabella risultante di 12 colonne ogni volta che un campo calcolato è aggiunto.


Potresti aggiungere un campo calcolato personalizzato che è la formula che somma lo sconto? Dire, fare il calcolo all'interno di quel campo e mostrare il risultato? Oppure hai bisogno dei risultati dei passaggi disponibili per vederli, ma vuoi nasconderli normalmente?
Raystafarian,

@Raystafarian, ho bisogno dei risultati dei passaggi, ma solo per i totali. Il campo di sconto è attualmente un campo calcolato personalizzato. Mentre risolve il problema, aggiunge anche colonne non necessarie.
turezky,

Risposte:


1

Le tabelle pivot standard predefinite non lo consentono.

Per prima cosa descriverò come è possibile aggirare questo problema usando le normali tabelle pivot, in secondo luogo ti mostrerò come è possibile ottenere ciò utilizzando il componente aggiuntivo PowerPivot.


Opzione 1: due tabelle pivot standard

Lo affronterei semplicemente sedendo due tavoli pivot uno accanto all'altro, uno con anni come etichetta di colonna e uno senza (questo secondo tavolo seduto una fila più in basso in modo che si allineino).

Dovresti assicurarti che le colonne delle etichette delle righe siano ordinate e filtrate in modo identico. Quindi puoi semplicemente nascondere la colonna delle etichette sulla seconda tabella.

inserisci qui la descrizione dell'immagine

(In questa schermata ho aggiunto manualmente le etichette "Totale" nella riga 3)


Opzione 2: utilizzo di PowerPivot

Utilizzando PowerPivot e DAX è possibile creare tutte queste colonne come singole misure in modo da poter controllare i filtri applicati in modo abbastanza preciso.

Innanzitutto assicurati di aver installato PowerPivot - Excel non viene fornito con esso a parte in alcune edizioni di Excel 2013. Non guiderò attraverso il processo di installazione, ma una ricerca rapida dovrebbe aiutare se sei bloccato.

Seleziona l'intervallo di dati e fai clic Create Linked Tablesulla barra degli strumenti di PowerPivot.

inserisci qui la descrizione dell'immagine

Dovrebbe apparire la finestra verde di PowerPivot. Per impostazione predefinita, la tabella verrà semplicemente denominata Tabella1 : rinominiamola ProductSales per renderla più significativa.

inserisci qui la descrizione dell'immagine

Fai clic sul PivotTablepulsante nel mezzo del nastro verde e posizionalo dove preferisci. Ora dobbiamo creare alcune misure. PowerPivot utilizza un tipo di codice chiamato DAX (Data Analysis eXpressions) che assomiglia molto alle normali formule di Excel.

Torna in Excel, inizia aggiungendo il prodotto alla Row Labelstua tabella pivot. Ora fai clic sul New Measurepulsante nella scheda della barra multifunzione di PowerPivot.

Nella finestra risultante, impostare Measure name (all PivotTables)su Unità totali e nella Descriptioncasella di testo libero immettere:

=sum(ProductSales[Units])

inserisci qui la descrizione dell'immagine

Crea un'altra misura, denominata Unità 2013 . Inserisci questo codice:

=CALCULATE([Units Total],ProductSales[Year]=2013)

inserisci qui la descrizione dell'immagine

La CALCULATE()funzione in DAX ti consente di applicare (più) filtri a un'espressione aggregata, quindi qui stiamo filtrando la misura Unità totali che abbiamo appena creato, entro l'anno in questione. Ripetere l'operazione per Unità 2014 , quindi ripetere la stessa operazione per Totale entrate , Entrate 2013 e Entrate 2014 .

Ora puoi ordinare e formattare le tue colonne come preferisci: per imitare i tuoi screenshot sopra ho impostato manualmente le colonne 2013 e 2014 su grigio.

inserisci qui la descrizione dell'immagine


Sfortunatamente nascondersi non risolverà il problema, dal momento che è sostanzialmente la stessa soluzione alternativa che sto attualmente utilizzando (e senza il rischio che alcune righe / colonne non corrispondano. D'altra parte, PowerPivot potrebbe non essere un overkill dopo tutto. Se può risolvere il problema, va bene. Immagino che il problema con PowerPivot sia che dovrebbe essere installato sui computer di altre persone se vorranno manipolare il tavolo.
turezky,

Quindi, come si fa con PowerPivot? Ho appena aggiunto una misura, ma produce lo stesso risultato.
turezky,

Ho ampliato la mia risposta per mostrare una soluzione PowerPivot.
Andi Mohr,

Quindi in pratica significa creare manualmente una voce per ogni anno. È la soluzione di scelta rapida per il caso dato, ma potrebbe diventare un sottaceto quando le colonne sono mesi o quando sono un elenco più lungo (nomi, regioni, ecc.) Che dovrebbero essere generati automaticamente.
turezky,

Sì, entrambi hanno punti deboli. Se hai molte colonne per cui devi farlo, suggerirei che la prima opzione è la migliore. Con un po 'di VBA potresti applicare l'ordinamento comune su entrambe le tabelle.
Andi Mohr,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.