Power Query is quite fast and the underlying data model engine in PowerBI and Excel has excellent performance. Pragmatic works has a nice pdf with tips. The single best thing to do in favour of performance is to remove any unneeded fields from the core queries. This means to only bring in those fields that are needed, eliminate others from the original query so that they are not brought over in the first place.
First value of grouped values
Here is how to group by a field in PowerQuery and list the first value of another column:
Query data from websites into Excel or PowerBI
Power Query works great to extract data from websites. For example, I have a Joomla site that has a list of articles in a table. I wanted to summarize article hits per year.
Using Excel and Power Query:
- Fresh Excel sheet – Data->New Query Put in the path to the website, pick the correct table and load the data.
- Take time to set the correct data type for each column. This helps on later stages. Especially ensure that you pick whole numbers for columns that have whole numbers, datetype for such columns etc. Also, remove any unwanted columns etc.
- Save and close the query – and your data will be available in Excel. Now, create a PivotTable, join with other data etc.
This process would be very similar for PowerBI.
IT access to a private Analyzer layout
At AXnorth we sell and support the AXtend Analyzer. One of the great features of the Analyzer is how users can create their own private layouts, their own way of seeing the data.
If the need arises that you as an IT needs to look at these layouts here is how you make yourself the owner of a given layout (assuming that you have edit access to the database).
Layoutname in question: PrivateLayout1
AD name of IT person: domain\it1
AD name of the original creator of layout: domain\un1
Here are the steps:
1. Use this query to retrieve the needed information about the layout:
select * from na.FormLayout_v2 f
where f.LayoutName like ‘%PrivateLayout1%’
Make a copy of the AD name of the original creator of the layout so you can revert your changes back later. Also, make sure you have the unique name of the layout ready to use for the following update statement. You want to make sure only to update no more than one layout.
2. Run a sql update to make yourself the owner of the layout:
update na.FormLayout_v2
set UserName = ‘domain\it1’
where LayoutName = ‘PrivateLayout1’
3. Now you can restart/open Analyzer and open the layout that you previously did not have access to.
4. Remember to revert the changes in #2 once you are done testing/working with the layout in Analyzer.
Disable autodected relationships in complex PowerBI solutions
In complex PowerBI solutions it is not helpful to autodect relationships during dataload. To disable that go to File->Options->Current File->Data Load->Relationships
Remove duplicates from string
Here is how to remove duplicates from a concatenated string and return as a string. Notice, this is done by creating a function (RemoveDupl) which is then referenced.
To transform a column in a table using this function:
#”DuplRemoved” = Table.TransformColumns(#”Removed Columns1″,{{“MonthColumnName”, RemoveDupl }})
Power Query group by one column and concatenate string values of another column
I needed an example of how to group by one column and concatenate string values of another column.
Here is what this ended up like:
—
let
Source = #table({“Product”, “Customer”},{{ “Apples”,”Chris”},{“Apples”,”Fred”} ,{“Oranges”,”Chris”}}),
myCombine = Combiner.CombineTextByDelimiter(“;”),
#”Grouped Rows” = Table.Group(Source, {“Product”}, {{“Test”, each myCombine ([Customer]), type text}})
in
#”Grouped Rows”
—
Visual Studio AX7 building a single project
Working with VS.NET 2013 on AX7. Noticed that when I want to build a single project (rightclick->build) – the whole solution was still built. Found that doing rightclick->Clean before build resulted in just the project in question being built.
Power Query (M) union between two tables
I have recently been discovering the strength of Power Query (nick name M). It is a programming language that Microsoft has been introducing into Excel Power Pivot, Power BI and more.
Having a full blown programming language makes these tools all the more appealing. Here is a test example on how to union two tables together:
—
let
TableA = #table({“Name”, “Age”}, {{“John”,23},{“Mary”,25}}),
TableB = #table({“Name”, “Age”}, {{“Smith”,33},{“Ulrich”,35}}),
TableC = Table.Combine({TableA, TableB})
in
TableC
—
Row to comma separated list
In SQL you may need to concatenate data from several rows into a comma concatenated list. Here is one way to do that:movie Bridget Jones’s Baby