{"id":15804,"date":"2019-05-07T13:50:00","date_gmt":"2019-05-07T20:50:00","guid":{"rendered":"https:\/\/devwww.3cloudsolutions.com\/post\/create-a-dynamic-title-in-power-bi-updated-2\/"},"modified":"2024-01-03T14:43:44","modified_gmt":"2024-01-03T22:43:44","slug":"create-a-dynamic-title-in-power-bi-updated","status":"publish","type":"post","link":"https:\/\/3cloudsolutions.com\/resources\/create-a-dynamic-title-in-power-bi-updated\/","title":{"rendered":"Create a Dynamic Title in Power BI (Updated)"},"content":{"rendered":"<p>As features like Drillthrough open the door for Power BI reports to become more interactive \u2013 and by extension, potentially more complex &#8211; it is important that they remain intuitive to use.\u00a0 For example, I have been in several meetings where a Power BI report with drillthrough and bookmarking capabilities is used to drive conversation.\u00a0 As the presenter navigates through the report, she is often asked to go back to the original page to double check her selection for drillthrough or check which bookmark option she selected.\u00a0 This happens for various reasons, whether it\u2019s because the data doesn\u2019t match what people were expecting (eek!), or because the meeting veered off topic a little and now no one can remember with certainty what was selected. All this clicking back and forth eats up valuable time and reduces productivity. The worst part? It\u2019s easily avoidable \u2013 simply add dynamic titles to your drillthrough and bookmarked pages.<\/p>\n<p>The suggestion of dynamic titling in Power BI was first introduced to me by a few of my colleagues at 3Cloud, and I was struck not only by its usefulness, but by how easy it is to implement. It\u2019s simple, powerful, and immensely valuable from a user-experience stand point. It\u2019s something every report developer should be able to do, and I\u2019ll show you how in this post. \u00a0<!--more--><\/p>\n<p>On the main page, users have the option to drillthrough on <em>Breed<\/em> or <em>Group<\/em> from the table, or to click the button to access a report page bookmarked for popular running breeds.<\/p>\n<p><img decoding=\"async\" style=\"width: 800px; display: block; margin-left: auto; margin-right: auto;\" src=\"https:\/\/cdn2.hubspot.net\/hubfs\/257922\/ranking.png\" alt=\"ranking\" width=\"800\" \/><\/p>\n<p>If you drillthrough on <em>Group<\/em> for \u201cHerding\u201d, you\u2019re taken to a page displaying popular herding breeds (some of my personal favorites), with the title \u201cHerding Group\u201d.<\/p>\n<p><img decoding=\"async\" style=\"width: 800px; display: block; margin-left: auto; margin-right: auto;\" src=\"https:\/\/cdn2.hubspot.net\/hubfs\/257922\/herding%20group.png\" alt=\"herding group\" width=\"800\" \/><\/p>\n<p>After admiring the adorable herding breeds, you can navigate back to the main page and click the button, \u201cView Popular Breeds for Runners\u201d. This takes users to the <em>Group<\/em> drillthrough page, bookmarked to display running breeds rather than breeds for a single <em>Group<\/em>. The title reflects this:<\/p>\n<p><img decoding=\"async\" style=\"width: 800px; display: block; margin-left: auto; margin-right: auto;\" src=\"https:\/\/cdn2.hubspot.net\/hubfs\/257922\/runners.png\" alt=\"runners\" width=\"800\" \/><\/p>\n<p>The functionality of the title on this page was accomplished with a simple DAX measure: <a href=\"https:\/\/docs.microsoft.com\/en-us\/dax\/selectedvalue-function\"><strong>SELECTEDVALUE <\/strong><\/a><\/p>\n<p><strong>SELECTEDVALUE<\/strong> checks to see if a field has only one value selected, and if so, it displays the value. If not, it displays an alternate result that you set.<\/p>\n<p>For this page, I created the following measure:<\/p>\n<p>Group Title = SELECTEDVALUE(&#8216;AKC Top 10 Breeds'[Group Name], &#8220;Popular Dog Breeds for Runners&#8221;)<\/p>\n<p>In this measure, <strong>SELECTEDVALUE<\/strong> checks to see if only one <em>Group Name<\/em> is selected, and if so, displays it. If not, it displays the default text string, \u201cPopular Dog Breeds for Runners\u201d. \u00a0I put that measure in a card visual to create my title.\u00a0 When the page is filtered to display a single group via drillthrough, it displays the <em>Group Name:<\/em><\/p>\n<p><em><img decoding=\"async\" style=\"width: 800px; display: block; margin-left: auto; margin-right: auto;\" src=\"https:\/\/cdn2.hubspot.net\/hubfs\/257922\/herding.png\" alt=\"herding\" width=\"800\" \/><\/em><\/p>\n<p>When a user clicks the button to view popular breeds for runners, the page displays breeds spanning multiple groups, so the default title, \u201cPopular Dog Breeds for Runners\u201d, is displayed.<\/p>\n<p><img decoding=\"async\" style=\"width: 800px; display: block; margin-left: auto; margin-right: auto;\" src=\"https:\/\/cdn2.hubspot.net\/hubfs\/257922\/runners%20group.png\" alt=\"runners group\" width=\"800\" \/><\/p>\n<p>This title improves user-experience by displaying the user\u2019s selection prominently on the page, so she can be confident of her selection and subsequent analysis of data on the page.<\/p>\n<p>If you navigate back to the main page again, you can also drillthrough on <em>Breed<\/em>. This takes you to a page that can only be accessed by drilling on a single breed.<\/p>\n<table style=\"width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 419px;\"><img decoding=\"async\" style=\"width: 400px; margin: 0px auto; display: block;\" src=\"https:\/\/cdn2.hubspot.net\/hubfs\/257922\/GSD.png\" alt=\"GSD\" width=\"400\" \/><\/td>\n<td style=\"width: 420px;\"><img decoding=\"async\" style=\"width: 400px; display: block; margin-left: auto; margin-right: auto;\" src=\"https:\/\/cdn2.hubspot.net\/hubfs\/257922\/German%20Shepherd.png\" alt=\"German Shepherd\" width=\"400\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Since only one value from <em>Breed<\/em> will ever be shown on this page, rather than use a DAX measure to create a dynamic title, I display <em>Breed<\/em> in a card visual for the title. Because of the functionality of the report, there\u2019s no need for a default value here, and thus no need to create a title measure. This avoids over-engineering the report with extraneous measures, as too many measures can affect performance. \u00a0Displaying <em>Breed<\/em> in a card visual works just fine as a title for this page:<\/p>\n<p><img decoding=\"async\" style=\"width: 800px; display: block; margin-left: auto; margin-right: auto;\" src=\"https:\/\/cdn2.hubspot.net\/hubfs\/257922\/GS%20Dog.png\" alt=\"GS Dog\" width=\"800\" \/><\/p>\n<p>As you can see from the examples, the second part of creating dynamic titles is controlling how the user can interact with the report. For the flow of the report to work correctly, I never want users to access either the <em>Breed<\/em> or <em>Group<\/em> drillthrough pages via the tabs. By hiding the pages, I ensure that users can only access these pages by either drillthrough or the button from the main page, and thus ensure that my dynamic titles display accurately and in the intended context.<\/p>\n<p><img decoding=\"async\" style=\"width: 600px; display: block; margin-left: auto; margin-right: auto;\" src=\"https:\/\/cdn2.hubspot.net\/hubfs\/257922\/Drill%20through.png\" alt=\"Drill through\" width=\"600\" \/><\/p>\n<p>A dynamic title takes only a few minutes to implement and provides significant value to users during data analysis. Even little details can go a long way, especially when you\u2019re trying to stay on track in a meeting, right?<\/p>\n<p>For more help with DAX, or report design in general, please <a href=\"\/get-started\/\" rel=\" noopener\">reach out to us<\/a> here at 3Cloud!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As Drillthrough features open the door for Power BI reports to become more interactive, it is important that they remain intuitive to use. Read on for some great DAX tips to help manage these features.<\/p>\n","protected":false},"author":21,"featured_media":13999,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[260],"tags":[273],"class_list":["post-15804","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-ai","tag-power-bi","topics-blog"],"acf":[],"_links":{"self":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/posts\/15804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/comments?post=15804"}],"version-history":[{"count":0,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/posts\/15804\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/media\/13999"}],"wp:attachment":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/media?parent=15804"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/categories?post=15804"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/tags?post=15804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}