Home Posts About FAQ? Tip jar

greggyb's blog

I am Greg, or greggyb in as many places online as I can be. This is my blog. Sometimes I post here.

I work on simplifying Power BI operations at Argus PBI and improving developer experience at Tabular Editor. If you want to, you can read more about me, here, but I have to warn you that I do not have much to say on the topic.

Find me



And in the past

You can find a comprehensive list of me at places other than here on my About page.

Here are some recent posts

  • Use more model!

    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

    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!

  • Advent of Code 2022

    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

    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

    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).