Post archive
Sunday 2024-04-28
Almost all of my optimization work in Power BI and Tabular seems to come down to this one idea. I cannot remember the last time I spent significant time on a problem that did not end up with much less DAX and more tables, columns, relationships, or a combination of the three. I hope to soon write more about modeling and some of the more interesting patterns I have been working on lately. For now, a fun little diversion on string searching. In this post, I explore a model to optimize substring search in a text column with a lookup table and an N:N bridge. It turns out that this is significantly faster than filtering on a substring search (e.g., with
CONTAINSSTRING
).Advancing Power BI and Tabular
Wednesday 2024-01-17
New year, new blog post, lotsa new! In the last year, as seems normal now, most of my writing remained code and conference presentations. We launched Argus PBI. I worked on some very cool data models. Oh, and I started working at Tabular Editor , too!
Monday 2022-12-12
For a fun challenge, and hopefully to prompt a slightly better cadence of writing, I am doing this year's Advent of Code in Power BI. If you are not familiar with Advent of Code, it is an annual series of programming challenges, one per day of December leading up to Christmas. It is a great opportunity to practice a programming language with small, self-contained problems of increasing difficulty. Power BI is probably not a great fit for some of the algorithmic challenges that are likely to appear in later days, but I want to take it as far as I can. I will be updating this post in place as I go, with brief notes on each day's challenge. All code can be found in the companion pbix (week 2), with comments to explain my approach. I will not give full write-ups of each solution in this post, but encourage you to follow along in that PBIX as I update it, or better yet, by trying out the challenges on your own!
On DAX's difficulty and CALCULATE: a rant
Thursday 2022-11-03
Why is DAX so hard to learn? It is an evergreen topic. DAX is difficult to learn because of its inherent complexity. DAX is presented as difficult to learn in ways that do not align with this complexity. The topic is evergreen because of demography among DAXists. This difficulty has spawned a movement, for lack of a better term, rebelling against
CALCULATE
and purporting to improve the experience of writing DAX by writing it worse. In this post, I will explore these topics and share some opinions on the same.DAX column types on PowerBI.tips
Tuesday 2021-12-07
I've just published a post exploring the nuances of data types in columns in DAX. (Archive.) This reveals some unexpected behavior in projected columns in a DAX expression. See the post on Power BI Tips for all the gory details (and a bonus pattern for dynamic ranking and aggregation as the worked example).
Understanding filter context as sets of values
Friday 2019-10-11
I recently came across a real head-scratcher of a question on Stack Overflow. This post is an expansion of the answer I gave there. The goal is to provide a useful model to understand filter context. This is foundational knowledge for any aspiring DAXter (DAXist?) and is required to understand
CALCULATE
properly.Monday 2018-04-30
I have been thinking about doing this for a while now, and I guess I just got up enough nerve to do it. I have some thoughts I think I would like to publish. Strangely, the prompt was a friend of mine asking for my thoughts on how her coworker might be able to get better at data analysis from a very fundamental level. I shared some thoughts, which have stuck with me for reasons inscrutable. So, I already have a first real topic decided.