2018/19 1Carlos J. Costa (ISEG)
Carlos J. Costa (2020)
Prof. Carlos J. Costa, PhD
Associate Professor of Information Systems and Operation Management
COMPUTING LANGUAGES
2018/19 2Carlos J. Costa (ISEG)
Carlos J. Costa (2020)
2018/19 3Carlos J. Costa (ISEG)
Carlos J. Costa (2020)
Power Query M Formula Language.
Language used in the context of PowerQuery
It's a functional, case sensitive language like F#.
2018/19 4Carlos J. Costa (ISEG)
Carlos J. Costa (2020)
Data Analysis Expressions
DAX is primarily a formula or a query
language.
DAX was developed in 2009 by Microsoft
2018/19 5Carlos J. Costa (ISEG)
Carlos J. Costa (2020)
• Creating Columns
2018/19 6Carlos J. Costa (ISEG)
Carlos J. Costa (2020)
• Creating Table
2018/19 7Carlos J. Costa (ISEG)
Carlos J. Costa (2020)
• Arithmetic Operations and Conditions:
Sales[SalesAmount] = Sales[ProductPrice] *
Sales[ProductQuantity]
comment = if(Sales[Profit]>0;"Profit";"Loss")
Margin = if(ISERROR(Sales[profit]/Sales[value]);
BLANK();
Sales[profit]/Sales[value]
)
country= SWITCH ( Sales[idCountry],
"Fr", "France",
"Ca", "Canada",
"Me", "Mexico",
"Un", "USA",
"Other"
)
2018/19 8Carlos J. Costa (ISEG)
Carlos J. Costa (2020)
• LOOKUPVALUE
DiscountValue =
LOOKUPVALUE(Discount[Discount];
Discount[Discount Band];
Sales[Discount Band])
TotalCosts = LOOKUPVALUE(
'Product'[Manufacturing cost];
'Product'[idProduct];
Sales[idProduct]
)*Sales[Units Sold]
2018/19 9Carlos J. Costa (ISEG)
Carlos J. Costa (2020)
• Summarizing
AllSales = sum(Sales[TotalSales_no_Discount])
• SUMX allows to iterate line by line
AllSales =
SUMX (
Sales;
Sales[Sale Price] * Sales[Units Sold]
)
2018/19 10Carlos J. Costa (ISEG)
Carlos J. Costa (2020)
• iterate sales but with conditions
AllSales =
SUMX (
FILTER(
Sales;
Sales[idCountry]="fr"
);
Sales[Sale Price] * Sales[Units
Sold]
)
2018/19 11Carlos J. Costa (ISEG)
Carlos J. Costa (2020)
• SQL:
Select Product.Product, Sum([Units Sold])
From Sales, Product
Where Product.idProduct=Sales.idProduct <- inner joint
Group by Product.Product
• Corresponding in DAX:
Table = SUMMARIZE (
Sales;
'Product'[Product];
"SumOfSales"; SUM (Sales[Units Sold])
)
2018/19 12Carlos J. Costa (ISEG)
Carlos J. Costa (2020)
2018/19 13Carlos J. Costa (ISEG)
Carlos J. Costa (2020)
R is a free software environment for
statistical computing and graphics.
It compiles and runs on a wide variety
of UNIX platforms, Windows and
MacOS.
2018/19 14Carlos J. Costa (ISEG)
Carlos J. Costa (2020)
• Getting Data using
script
• Customizing Visualizations
2018/19 15Carlos J. Costa (ISEG)
Carlos J. Costa (2020)
 Generic Language
 License: compatible with GNU-GPL
 Guido van Rossum
• https://www.python.org/
2018/19 16Carlos J. Costa (ISEG)
Carlos J. Costa (2020)
2018/19 17Carlos J. Costa (ISEG)
Carlos J. Costa (2020)
• Getting Data using
script
• Customizing Visualizations
2018/19 18Carlos J. Costa (ISEG)
Carlos J. Costa (2020)
References
• https://docs.microsoft.com/en-
us/powerquery-m/
• https://docs.microsoft.com/en-us/dax/
• https://docs.microsoft.com/en-us/power-
bi/desktop-python-scripts
• https://docs.microsoft.com/en-us/power-
bi/desktop-r-visuals

Power BI Computing Languages

  • 1.
    2018/19 1Carlos J.Costa (ISEG) Carlos J. Costa (2020) Prof. Carlos J. Costa, PhD Associate Professor of Information Systems and Operation Management COMPUTING LANGUAGES
  • 2.
    2018/19 2Carlos J.Costa (ISEG) Carlos J. Costa (2020)
  • 3.
    2018/19 3Carlos J.Costa (ISEG) Carlos J. Costa (2020) Power Query M Formula Language. Language used in the context of PowerQuery It's a functional, case sensitive language like F#.
  • 4.
    2018/19 4Carlos J.Costa (ISEG) Carlos J. Costa (2020) Data Analysis Expressions DAX is primarily a formula or a query language. DAX was developed in 2009 by Microsoft
  • 5.
    2018/19 5Carlos J.Costa (ISEG) Carlos J. Costa (2020) • Creating Columns
  • 6.
    2018/19 6Carlos J.Costa (ISEG) Carlos J. Costa (2020) • Creating Table
  • 7.
    2018/19 7Carlos J.Costa (ISEG) Carlos J. Costa (2020) • Arithmetic Operations and Conditions: Sales[SalesAmount] = Sales[ProductPrice] * Sales[ProductQuantity] comment = if(Sales[Profit]>0;"Profit";"Loss") Margin = if(ISERROR(Sales[profit]/Sales[value]); BLANK(); Sales[profit]/Sales[value] ) country= SWITCH ( Sales[idCountry], "Fr", "France", "Ca", "Canada", "Me", "Mexico", "Un", "USA", "Other" )
  • 8.
    2018/19 8Carlos J.Costa (ISEG) Carlos J. Costa (2020) • LOOKUPVALUE DiscountValue = LOOKUPVALUE(Discount[Discount]; Discount[Discount Band]; Sales[Discount Band]) TotalCosts = LOOKUPVALUE( 'Product'[Manufacturing cost]; 'Product'[idProduct]; Sales[idProduct] )*Sales[Units Sold]
  • 9.
    2018/19 9Carlos J.Costa (ISEG) Carlos J. Costa (2020) • Summarizing AllSales = sum(Sales[TotalSales_no_Discount]) • SUMX allows to iterate line by line AllSales = SUMX ( Sales; Sales[Sale Price] * Sales[Units Sold] )
  • 10.
    2018/19 10Carlos J.Costa (ISEG) Carlos J. Costa (2020) • iterate sales but with conditions AllSales = SUMX ( FILTER( Sales; Sales[idCountry]="fr" ); Sales[Sale Price] * Sales[Units Sold] )
  • 11.
    2018/19 11Carlos J.Costa (ISEG) Carlos J. Costa (2020) • SQL: Select Product.Product, Sum([Units Sold]) From Sales, Product Where Product.idProduct=Sales.idProduct <- inner joint Group by Product.Product • Corresponding in DAX: Table = SUMMARIZE ( Sales; 'Product'[Product]; "SumOfSales"; SUM (Sales[Units Sold]) )
  • 12.
    2018/19 12Carlos J.Costa (ISEG) Carlos J. Costa (2020)
  • 13.
    2018/19 13Carlos J.Costa (ISEG) Carlos J. Costa (2020) R is a free software environment for statistical computing and graphics. It compiles and runs on a wide variety of UNIX platforms, Windows and MacOS.
  • 14.
    2018/19 14Carlos J.Costa (ISEG) Carlos J. Costa (2020) • Getting Data using script • Customizing Visualizations
  • 15.
    2018/19 15Carlos J.Costa (ISEG) Carlos J. Costa (2020)  Generic Language  License: compatible with GNU-GPL  Guido van Rossum • https://www.python.org/
  • 16.
    2018/19 16Carlos J.Costa (ISEG) Carlos J. Costa (2020)
  • 17.
    2018/19 17Carlos J.Costa (ISEG) Carlos J. Costa (2020) • Getting Data using script • Customizing Visualizations
  • 18.
    2018/19 18Carlos J.Costa (ISEG) Carlos J. Costa (2020) References • https://docs.microsoft.com/en- us/powerquery-m/ • https://docs.microsoft.com/en-us/dax/ • https://docs.microsoft.com/en-us/power- bi/desktop-python-scripts • https://docs.microsoft.com/en-us/power- bi/desktop-r-visuals