Cosa c'è in questa sezione

klingklang

Ciappinaro VBA_Expert
Expert
20 Ottobre 2017
4.157
113
42
San Giovanni in Persiceto (BO)
www.excelswissknife.com
2016, 365
284
1) le relazioni tra tabelle si possono mettere anche nelle pivot flaggando l'apposita scelta ("aggiungi questi dati al modello di dati")
Vero: utilizzando il data model, puoi mettere in relazione più tabelle e analizzarle tramite una pivot un po' come se fossi in un DBMS (tipo Access, per intenderci). Ciò che differenzia le Power Pivot (ed è una GROSSA differenza) è la possibilità di scrivere delle misure in linguaggio DAX, superando tutti i limiti di aggregazione dati delle pivot "classiche"

2) le formule utilizzabili sono diverse sia da quelle di excel che da quelle del vba
Non so se ti riferisci a Power Query (M) o Power Pivot (DAX), ma in entrambi i casi è vero, il linguaggio è diverso. Alcune funzioni DAX ricalcano le funzioni Excel (in inglese), ma in generale... c'è da studiare

3) molte delle potenzialità che ho visto si sarebbero potute risolvere con formule (soprattutto cerca vert e/o indice e confronta)
Si tratta di strumenti per elaborazioni molto avanzate: se si può risolvere con semplici formule Excel, probabilmente non sono necessari per quel lavoro specifico.

Qualcuno potrebbe illustrami i veri vantaggi dei suddetti strumenti (oltre a gestire files di n milioni di record), ad esempio attività che non sarebbe possibile effettuare con il solo excel?
L'elenco è lungo, e per rendersene conto bisogna iniziare a utilizzarli e capirne le potenzialità. Nel mio lavoro, avevo dei report da costruire partendo da sorgenti csv e xlsx sparpagliate qui e là, estrazioni dal database aziendale, elaborazioni locali, il tutto da completare con un miscuglio di lavoro manuale, VBA, pivot etc. Tutto molto dispendioso in termini di tempo e soggetto a errori, ogni volta che dovevo ripetere tutta la trafila. Con Power Query ho costruito una procedura che si connette alle sorgenti dati, fa tutte le elaborazioni necessarie e manda in output il risultato finale... è stato un lavoro di preparazione abbastanza complesso, ma adesso, quando si aggiornano i file o le tabelle del DB o cambia un criterio, al massimo devo fare una micro-modifica alla query (se necessaria) e poi cliccare "Aggiorna tutto", fine. Quando mi sono reso conto di quanto lavoro mi avrebbe risparmiato tutto ciò, mi sembrava quasi troppo bello per essere vero Caffe_rido
 
  • Like
Reactions: lukereds

lukereds

Utente junior
17 Luglio 2018
93
8
Milano
2013
5
klingklang @klingklang grazie infinite per la spiegazione, dammi però conforto del fatto che il DAX è farragginoso, non intuitivo, insomma uno schifo :D
 

klingklang

Ciappinaro VBA_Expert
Expert
20 Ottobre 2017
4.157
113
42
San Giovanni in Persiceto (BO)
www.excelswissknife.com
2016, 365
284
dammi però conforto del fatto che il DAX è farragginoso, non intuitivo, insomma uno schifo
Perché pensi questo? Voglio svelarti qui e ora il grande segreto del DAX, ovvero i due concetti che, una volta capiti e interiorizzati al meglio, ti permetteranno di imparare tutto il linguaggio senza grosse difficoltà: il ROW CONTEXT e il FILTER CONTEXT.
C'è un video su YouTube (anzi due video, di circa 2 ore ciascuno) di una lezione tenuta dal nostro connazionale Alberto Ferrari (un luminare del DAX) negli Stati Uniti. Se capisci l'inglese (anche se con un forte accento italiano! Caffe_rido) assicurati di guardarli, anche un paio di volte se serve: ti apriranno gli occhi
 
  • Like
Reactions: lukereds

lukereds

Utente junior
17 Luglio 2018
93
8
Milano
2013
5
Ciao, approfitto per l'ultima domanda: ciò che fai con il dax è possibile farlo anche con le formule excel? Grazie di nuovo!
 

klingklang

Ciappinaro VBA_Expert
Expert
20 Ottobre 2017
4.157
113
42
San Giovanni in Persiceto (BO)
www.excelswissknife.com
2016, 365
284
Beh, il DAX serve essenzialmente ad aggregare dati con le tabelle pivot e sui report in Power BI, quindi direi che i due mondi sono assai distanti. La differenza sostanziale è che una formula excel ha bisogno di esplicitare tutti i parametri, una misura in DAX invece capisce il contesto, quindi aggrega dinamicamente a seconda di come viene costruito il report, o la power pivot
 
  • Like
Reactions: lukereds

ibernet

Utente junior
31 Maggio 2019
43
18
O365
1
Ciao provo a risponderti in linea di massima.
1) quel flag che citi è semplicemente PowerPivot, la relazione che fai nel modello dati ti crea l'universo in excel con le varie tabelle già correlate tra loro e quindi lato utente ti basta tirare giù i campi sulle pivot.
Il vero join tra pivot però è un altro.. ovvero si fa con i filtri dinamici associandoli a più pivot di fatto ti permette di legare le pivot affinchè riportino lo stesso risultato su lay-out che possono differire anche di molto.

2) come ogni software dietro c'è il suo linguaggio e se non sono ugiali il suo perchè c'è.
PowerQuery usa un motore che si basa sul linguaggio M.
PowerPivot si basa su un motore che si basa sul linguaggio DAX.
I motori sono, in modo blando, quei componenti che sono ottimizzati per fare dei calcoli specifici, es. powerquery è ottimizzato per il calcolo lineare e relazionale, powerpivot è ottimizzato per il calcolo bidimensionale. cambia quindi in primisi la velocità di risposta e occupazione risorse, e per secondo alcune cose concettualmente le puoi fare solo sul motore specifico, non mi dilungo oltre su questo punto perchè è troppo complesso da spiegare in 2 righe.

3) Più o meno rientra nella risposta della seconda.
Prova a fare 20 cerca verticali su 1 milione di record, cambia la tabella origine e guarda il processore/ram e il tempo che ci impiega.
Poi fai la stessa cosa ma la fai in dax, vedrai che powerpivot esegue quei calcoli in un nano secondo e l'occupazione delle risorse sarà irrisoria rispetto a quella esposta sui singoli tab.

Considera anche che quando piazzi un dato su un foglio esso viene salvato (pur usando l'estensione compressa xlsb "binario") in modo poco compresso, se tu metti la stessa mole di dati in powerpiovt il dato si comprime fino a 34 volte.
Un file da 4-5gb può diventare un file da 2-300mb.

Spero di essere riuscito a toglierti qualche dubbio e di non averti generato ancora più confusione. :)
 

lukereds

Utente junior
17 Luglio 2018
93
8
Milano
2013
5
Beh, il DAX serve essenzialmente ad aggregare dati con le tabelle pivot e sui report in Power BI, quindi direi che i due mondi sono assai distanti. La differenza sostanziale è che una formula excel ha bisogno di esplicitare tutti i parametri, una misura in DAX invece capisce il contesto, quindi aggrega dinamicamente a seconda di come viene costruito il report, o la power pivot
Grazie molte per il tempo dedicato, in caso chiederò ancora :D
 

lukereds

Utente junior
17 Luglio 2018
93
8
Milano
2013
5
Ciao provo a risponderti in linea di massima.
1) quel flag che citi è semplicemente PowerPivot, la relazione che fai nel modello dati ti crea l'universo in excel con le varie tabelle già correlate tra loro e quindi lato utente ti basta tirare giù i campi sulle pivot.
Il vero join tra pivot però è un altro.. ovvero si fa con i filtri dinamici associandoli a più pivot di fatto ti permette di legare le pivot affinchè riportino lo stesso risultato su lay-out che possono differire anche di molto.

2) come ogni software dietro c'è il suo linguaggio e se non sono ugiali il suo perchè c'è.
PowerQuery usa un motore che si basa sul linguaggio M.
PowerPivot si basa su un motore che si basa sul linguaggio DAX.
I motori sono, in modo blando, quei componenti che sono ottimizzati per fare dei calcoli specifici, es. powerquery è ottimizzato per il calcolo lineare e relazionale, powerpivot è ottimizzato per il calcolo bidimensionale. cambia quindi in primisi la velocità di risposta e occupazione risorse, e per secondo alcune cose concettualmente le puoi fare solo sul motore specifico, non mi dilungo oltre su questo punto perchè è troppo complesso da spiegare in 2 righe.

3) Più o meno rientra nella risposta della seconda.
Prova a fare 20 cerca verticali su 1 milione di record, cambia la tabella origine e guarda il processore/ram e il tempo che ci impiega.
Poi fai la stessa cosa ma la fai in dax, vedrai che powerpivot esegue quei calcoli in un nano secondo e l'occupazione delle risorse sarà irrisoria rispetto a quella esposta sui singoli tab.

Considera anche che quando piazzi un dato su un foglio esso viene salvato (pur usando l'estensione compressa xlsb "binario") in modo poco compresso, se tu metti la stessa mole di dati in powerpiovt il dato si comprime fino a 34 volte.
Un file da 4-5gb può diventare un file da 2-300mb.

Spero di essere riuscito a toglierti qualche dubbio e di non averti generato ancora più confusione. :)

ok grazie per le risposte, proverò a testate i tempi di risposta a breve, quando conoscerò powerpivot/query in modo più approfondito. Buon week end!
 

lukereds

Utente junior
17 Luglio 2018
93
8
Milano
2013
5
Ciao provo a risponderti in linea di massima.
1) quel flag che citi è semplicemente PowerPivot, la relazione che fai nel modello dati ti crea l'universo in excel con le varie tabelle già correlate tra loro e quindi lato utente ti basta tirare giù i campi sulle pivot.
Il vero join tra pivot però è un altro.. ovvero si fa con i filtri dinamici associandoli a più pivot di fatto ti permette di legare le pivot affinchè riportino lo stesso risultato su lay-out che possono differire anche di molto.

2) come ogni software dietro c'è il suo linguaggio e se non sono ugiali il suo perchè c'è.
PowerQuery usa un motore che si basa sul linguaggio M.
PowerPivot si basa su un motore che si basa sul linguaggio DAX.
I motori sono, in modo blando, quei componenti che sono ottimizzati per fare dei calcoli specifici, es. powerquery è ottimizzato per il calcolo lineare e relazionale, powerpivot è ottimizzato per il calcolo bidimensionale. cambia quindi in primisi la velocità di risposta e occupazione risorse, e per secondo alcune cose concettualmente le puoi fare solo sul motore specifico, non mi dilungo oltre su questo punto perchè è troppo complesso da spiegare in 2 righe.

3) Più o meno rientra nella risposta della seconda.
Prova a fare 20 cerca verticali su 1 milione di record, cambia la tabella origine e guarda il processore/ram e il tempo che ci impiega.
Poi fai la stessa cosa ma la fai in dax, vedrai che powerpivot esegue quei calcoli in un nano secondo e l'occupazione delle risorse sarà irrisoria rispetto a quella esposta sui singoli tab.

Considera anche che quando piazzi un dato su un foglio esso viene salvato (pur usando l'estensione compressa xlsb "binario") in modo poco compresso, se tu metti la stessa mole di dati in powerpiovt il dato si comprime fino a 34 volte.
Un file da 4-5gb può diventare un file da 2-300mb.

Spero di essere riuscito a toglierti qualche dubbio e di non averti generato ancora più confusione. :)
Ciao ibernet @ibernet , ho quasi finito di guardare il tuo videocorso su Pquery e Ppivot, grazie, ottimo lavoro
 
  • Like
Reactions: klingklang

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!