Esercitazione: Creare colonne calcolate in Power BI DesktopTutorial: Create calculated columns in Power BI Desktop

Talvolta i dati analizzati non contengono un campo specifico necessario per ottenere i risultati desiderati.Sometimes the data you’re analyzing just doesn’t contain a particular field you need to get the results you’re after. In questo caso, è utile usare le colonne calcolate.This is where calculated columns come in. Le colonne calcolate usano formule DAX (Data Analysis Expressions) per definire i valori di una colonna.Calculated columns use Data Analysis Expressions (DAX) formulas to define a column’s values. Tali valori possono essere di qualsiasi tipo, ad esempio la combinazione di valori di testo di due diverse colonne in un'altra posizione nel modello o il risultato del calcolo di un valore numerico a partire da altri valori.Those values can be just about anything, whether it be putting together text values from a couple of different columns elsewhere in the model, or calculating a numeric value from other values. Si immagini, ad esempio, che nei dati siano presenti le colonne Città e Stato (come campi nell'elenco dei campi) ma si voglia un unico campo, Località, che includa entrambi come singolo valore, ad esempio Miami, FL.For example, let’s say your data has a City and State columns (as fields in the Fields list), but you want a single Location field that has both as a single value, like Miami, FL. Le colonne calcolate servono esattamente per questo scopo.This is precisely what calculated columns are for.

Le colonne calcolate sono simili alle misure perché sono entrambe basate su una formula DAX, ma si differenziano per la modalità d'uso.Calculated columns are similar to measures in that both are based on a DAX formula, but they differ in how they are used. Le misure vengono spesso usate nell'area relativa ai valori di una visualizzazione, per calcolare i risultati in base ad altri campi presenti in una riga di una tabella, oppure in un'area relativa a un asse, una legenda o un gruppo di una visualizzazione.Measures are most often used in the Values area of a visualization, to calculate results based on other fields you have on a row in a table, or in an Axis, Legend, or Group area of a visualization. Le colonne calcolate vengono invece usate quando si vogliono i risultati della colonna in una determinata riga nella tabella oppure nell'area relativa a un asse, una legenda o un gruppo.Calculated columns on the other hand are used when you want the column’s results on that row in the table, or in the Axis, Legend, or Group area.

Questa esercitazione illustra il significato e la modalità di creazione delle colonne calcolate in Power BI Desktop.This tutorial will guide you through understanding and creating some of your own calculated columns in Power BI Desktop. L'argomento è rivolto agli utenti di Power BI che sanno già usare Power BI Desktop per creare modelli più avanzati.It’s 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 di Query per importare i dati, l'uso di più tabelle correlate e l'aggiunta di campi all'area di disegno report.You should already be familiar with using Query 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.

Per completare i passaggi di questa esercitazione, è necessario scaricare il file Contoso Sales Sample for Power BI Desktop.To complete the steps in this tutorial, you’ll need to download the Contoso Sales Sample for Power BI Desktop file. Si tratta dello stesso file di esempio usato nell'esercitazione Creare misure personalizzate in Power BI Desktop.This is the same sample file used for the Create your own measures in Power BI Desktop tutorial. Il file include i dati delle vendite della società fittizia Contoso, Inc. Dal momento che i dati nel file sono stati importati da un database, non sarà possibile connettersi all'origine dati o visualizzare i dati nell'Editor di query.It already includes sales data from the fictitious company, Contoso, Inc. Because data in the file was imported from a database, you won’t be able to connect to the datasource or view it in Query Editor. Una volta scaricato il file nel computer, aprirlo in Power BI Desktop.When you have the file on your own computer, go ahead and open it in Power BI Desktop.

Creare una colonna calcolataLet’s create a calculated column

Si supponga di voler visualizzare le categorie di prodotti insieme alle sottocategorie in un singolo valore nelle righe, ad esempio Cellulari - Accessori, Cellulari - Smartphone e PDA e così via.Let’s say we want to display product categories together with product subcategories in a single value on rows, like Cell phones – Accessories, Cell phones – Smart phones & PDAs, and so on. In Visualizzazione Report e Vista dati (in questo caso, Visualizzazione Report), analizzando le tabelle di prodotti nell'elenco dei campi è possibile notare che non sono disponibili campi che offrono ciò che si vuole.In Report View or Data View (we're using Report View here), If we look at our product tables in the Fields list, we see there’s no field that gives is what we want. Sono tuttavia presenti un campo ProductCategory e un campo ProductSubcategory, ognuno nella relativa tabella.We do, however, have a ProductCategory field and a ProductSubcategory field, each in their own tables.

Si creerà una nuova colonna calcolata per combinare i valori di queste due colonne in nuovi valori per la nuova colonna.We’ll create a new calculated column to combine values from these two column into new values for our new column. È interessante notare che è necessario combinare dati di due tabelle diverse in una singola colonna.Interestingly enough, we need to combine data from two different tables into a single column. Dal momento che si userà DAX per creare la nuova colonna, è possibile sfruttare tutte le potenzialità del modello già disponibile, incluse le relazioni tra tabelle diverse già esistenti.Because we’re going to use DAX to create our new column, we can leverage the full power of the model we already have, including the relationships between different tables that already exist.

Per creare una colonna ProductFullCategoryTo create a ProductFullCategory column

  1. Fare clic con il pulsante destro del mouse oppure fare clic sulla freccia verso il basso nella tabella ProductSubcategory nell'elenco dei campi e quindi scegliere Nuova colonna.Right click, or click the down arrow on the ProductSubcategory table in the Fields list, and then click New Column. In questo modo, la nuova colonna verrà aggiunta alla tabella ProductSubcategory.This will make sure our new column is added to the ProductSubcategory table.

    La barra della formula viene visualizzata nella parte superiore dell'area di disegno report, o griglia dei dati.The formula bar appears along the top of the Report canvas or Data grid. Qui è possibile rinominare la colonna e immettere una formula DAX.This is where we can rename our column and enter a DAX formula.

    Per impostazione predefinita, una nuova colonna calcolata viene semplicemente denominata Column.By default a new calculated column is simply named Column. Se non viene rinominata, le altre colonne create verranno denominate Column 2, Column 3 e così via.If we don’t rename it, when we create another, it will be named Column 2, Column 3, and so on. Per semplificare l'identificazione delle colonne, si assegnerà un nuovo nome alla nuova colonna.We want our columns to be more identifiable, so we’ll give our new column a new name.

  2. Il nome Column è già evidenziato nella barra della formula, quindi è sufficiente digitare ProductFullCategory.Since the Column name is already highlighted in the formula bar, just type ProductFullCategory.

    A questo punto, è possibile iniziare a immettere la formula.Now we can begin entering our formula. Si vuole che i valori nella nuova colonna inizino con il nome ProductCategory della tabella ProductCategory.We want the values in our new column to start with the ProductCategory name from the ProductCategory table. Dal momento che questa colonna si trova in una tabella diversa, ma correlata, viene usata la funzione RELATED per eseguire l'operazione.Because this column is in a different, but related table, we’re going to use the RELATED function to help us get it.

  3. Dopo il segno di uguale digitare R. Verrà visualizzato un elenco a discesa di suggerimenti con tutte le funzioni DAX che iniziano con la lettera R. Man mano che si digita, l'elenco di suggerimenti viene ridotto fino a mostrare la funzione desiderata.After the equals sign, type R. You’ll see a dropdown suggestion list appear with all of the DAX functions beginning with the letter R. The more we type, the more the suggestion list is scaled closer to the function we need. Accanto alla funzione viene visualizzata la relativa descrizione.Next to the function you’ll see a description of the function. Selezionare RELATED scorrendo verso il basso e quindi premere INVIO.Select RELATED by scrolling down, and then pressing Enter.

    Viene visualizzata una parentesi aperta, con un altro elenco di suggerimenti con tutte le colonne disponibili che è possibile passare alla funzione RELATED.An opening parenthesis appears along with another suggestion list of all of the available columns we can pass to the RELATED function. Vengono visualizzate anche una descrizione e informazioni dettagliate sui parametri previsti.A description and details on what parameters are expected is also shown.

    Un'espressione è sempre racchiusa tra una parentesi aperta e una chiusa.An expression always appears between an opening and closing parenthesis. In questo caso, l'espressione conterrà un solo argomento, passato alla funzione RELATED, costituito da una colonna correlata da cui restituire i valori.In this case, our expression is going to contain a single argument passed to the RELATED function; a related column to return values from. L'elenco delle colonne viene limitato automaticamente, per mostrare solo le colonne correlate.The list of columns is automatically narrowed down to show only the columns that are related. In questo caso, si vuole la colonna ProductCategory nella tabella ProductCategory.In this case, we want the ProductCategory column in the ProductCategory table.

    Selezionare ProductCategory[ProductCategory]e quindi digitare una parentesi chiusa.Select ProductCategory[ProductCategory], 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. Spesso, però, Power BI Desktop le aggiunge se l'utente le dimentica.But often Power BI Desktop will add it if you forget.

  4. Si vuole aggiungere un simbolo trattino per separare i valori, quindi, dopo la parentesi chiusa della prima espressione, digitare uno spazio, una e commerciale (&), virgolette, uno spazio, un trattino (-), un altro spazio, virgolette di chiusura e quindi un'altra e commerciale.We want to add a dash symbol to separate each value, so after the closing parenthesis of the first expression, type a space, ampersand (&), quote, space, dash (-), another space, a closing quote, and then another ampersand. La formula a questo punto dovrebbe essere simile alla seguente:Your formula should now look like this:

    ProductFullCategory = RELATED(ProductCategory[ProductCategory]) & " - " &ProductFullCategory = RELATED(ProductCategory[ProductCategory]) & " - " &

    Suggerimento

    Fare clic sulla freccia di espansione verso il basso sul lato destro della barra della formula per espandere l'editor di formule.Click the down chevron on the right side of the formula bar to expand the formula editor. Fare clic su Alt e Invio per spostarsi di una riga verso il basso e Tab per spostare gli elementi.Click Alt & Enter to move down a line, and Tab to move things over.

  5. Infine, immettere un'altra parentesi quadra aperta e selezionare la colonna [ProductSubcategory] per completare la formula.Finally, enter another opening bracket and then select the [ProductSubcategory] column to finish the formula. La formula dovrebbe essere simile alla seguente:Your formula should look like this:

    Si noterà che non è stata usata un'altra funzione RELATED nella seconda espressione per chiamare la colonna ProductSubcategory.You’ll notice we didn’t use another RELATED function in the second expression calling the ProductSubcategory column. Questa colonna si trova infatti nella stessa tabella in cui si sta creando la nuova colonna.This is because this column is already in the same table we’re creating our new column in. È possibile immettere [ProductCategory] con il nome della tabella (completo) o senza (non completo).We can enter [ProductCategory] with the table name (fully qualified) or without (non-qualified).

  6. Completare la formula premendo INVIO oppure facendo clic sul segno di spunta nella barra della formula.Complete the formula by pressing Enter or clicking on the checkmark in the formula bar. La formula viene convalidata e aggiunta all'elenco dei campi nella tabella ProductSubcategory .The formula is validated and added to the field list in the ProductSubcategory table.

    Si noterà che le colonne calcolate sono associate a un'icona speciale nell'elenco dei campi.You’ll notice calculated columns get a special icon in the field list. Ciò indica che contengono una formula.This shows they contain a formula. Questa visualizzazione è presente solo in Power BI Desktop.They’ll only appear like this in Power BI Desktop. Nel servizio Power BI (il proprio sito di Power BI) non è possibile modificare una formula, quindi un campo costituito da una colonna calcolata non sarà associato a un'icona.In the PowerBI service (your Power BI site), there’s no way to change a formula, so a calculated column field doesn’t have an icon.

Aggiungere la nuova colonna a un reportLet’s add our new column to a report

È ora possibile aggiungere la nuova colonna ProductFullCategory all'area di disegno report.Now we can add our new ProductFullCategory column to the report canvas. Esaminare SalesAmount per ProductFullCategory.Let’s look at SalesAmount by ProductFullCategory.

Trascinare la colonna ProductFullCategory dalla tabella ProductSubcategory all'area di disegno report e quindi trascinare il campo SalesAmount dalla tabella Sales nel grafico.Drag the ProductFullCategory column from the ProductSubcategory table onto the Report canvas, and then drag the SalesAmount field from the Sales table into the chart.

Creare un'altra colonnaLet’s create another

Ora che è stato appreso come creare una colonna calcolata, è possibile crearne un'altra.Now that you know how to create a calculated column, let’s create another.

L'esempio Contoso Sales for Power BI Desktop contiene dati sulle vendite sia per i negozi attivi sia per quelli non attivi.The Contoso Sales Sample for Power BI Desktop model contains sales data for both active and inactive stores. Si vogliono segnalare in modo chiaro i dati visualizzati per i negozi non attivi.We want to make it really clear that data shown for inactive stores is identified as such. Si vuole, in concreto, creare un campo denominato Active StoreName.In-effect, we want a field named Active StoreName. A tale scopo, si creerà un'altra colonna.To do this, we’ll create another column. In questo caso, quando un negozio non è attivo, si vuole che la nuova colonna Active StoreName (come campo) mostri il nome del negozio come "Inactive" e mostri invece il nome reale per i negozi attivi.In this case, when a store is inactive, we want our new Active StoreName column (as a field) to show the store’s name as “Inactive”, but show the store’s real name when it’s an active store.

Fortunatamente, la tabella Stores include una colonna denominata Status, con un valore On per i negozi attivi e Off per quelli non attivi.Fortunately, our Stores table has a column named Status, with a value of On for active stores, and Off for inactive stores. È possibile testare i valori per ogni riga nella colonna Status per creare nuovi valori nella nuova colonna.We can test values for each row in the Status column to create new values in our new column.

Per creare una colonna Active StoreNameTo create an Active StoreName column

  1. Creare una nuova colonna calcolata denominata Active StoreName nella tabella Stores.Create a new calculated column named Active StoreName in the Stores table.

    Per questa colonna, la formula DAX controllerà lo stato di ogni negozio.For this column, our DAX formula is going to check each stores status. Se lo stato è On, la formula restituirà il nome del negozio.If a stores status is On, our formula will return the stores name. Se è Off, il nome sarà "Inactive".If it’s Off, it will have the name, “Inactive”. A tale scopo, viene usata la funzione logica IF per testare lo stato dei negozi e restituire un valore specifico se il risultato è true o false.To do this, we’ll use the logical IF function to test the stores status and return a particular value if the result is true or false.

  2. Digitare prima di tutto IF.Begin typing IF. L'elenco di suggerimenti mostrerà gli elementi che è possibile aggiungere.The suggestion list will show what we can add. Selezionare IF.Select IF.

    Il primo argomento per IF è un test logico.The first argument for IF is a logical test. Si vuole verificare se un negozio ha o meno uno stato "On".We want to test whether or not a store has a status of “On”.

  3. Digitare una parentesi quadra aperta [, che consente di selezionare le colonne per la tabella Stores.Type an opening bracket [ , which allows us to select columns from the Stores table. Selezionare [Status].Select [Status].

  4. Subito dopo [Status], digitare ="On", quindi immettere una virgola (,) per specificare il secondo argomento.Right after [Status], type ="On", then enter a comma (,) to enter the second argument. La descrizione comando suggerisce che è necessario aggiungere il valore da usare quando il risultato è true.The tooltip suggests we need to add the value for when the result is true.

  5. Se lo stato del negozio è On, si vuole visualizzare il nome del negozio.If the store is On, we want to show the store’s name. Digitare una parentesi quadra aperta [ e selezionare la colonna [StoreName] , quindi digitare un'altra virgola per poter immettere il terzo argomento.Type an opening bracket [ and select the [StoreName] column, and then type another comma so we can enter our third argument.

  6. È necessario aggiungere un valore da usare quando il risultato è false. In questo caso il valore sarà "Inactive".We need to add a value for when the result is false, in this case we want the value to be “Inactive”.

  7. Completare la formula premendo INVIO oppure facendo clic sul segno di spunta nella barra della formula.Complete the formula by pressing Enter or clicking on the checkmark in the formula bar. La formula viene convalidata e aggiunta all'elenco dei campi nella tabella Stores.The formula is validated and added to the field list in the Stores table.

    Analogamente a qualsiasi altro campo, è possibile usare la nuova colonna Active StoreName nelle visualizzazioni.Just like any other field, we can use our new Active StoreName column in visualizations. In questo grafico i negozi con stato On sono visualizzati singolarmente con il relativo nome, mentre quelli con stato Off sono raggruppati e visualizzati come Inactive.In this chart, stores with a status of On are shown individually by name, but stores with a status of Off are grouped together and shown as Inactive.

Concetti appresiWhat we’ve learned

Le colonne calcolate possono rendere più completi i dati, fornendo in modo semplice informazioni approfondite.Calculated columns can enrich our data, providing easier insights. È stato appreso come creare colonne calcolate usando la barra della formula, come usare l'elenco di suggerimenti e come scegliere il nome più appropriato per le nuove colonne.We've learned how to create calculated columns by using the formula bar, how to use the suggestions list, and how to best name our new columns.

Passaggi successiviNext steps

Per approfondire i concetti relativi alle formule DAX e creare colonne calcolate con formule DAX più avanzate, vedere Nozioni di DAX in Power BI Desktop.If you want to take a deeper dive into DAX formulas, and create calculated columns with more advanced DAX formulas, see DAX Basics in Power BI Desktop. Questo articolo illustra i concetti fondamentali in DAX, ad esempio sintassi, funzioni e una maggiore comprensione del contesto.This article focuses on fundamental concepts in DAX, such as syntax, functions, and a more thorough understanding of context.

Non dimenticare di aggiungere ai Preferiti la pagina Riferimento a Data Analysis Expressions (DAX).Be sure to add the Data Analysis Expressions (DAX) Reference to your favorites. che include informazioni dettagliate sulla sintassi e sugli operatori DAX, nonché sulle oltre 200 funzioni DAX disponibili.This is where you'll find detailed info on DAX syntax, operators, and the over 200 DAX functions.