Esercitazione: Creare misure personalizzate in Power BI DesktopTutorial: Create your own measures in Power BI Desktop

Con le misure è possibile creare alcune delle soluzioni di analisi dati più potenti in Power BI Desktop.You can create some of the most powerful data analysis solutions in Power BI Desktop by using measures. Consentono infatti di eseguire calcoli sui dati durante l'interazione con i report.Measures help you by performing calculations on your data as you interact with your reports. Questa esercitazione illustra il significato e la modalità di creazione delle misure di base in Power BI Desktop.This tutorial will guide you through understanding measures and creating your own basic measures in Power BI Desktop.

PrerequisitiPrerequisites

  • Questa esercitazione è destinata agli utenti di Power BI che sono già in grado di usare Power BI Desktop per creare modelli più avanzati.This tutorial is intended for Power BI users already familiar with using Power BI Desktop to create more advanced models. L'utente dovrebbe avere già familiarità con l'uso delle funzionalità Recupera dati ed Editor di query per importare i dati, l'uso di più tabelle correlate e l'aggiunta di campi all'area di disegno del report.You should already be familiar with using Get Data and Query Editor to import data, working with multiple related tables, and adding fields to the Report Canvas. Se non si ha familiarità con Power BI Desktop, vedere l'articolo Introduzione a Power BI Desktop.If you’re new to Power BI Desktop, be sure to check out Getting Started with Power BI Desktop.

  • Scaricare il file Contoso Sales Sample for Power BI Desktop che include i dati delle vendite online della società fittizia Contoso, Inc. Questi dati sono stati importati da un database, quindi non sarà possibile connettersi all'origine dati o visualizzare i dati nell'Editor di query.Download the Contoso Sales Sample for Power BI Desktop file, which includes online sales data from the fictitious company Contoso, Inc. This data was imported from a database, so you won’t be able to connect to the datasource or view it in Query Editor. Estrarre il file nel computer in uso e quindi aprirlo in Power BI Desktop.Extract the file on your own computer, and then open it in Power BI Desktop.

Informazioni sulle misureUnderstand measures

Le misure vengono create automaticamente nella maggior parte dei casi.Measures are most often created for you automatically. Nel file Contoso Sales Sample selezionare la casella di controllo accanto al campo SalesAmount nella tabella Sales nell'area Campi oppure trascinare SalesAmount nell'area di disegno report.In the Contoso Sales Sample file, select the checkbox next to the SalesAmount field in the Sales table in the Fields well, or drag SalesAmount onto the report canvas. Verrà visualizzata una nuova visualizzazione dell'istogramma che mostra la somma totale di tutti i valori nella colonna SalesAmount della tabella Sales.A new column chart visualization appears, showing the sum total of all values in the SalesAmount column of the Sales table.

Grafico SalesAmount

Qualsiasi campo visualizzato nell'area Campi con l'icona SigmaAny field that appears in the Fields well with a sigma icon icona Sigma è di tipo numerico e i relativi valori possono essere aggregati.is numeric, and its values can be aggregated. Invece di visualizzare una tabella con tutti i due milioni di righe di valori SalesAmount, Power BI Desktop ha rilevato un tipo di dati numerico e ha creato e calcolato automaticamente una misura per aggregare i dati.Rather than showing a table with all two million rows of SalesAmount values, Power BI Desktop detected a numeric datatype and automatically created and calculated a measure to aggregate the data. La somma è l'aggregazione predefinita per un tipo di dati numerico, ma è possibile applicare facilmente aggregazioni diverse, ad esempio media o conteggio.Sum is the default aggregation for a numeric datatype, but you can easily apply different aggregations like average or count. Comprendere l'uso delle aggregazioni è di fondamentale importanza per comprendere le misure, perché ogni misura esegue un tipo di aggregazione.Understanding aggregations is fundamental to understanding measures, because every measure performs some type of aggregation.

Per impostare la media come aggregazione per il grafico, nell'area Valore del riquadro Visualizzazioni, fare clic sulla freccia in giù accanto a SalesAmount e selezionare Media.To change the chart aggregation to average, in the Value area of the Visualizations pane, click the down arrow next to SalesAmount and select Average. La visualizzazione cambia e mostra la media di tutti i valori delle vendite nel campo SalesAmount.The visualization changes to an average of all sales values in the SalesAmount field.

Grafico della media di SalesAmount

È possibile modificare il tipo di aggregazione in base al risultato che si vuole ottenere, ma non tutti i tipi di aggregazione sono validi con qualsiasi tipo di dati numerico.You can change the type of aggregation depending on the result you want, but not all types of aggregation apply to every numeric datatype. Ad esempio, per il campo SalesAmount i tipi di aggregazione Somma e Media sono significativi,For example, for the SalesAmount field, Sum and Average make sense. così come Minimo e Massimo,Minimum and Maximum have their place as well. mentre Conteggio non è rilevante per questo campo perché, pur se numerici, i relativi valori sono di tipo valuta.But Count won’t really make much sense for the SalesAmount field, because while its values are numeric, they’re really currency.

I valori calcolati dalle misure cambiano in risposta alle interazioni con il report.Values calculated from measures change in response to your interactions with your report. Ad esempio, se si trascina nel grafico il campo RegionCountryName dalla tabella Geography, viene mostrata la media degli importi delle vendite per ogni paese.For example, dragging the RegionCountryName field from the Geography table to your chart shows the average sales amounts for each country.

SaleAmount per paese

Quando il risultato di una misura cambia in seguito a un'interazione con il report, l'operazione ha effetto sul contesto della misura.When the result of a measure changes because of an interaction with your report, you have affected your measure’s context. Ogni volta che si interagisce con le visualizzazioni del report, si modifica il contesto in cui una misura calcola e visualizza i risultati.Every time you interact with your report visualizations, you are changing the context in which a measure calculates and displays its results.

Creare e usare misure personalizzateCreate and use your own measures

Nella maggior parte dei casi, Power BI calcola e restituisce automaticamente i valori in base ai tipi di campi e aggregazioni scelti, ma in alcuni casi si potrebbe voler creare misure personalizzate per eseguire calcoli più complessi e univoci.In most cases, Power BI automatically calculates and returns values according to the types of fields and aggregations you choose, but in some cases you might want to create your own measures to perform more complex, unique calculations. Con Power BI Desktop è possibile creare misure personalizzate con il linguaggio delle formule DAX (Data Analysis Expressions).With Power BI Desktop, you can create your own measures with the Data Analysis Expressions (DAX) formula language.

Le formule DAX usano in molti casi funzioni, operatori e sintassi simili a quelli delle formule di Excel.DAX formulas use many of the same functions, operators, and syntax as Excel formulas. Le funzioni di DAX sono però concepite in modo da funzionare con dati relazionali ed eseguire calcoli più dinamici durante l'interazione con i report.However, DAX functions are designed to work with relational data and perform more dynamic calculations as you interact with your reports. Sono disponibili oltre 200 funzioni DAX che eseguono vari tipi di operazioni, dalle aggregazioni semplici, come somma e media, fino a funzioni statistiche e di filtro più complesse.There are over 200 DAX functions that do everything from simple aggregations like sum and average to more complex statistical and filtering functions. Sono disponibili molte risorse per approfondire DAX.There are many resources to help you learn more about DAX. Al termine di questa esercitazione, vedere l'articolo Nozioni di DAX in Power BI Desktop.After you've finished this tutorial, be sure to see DAX basics in Power BI Desktop.

Quando si crea una misura personalizzata, questa viene aggiunta all'elenco Campi per la tabella selezionata e viene chiamata misura modello.When you create your own measure, it's added to the Fields list for the table you select and is called a model measure. Alcuni vantaggi delle misure modello sono la possibilità di assegnare il nome preferito rendendole più identificabili, di usarle come argomenti in altre espressioni DAX e di usarle per eseguire calcoli complessi molto velocemente.Some advantages of model measures are that you can name them whatever you want, making them more identifiable; you can use them as arguments in other DAX expressions; and you can make them perform complex calculations very quickly.

Suggerimento

A partire dalla versione di febbraio 2018 di Power BI Desktop, molti calcoli comuni sono disponibili in forma di misure rapide, che scrivono automaticamente le formule DAX in base all'input dell'utente in una finestra di dialogo.Starting with the February 2018 release of Power BI Desktop, many common calculations are available as quick measures, which write the DAX formulas for you based on your inputs to a dialog box. Questi calcoli potenti e veloci sono anche molto utili per imparare il linguaggio DAX o come base per misure personalizzate.These quick, powerful calculations are also great for learning DAX or seeding your own customized measures. Per creare o esplorare misure rapide, selezionare Nuova misura rapida nell'elenco Altre opzioni per una tabella o in Calcoli nella scheda Home della barra multifunzione.To create or explore quick measures, select New quick measure in a table's More options list or under Calculations in the Home tab of the ribbon. Vedere Usare le misure rapide per altre informazioni sulla creazione e l'uso delle misure rapide.See Use quick measures for more about creating and using quick measures.

Creare una misuraCreate a measure

Si supponga di voler analizzare il fatturato netto sottraendo sconti e resi dagli importi delle vendite totali.You want to analyze your net sales by subtracting discounts and returns from total sales amounts. Per qualsiasi contesto esistente in una visualizzazione, è necessaria una misura che sottrae la somma di DiscountAmount e ReturnAmount dalla somma di SalesAmount.For whatever context exists in your visualization, you need a measure that subtracts the sum of DiscountAmount and ReturnAmount from the sum of SalesAmount. Non è disponibile un campo per Net Sales nell'elenco Campi, ma sono disponibili i blocchi predefiniti per creare una misura personalizzata per calcolare il fatturato netto.There's no field for Net Sales in the Fields list, but you have the building blocks to create your own measure to calculate net sales.

  1. Fare clic con il pulsante destro del mouse sulla tabella Sales nell'area Campi oppure passare il mouse sulla tabella e selezionare i puntini di sospensione (...) Altre opzioni, quindi selezionare Nuova misura.Right-click the Sales table in the Fields well, or hover over the table and select the More options ellipsis (...), and then select New Measure. In questo modo la nuova misura verrà salvata nella tabella Sales, dove sarà più facilmente individuabile.This will save your new measure in the Sales table, where it will be easier to find.

    Nuova misura

    È anche possibile creare una nuova misura selezionando Nuova misura nel gruppo Calcoli nella scheda Home della barra multifunzione di Power BI Desktop.You can also create a new measure by selecting New Measure in the Calculations group on the Home tab of the Power BI Desktop ribbon.

    Nuova misura sulla barra multifunzione

    Suggerimento

    Quando si crea una misura dalla barra multifunzione, può essere creata in qualsiasi tabella, ma sarà più semplice individuarla se viene creata dove si prevede di usarla.When you create a measure from the ribbon, it could be created in any of the tables, but it will be easier to find if you create it where you plan to use it. In questo caso, selezionare prima di tutto la tabella Sales per renderla attiva e quindi selezionare Nuova misura.In this case, select the Sales table first to make it active, and then select New Measure.

    La barra della formula viene visualizzata nella parte superiore dell'area di disegno Report e al suo interno è possibile rinominare la misura e immettere una formula DAX.The formula bar appears along the top of the Report canvas, where you can rename your measure and enter a DAX formula.

    Barra della formula

  2. Per impostazione predefinita, a una nuova misura viene assegnato il nome Misura.By default, a new measure is simply named Measure. Se non la si rinomina, le nuove misure aggiuntive verranno denominate Misura 2, Misura 3 e così via.If you don’t rename it, additional new measures will be named Measure 2, Measure 3, and so on. Per questa esercitazione si vogliono usare misure più facilmente identificabili, quindi evidenziare Misura nella barra della formula e digitare Net Sales.You want your measures to be more identifiable, so highlight Measure in the formula bar, and then type Net Sales.

  3. A questo punto, è possibile iniziare a immettere la formula.Now you can begin entering your formula. Dopo il segno di uguale, iniziare a digitare Sum.After the equals sign, start to type Sum. Durante la digitazione, viene visualizzato un elenco a discesa di suggerimenti, che mostra tutte le funzioni DAX che iniziano con le lettere digitate.As you type, a drop-down suggestion list appears, showing all the DAX functions beginning with the letters you type. Scorrere verso il basso se necessario per selezionare SUM nell'elenco e quindi premere INVIO.Scroll down if necessary to select SUM from the list, and then press Enter.

    Scegliere SUM

    Viene visualizzata una parentesi aperta, con un altro elenco a discesa di suggerimenti con tutte le colonne disponibili che è possibile passare alla funzione SUM.An opening parenthesis appears, along with another drop-down suggestion list of all of the available columns you can pass to the SUM function.

    Scegliere la colonna

    Le espressioni sono sempre racchiuse tra una parentesi aperta e una chiusa.Expressions always appear between opening and closing parentheses. L'espressione conterrà un solo argomento da passare alla funzione SUM, ovvero la colonna SalesAmount.Your expression will contain a single argument to pass to the SUM function: the SalesAmount column. Iniziare a digitare "SalesAmount" fino a quando non rimane un solo valore nell'elenco, ovvero Sales(SalesAmount).Begin typing "SalesAmount" until only one value is left in the list: Sales(SalesAmount). Il nome della colonna preceduto dal nome della tabella viene chiamato nome completo della colonna.The column name preceded by the table name is called the fully-qualified name of the column. I nomi di colonna completi semplificano la lettura delle formule.Fully-qualified column names make your formulas easier to read.

    Selezionare SalesAmount

  4. Selezionare Sales[SalesAmount], quindi digitare una parentesi chiusa.Select Sales[SalesAmount], and then type a closing parenthesis.

    Suggerimento

    Gli errori di sintassi sono spesso causati da parentesi chiuse mancanti o nella posizione sbagliata.Syntax errors are most often caused by a missing or misplaced closing parenthesis.

  5. Per sottrarre le altre due colonne:To subtract the other two columns:

    1. Dopo la parentesi chiusa della prima espressione digitare uno spazio, un operatore di sottrazione (-) e un altro spazio.After the closing parenthesis for the first expression, type a space, a minus operator (-), and another space.
    2. Immettere un'altra funzione SUM e iniziare a digitare "DiscountAmount" fino a quando non è possibile scegliere la colonna Sales[DiscountAmount] come argomento.Enter another SUM function, and start typing "DiscountAmount" until you can choose the Sales[DiscountAmount] column as the argument. Aggiungere una parentesi di chiusura.Add a closing parenthesis.
    3. Digitare uno spazio, un altro operatore di sottrazione, uno spazio, un'altra funzione SUM con Sales[ReturnAmount] come argomento e una parentesi di chiusura.Type a space, another minus operator, space, another SUM function with Sales[ReturnAmount] as the argument, and a closing parenthesis.

    Formula completa

  6. Per completare e convalidare la formula, premere INVIO oppure fare clic sul segno di spunta nella barra della formula.Press Enter or click the checkmark in the formula bar to complete and validate the formula. La misura convalidata è ora pronta per l'uso nell'elenco Campi per la tabella Sales.The validated measure is now ready to use in the Field list for the Sales table.

    Misura nell'elenco Campi

Se si esaurisce lo spazio disponibile per l'immissione di una formula o si vuole immetterla in righe separate, selezionare la freccia di espansione verso il basso sul lato destro della barra della formula per aumentare lo spazio.If you run out of room for entering a formula or want it to be on separate lines, select the down chevron on the right side of the formula bar to open up more space.

Freccia di espansione della formula

È possibile separare le parti della formula su diverse righe premendo ALT+INVIO oppure spostare gli elementi con TAB.You can separate parts of your formula on different lines by pressing Alt-Enter, or move things over by using Tab.

Formula espansa

Usare la misura nel reportUse your measure in the report

È ora possibile aggiungere la misura Net Sales nell'area di disegno report e calcolare il fatturato netto per qualsiasi altro campo aggiunto al report.Now you can add your Net Sales measure to the report canvas, and calculate net sales for whatever other fields you add to the report. Per visualizzare il fatturato netto per paese:To look at net sales by country:

  1. Selezionare la misura Net Sales dalla tabella Sales o trascinarla sull'area di disegno report.Select the Net Sales measure from the Sales table, or drag it onto the report canvas.

  2. Selezionare il campo RegionCountryName della tabella Geography o trascinarlo nel grafico.Select the RegionCountryName field from the Geography table, or drag it into the chart.

    Fatturato netto per paese

Per visualizzare la differenza tra fatturato netto e vendite totali in base al paese, selezionare il campo SalesAmount oppure trascinarlo nel grafico.To see the difference between net sales and total sales by country, select the SalesAmount field or drag it into the chart.

Importo delle vendite e fatturato netto per paese

Il grafico usa ora due misure: SalesAmount, sommata automaticamente e la misura Net Sales creata.The chart now uses two measures: SalesAmount, which was summed automatically, and the Net Sales measure you created. Ogni misura è stata calcolata nel contesto di un altro campo, RegionCountryName.Each measure was calculated in the context of another field, RegionCountryName.

Usare la misura con un filtro dei datiUse your measure with a slicer

È possibile aggiungere un filtro dei dati per filtrare ulteriormente il fatturato netto e l'importo delle vendite in base all'anno di calendario.You can add a slicer to further filter net sales and sales amounts by calendar year.

  1. Fare clic su un'area vuota accanto al grafico, quindi in Visualizzazioni selezionare la visualizzazione Tabella.Click a blank area next to the chart, then in Visualizations, select the Table visualization. Verrà creata una visualizzazione di tabella vuota nell'area di disegno report.This creates a blank table visualization on the report canvas.

  2. Trascinare il campo Year dalla tabella Calendar nella nuova visualizzazione di tabella vuota.Drag the Year field from the Calendar table into the new blank table visualization. Dato che Year è un campo numerico, Power BI Desktop somma i relativi valori, ma questo calcolo non ha molto senso come aggregazione.Because Year is a numeric field, Power BI Desktop sums up its values, but that doesn’t make much sense as an aggregation.

    Aggregazione in base all'anno

  3. In Valori nel riquadro Visualizzazioni selezionare la freccia in giù accanto a Year e quindi selezionare Non riepilogare.In Values in the Visualizations pane, select the down arrow next to Year, and then select Don't summarize. Nella tabella sono ora elencati singoli anni.The table now lists individual years.

    Non riepilogare

  4. Selezionare l'icona Filtro dei dati nel riquadro Visualizzazioni per convertire la tabella in un filtro dei dati.Select the Slicer icon in the Visualizations pane to convert the table into a slicer.

    Conversione in filtro dei dati

  5. Selezionare qualsiasi valore nel filtro dei dati Year per filtrare il grafico Net Sales and Sales Amount by RegionCountryName di conseguenza.Select any value in the Year slicer to filter the Net Sales and Sales Amount by Country chart accordingly. Le misure Net Sales e SalesAmount vengono ricalcolate e vengono visualizzati i risultati nel contesto del campo Year selezionato.The Net Sales and SalesAmount measures recalculate and display results in the context of the selected Year field.

    Grafico filtrato in base all'anno

Usare la misura in un'altra misuraUse your measure in another measure

Si supponga di voler scoprire quali prodotti registrano il fatturato netto maggiore per unità. A tale scopo serve una misura per dividere il fatturato netto per la quantità di unità vendute.You want to find out which products have the highest net sales amount per unit sold, so you need a measure that divides net sales by the quantity of units sold. È possibile creare una nuova misura che divide il risultato della misura Net Sales per la somma di Sales[SalesQuantity].You can create a new measure that divides the result of your Net Sales measure by the sum of Sales[SalesQuantity].

  1. Creare una nuova misura denominata Net Sales per Unit nella tabella Sales.Create a new measure named Net Sales per Unit in the Sales table.

  2. Nella barra della formula iniziare a digitare Net Sales.In the formula bar, begin typing Net Sales. L'elenco di suggerimenti mostrerà gli elementi che è possibile aggiungere.The suggestion list will show what you can add. Selezionare [Net Sales].Select [Net Sales].

    Formula che usa Net Sales

    È anche possibile fare riferimento alle misure semplicemente digitando una parentesi aperta ([).You can also reference measures by just typing an opening bracket ([). L'elenco di suggerimenti mostrerà solo le misure per l'aggiunta alla formula.The suggestion list will show only measures to add to your formula.

    Con la parentesi quadra vengono visualizzate solo le misure

  3. Immettere uno spazio, un operatore di divisione (/), un altro spazio, una funzione SUM e quindi digitare Quantity.Enter a space, a divide operator (/), another space, a SUM function, and then type Quantity. L'elenco dei suggerimenti mostra tutte le colonne il cui nome contiene il termine Quantity.The suggestion list shows all the columns with Quantity in the name. Selezionare Sales[SalesQuantity], digitare la parentesi di chiusura e premere INVIO o selezionare il segno di spunta per convalidare la formula.Select Sales[SalesQuantity], type the closing parenthesis, and press ENTER or select the checkmark to validate your formula. La formula dovrebbe essere simile alla seguente:The formula should look like this:

    Net Sales per Unit = [Net Sales] / SUM(Sales[SalesQuantity])

  4. Selezionare la misura Net Sales per Unit dalla tabella Sales o trascinarla in un'area vuota nell'area di disegno report.Select the Net Sales per Unit measure from the Sales table, or drag it onto a blank area in the report canvas. Il grafico mostra l'importo del fatturato netto per unità per tutti i prodotti venduti, non molto informativo.The chart shows the net sales amount per unit over all products sold, which is not very informative.

    Fatturato netto complessivo per unità

  5. Per ottenere un aspetto diverso, modificare il tipo di visualizzazione del grafico in Mappa ad albero.For a different look, change the chart visualization type to Treemap.

    Passare alla mappa ad albero

  6. Selezionare il campo Product Category oppure trascinarlo nella mappa ad albero o nel campo Gruppo del riquadro Visualizzazioni.Select the Product Category field, or drag it into the treemap or into the Group field of the Visualizations pane. A questo punto sono disponibili informazioni utili.Now you have some good info!

    Mappa ad albero in base alla categoria di prodotto

  7. Provare a rimuovere il campo ProductCategory e a trascinare invece il campo ProductName nel grafico.Try removing the ProductCategory field, and dragging the ProductName field into the chart instead.

    Mappa ad albero in base al nome del prodotto

È stato illustrato solo un esempio, ma comunque molto interessante.Ok, now we're just playing, but you have to admit that's cool! Sperimentare altri modi per filtrare e formattare la visualizzazione.Experiment with other ways to filter and format the visualization.

Informazioni appreseWhat you've learned

Le misure costituiscono un potente strumento per ottenere le informazioni desiderate dai dati.Measures give you a lot of power to get the insights you want from your data. Si è imparato a creare misure usando la barra della formula, ad assegnare loro un nome significativo, nonché a trovare e selezionare gli elementi della formula appropriati usando gli elenchi di suggerimenti DAX.You've learned how to create measures by using the formula bar, name them whatever makes most sense, and find and select the right formula elements by using the DAX suggestion lists. È stato anche presentato il concetto di contesto, in cui il risultato dei calcoli nelle misure cambia in base ad altri campi o ad altre espressioni nella formula.You've also been introduced to context, where the results of calculations in measures change according to other fields or other expressions in your formula.

Passaggi successiviNext steps