tag:blogger.com,1999:blog-77562153350505306412024-03-16T13:59:12.169-04:00Stacy DuBois' Tech BlogTips, tricks, and musings from a Canadian technophileUnknownnoreply@blogger.comBlogger207125tag:blogger.com,1999:blog-7756215335050530641.post-36346637461944786862023-02-19T15:24:00.002-05:002023-08-29T15:55:26.875-04:00Crafting Insights: The Dynamic Appeal of a BI CareerEvery now and then I get the opportunity to speak to someone about careers in technology, and I find it particularly interesting to be able to offer the perspective of working in Business Intelligence specifically. It's a field I sort of stumbled into after years of working as a software developer and data professional and I can't say enough good things about it. Here are a few reasons why I love working in BI:<div><br /></div><div><b>#1: It has impact.</b> Empowering people with insights from data through BI has a profound impact on organizations. When you work in this industry you have the opportunity to very directly feed information to the people who use it to make decisions affecting every aspect of their business. If you like feeling as though your work is making a difference, BI is a great place to be.</div><div><br /></div><div><b>#2: It is stimulating and challenging.</b> When you work in BI, you get to dig into and decipher intricate datasets to reveal patterns, trends, and insights that would otherwise remain hidden. This process of analytical exploration aligns perfectly with my passion for problem-solving and strategic thinking.</div><div><br /></div><div><b>#3: It's always changing.</b> I'm not a fan of repetition. It gets really boring doing the same tasks every single day. The ever-evolving landscape of technology within BI keeps monotony at bay, offering the thrill of constant adaptation to new tools and emerging innovations.</div><div><br /></div><div><b>#4: It's highly collaborative.</b> That stereotype of a programmer sitting alone coding in silence is the total opposite of BI work. Collaboration is a cornerstone of BI, between your own team and clients coming from a diverse range of different teams. That's one of the big advantages of being in this field. Your work can involve people from all parts of your organization, so you get to meet and know a lot of people over the years.</div><div><br /></div><div>As a whole, a career in Business Intelligence gives you the power of impact, stimulation, evolution, and collaboration, making it a really fantastic field to be working in.</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-91426487332520485632022-01-13T18:44:00.038-05:002022-01-20T14:00:39.665-05:00Zoom: Improve Call Sound Quality<p> By default Zoom calls don't have the greatest sound quality, which isn't much of an issue for most spoken conversations but can be problematic if you're using the call for music or some other purpose that requires high quality audio.</p><p>To improve the audio you send over a Zoom call, enable high fidelity music mode through the following steps:</p><p></p><ol style="text-align: left;"><li>Open the Zoom application on your computer.</li><li>Click on your profile picture.</li><li>Click 'Settings'.</li><li>On the left-hand side menu, click 'Audio'.</li><li>Check the checkbox next to 'Show in-meeting option to "Enable Original Sound" from microphone'.</li><li>Check the checkbox next to 'High fidelity music mode'.</li><li>You may also want to check the other checkboxes to 'Disable echo cancellation' and 'Use stereo audio'.</li><li>When you are in your meeting, click on 'Turn on Original Sound' in the top left-hand corner.</li></ol><p></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-34777943708873889562021-10-05T19:50:00.002-04:002021-10-06T17:24:43.963-04:00Excel: Convert Column of Dates to Text<p> If you have a column of date values in Excel but need to convert them into text values, there's a surprisingly simple trick to do so - and it's not exactly intuitive.</p><p>Select your column, then go to the 'Data' tab and click on 'Text to Columns'. I know, it's weird. We're not actually trying to split up our data into separate columns and I promise we won't.</p><p>On Step 1 of 3, choose 'Delimited'. Click 'Next'. </p><p>On Step 2 of 3, deselect all of the 'Delimiters' so that nothing is selected. Click 'Next'.</p><p>Now here is the magic step. On Step 3 of 3, under 'Column data format', select 'Text'. Now click 'Finish'.</p><p>All of your dates should be actual text now instead of the integers that represent the dates. Yay!</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-5214022129411506902021-05-16T09:55:00.001-04:002021-06-04T10:05:27.383-04:00SSAS: Count Records in TableThe DAX function to count the number of rows in an SSAS table is COUNTROWS. Here's an example of how you could use it if you had a table called 'Products':<div><br /></div><div><span style="font-family: courier;">=COUNTROWS('Products')</span></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-60774783156154872702021-02-01T12:07:00.015-05:002021-02-24T12:12:21.491-05:00Power BI: Lock Layered Objects<p>If you've created a Power BI report with layered objects and don't want background elements to jump to the front when they're selected, thankfully there is an easy solution.</p><p>Select the element you want to lock in place, such as a rectangle, and go to the Format tab on the Visualizations pane. Under the 'General' group, turn on the 'Maintain layer order' property. When this setting is enabled, your visualization will stay locked in place instead of moving to the front when it is selected.</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-22449679289368710452021-01-26T07:00:00.000-05:002021-01-26T15:30:04.310-05:00SSRS: Tables in Headers and Footers<p>I'm going to make this post short and sweet and cut to the chase: no, you cannot insert a tablix table into either the header or footer of an SSRS paginated report.</p><p>Sad face.</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-9391322943443629752021-01-04T11:29:00.001-05:002021-01-06T11:34:14.517-05:00SSAS: Objects Randomly Disappearing<p>I don't have a fix or explanation for this but since I had a hard time finding anyone else with a similar experience online, I figured I should make a post about it. Have you ever tried adding something new to your SSAS model such as a table or relationship, and found it seemingly never appearing? You know for sure that you followed the right steps to create something but you can't find any trace of it in the interface? You're not alone. This happens to me quite frequently and has had me question my sanity until I saw it happen to a colleague too.</p><p>If things seem to be randomly disappearing in SSAS, just close and reopen your project in Visual Studio and suddenly you will find them right where you expected them to be.</p><p>I'd love a comment from anyone who can explain this or tell me if there's a fix!</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-6912324020054918772021-01-01T11:36:00.010-05:002023-03-28T11:49:12.895-04:00Neopets Links<div><p style="text-align: left;">What can I say? It's 2021, my Neopets account is 20 years old, and I'm still playing. I made this page of links to use because their navigation is a little wonky lately. Leaving it public in case it's useful for anyone else. There are more extensive pages like this out there, this is just the subset of items that I'm most interested in.</p><h4 style="text-align: left;">Daily</h4><ul style="text-align: left;"><li><a href="http://www.neopets.com/pirates/anchormanagement.phtml" target="_blank">Anchor Management</a></li><li><a href="http://www.neopets.com/halloween/applebobbing.phtml" target="_blank">Apple Bobbing</a></li><li><a href="http://www.neopets.com/stockmarket.phtml?type=list&bargain=true" target="_blank">Bargain Stocks</a> (buy 1,000)</li><li><a href="http://www.neopets.com/desert/shrine.phtml" target="_blank">Coltzan's Shrine</a></li><li><a href="http://www.neopets.com/worlds/geraptiku/tomb.phtml" target="_blank">Deserted Tomb</a></li><li><a href="http://www.neopets.com/faerieland/tdmbgpop.phtml" target="_blank">Discarded Magical Blue Grundo Plushie of Prosperity</a></li><li><a href="http://www.neopets.com/faerieland/caverns/index.phtml" target="_blank">Faerie Caverns</a></li><li><a href="http://www.neopets.com/pirates/foodclub.phtml?type=collect" target="_blank">Food Club (Collect Winnings)</a></li><li><a href="http://www.neopets.com/pirates/forgottenshore.phtml" target="_blank">Forgotten Shore</a></li><li><a href="http://www.neopets.com/desert/fruit/index.phtml" target="_blank">Fruit Machine</a></li><li><a href="http://www.neopets.com/jelly/jelly.phtml" target="_blank">Giant Jelly</a></li><li><a href="http://www.neopets.com/prehistoric/omelette.phtml" target="_blank">Giant Omelette</a></li><li><a href="http://www.neopets.com/halloween/gravedanger/" target="_blank">Grave Danger</a></li><li><a href="http://www.neopets.com/medieval/grumpyking.phtml" target="_blank">Grumpy Old King</a></li><li><a href="http://www.neopets.com/lab2.phtml" target="_blank">Laboratory</a></li><li><a href="http://www.neopets.com/donations.phtml" target="_blank">Money Tree</a></li><li><a href="http://www.neopets.com/magma/quarry.phtml" target="_blank">Obsidian Quarry</a></li><li><a href="http://www.neopets.com/petpetlab.phtml" target="_blank">Petpet Laboratory</a></li><li><a href="http://ncmall.neopets.com/games/giveaway/process_giveaway.phtml" target="_blank">Qasalan Expellibox</a></li><li><a href="http://www.neopets.com/shop_of_offers.phtml?slorg_payout=yes" target="_blank">Shop of Offers</a></li><li><a href="http://www.neopets.com/winter/snowager.phtml" target="_blank">Snowager</a></li><li><a href="https://www.neopets.com/halloween/strtest/index.phtml" target="_blank">Test Your Strength</a></li><li><a href="http://www.neopets.com/island/tombola.phtml" target="_blank">Tombola</a></li><li><a href="http://www.neopets.com/trudys_surprise.phtml" target="_blank">Trudy's Surprise</a></li><li><a href="http://www.neopets.com/medieval/wiseking.phtml" target="_blank">Wise Old King</a></li><li><a href="http://www.neopets.com/water/fishing.phtml" target="_blank">Ye Olde Fishing Vortex</a></li></ul><h4 style="text-align: left;">Periodically</h4></div><div><ul style="text-align: left;"><li><a href="https://www.neopets.com/prehistoric/battleground/" rel="nofollow" target="_blank">Battleground of the Obelisk</a></li><li><a href="http://www.neopets.com/space/coincidence.phtml" rel="nofollow" target="_blank">The Coincidence</a></li><li><a href="http://www.neopets.com/winter/kiosk.phtml" target="_blank">Happy Valley Scratchcard Kiosk</a></li><li><a href="http://www.neopets.com/faerieland/springs.phtml" target="_blank">Healing Springs</a></li><li><a href="http://www.neopets.com/medieval/symolhole.phtml" target="_blank">Mysterious Symol Hole</a></li><li><a href="http://www.neopets.com/faerieland/wheel.phtml" target="_blank">Wheel of Excitement</a></li><li><a href="http://www.neopets.com/desert/extravagance.phtml" target="_blank">Wheel of Extravagance</a></li><li><a href="http://www.neopets.com/medieval/knowledge.phtml" target="_blank">Wheel of Knowledge</a></li><li><a href="http://www.neopets.com/prehistoric/mediocrity.phtml" target="_blank">Wheel of Mediocrity</a></li><li><a href="http://www.neopets.com/halloween/wheel/index.phtml" target="_blank">Wheel of Misfortune</a></li><li><a href="http://www.neopets.com/prehistoric/monotony/monotony.phtml" target="_blank">Wheel of Monotony</a></li><li><a href="https://www.neopets.com/wishing.phtml" rel="nofollow" target="_blank">The Wishing Well</a></li></ul><h4 style="text-align: left;">Inventory and Shop Management</h4></div><div><ul style="text-align: left;"><li><a href="http://www.neopets.com/closet.phtml" target="_blank">Closet</a></li><li><a href="http://www.neopets.com/gallery/index.phtml" target="_blank">Gallery</a></li><li><a href="http://www.neopets.com/inventory.phtml" target="_blank">Inventory</a></li><li><a href="https://items.jellyneo.net/" target="_blank">Jellyneo Item Database</a></li><li><a href="http://www.neopets.com/safetydeposit.phtml" target="_blank">Safety Deposit Box</a></li><li><a href="http://www.neopets.com/market.phtml?type=your" target="_blank">Shop Stock</a></li><li><a href="http://www.neopets.com/market.phtml?type=till" target="_blank">Shop Till</a></li><li><a href="http://www.neopets.com/neohome/shed" target="_blank">Storage Shed</a></li><li><a href="http://www.neopets.com/quickstock.phtml" target="_blank">Quick Stock</a></li></ul><h4 style="text-align: left;">Battledome</h4><div><ul style="text-align: left;"><li><a href="http://www.neopets.com/dome/fight.phtml" target="_blank">Battledome</a></li><li>Mystery Island Training School <a href="http://www.neopets.com/island/training.phtml?type=status" target="_blank">[status]</a> <a href="http://www.neopets.com/island/training.phtml?type=courses" target="_blank">[courses]</a></li></ul></div><h4 style="text-align: left;">Stamp Collection</h4><div><ul style="text-align: left;"><li><a href="http://www.neopets.com/objects.phtml?type=shop&obj_type=68" target="_blank">Collectible Coins</a></li><li><a href="http://www.neopets.com/objects.phtml?type=shop&obj_type=86" target="_blank">Collectible Sea Shells</a></li><li><a href="http://www.neopets.com/objects.phtml?type=shop&obj_type=58" target="_blank">Neopian Post Office</a></li><li><a href="http://www.neopets.com/stamps.phtml?type=progress" target="_blank">Overview of Collection</a></li><li><a href="http://www.neopets.com/stamps.phtml?type=album&page_id=1" target="_blank">Stamp Album</a></li><li><a href="http://www.neopets.com/objects.phtml?type=shop&obj_type=3" target="_blank">Toy Shop</a></li><li><a href="https://items.jellyneo.net/mywishes/unicorn_sd/256507/?order_by=4" target="_blank">Wish List</a> (this is a link to mine, you can create your own on this site too)</li></ul></div></div><div><h4 style="text-align: left;">Games</h4><div><ul style="text-align: left;"><li><a href="http://www.neopets.com/altador/colosseum/" target="_blank">Altador Cup</a></li><li><a href="http://www.neopets.com/games/new_caption.phtml" target="_blank">Caption Contest</a></li><li><a href="http://www.neopets.com/medieval/cheeseroller.phtml" target="_blank">Cheeseroller</a> (buy Spicy Juppie Cheese)</li><li><a href="http://www.neopets.com/games/dicearoo.phtml" target="_blank">Dice-A-Roo</a></li><li><a href="http://www.neopets.com/games/h5game.phtml?game_id=1391" target="_blank">Fashion Fever</a> (wait 10 seconds before submitting score)</li><li><a href="http://www.neopets.com/medieval/guessmarrow.phtml" target="_blank">Guess the Weight of the Marrow</a></li><li><a href="http://www.neopets.com/prehistoric/keno.phtml" target="_blank">Grarrl Keno</a></li><li><a href="http://www.neopets.com/games/h5game.phtml?game_id=1393" target="_blank">Hasee Bounce</a></li><li><a href="http://www.neopets.com/games/h5game.phtml?game_id=1389" target="_blank">Igloo Garage Sale</a> (don't submit scores higher than 1,998)</li><li><a href="http://www.neopets.com/games/hidenseek.phtml" target="_blank">Kacheek Seek</a></li><li><a href="http://www.neopets.com/games/h5game.phtml?game_id=1310" target="_blank">Kass Basher</a></li><li><a href="http://www.neopets.com/medieval/kissthemortog.phtml" target="_blank">Kiss the Mortog</a></li><li><a href="http://www.neopets.com/games/neggsweeper/index.phtml" target="_blank">NeggSweeper</a></li><li><a href="http://www.neopets.com/games/lottery.phtml" target="_blank">Neopian Lottery</a></li><li><a href="http://www.neopets.com/games/neoquest/neoquest.phtml" target="_blank">NeoQuest</a></li><li><a href="http://www.neopets.com/medieval/pickyourown_index.phtml" target="_blank">Pick Your Own</a></li><li><a href="http://www.neopets.com/medieval/potatocounter.phtml?" target="_blank">Potato Counter</a></li><li><a href="http://www.neopets.com/games/pyramids/index.phtml" target="_blank">Pyramids</a></li><li><a href="http://www.neopets.com/games/sakhmet_solitaire/index.phtml" target="_blank">Sakhmet Solitaire</a></li><li><a href="http://www.neopets.com/games/scarab21/index.phtml" target="_blank">Scarab 21</a></li><li><a href="http://www.neopets.com/games/tyranuevavu.phtml" target="_blank">Tyranu Evavu</a></li></ul></div><h4 style="text-align: left;">Other Links</h4></div><div><ul style="text-align: left;"><li><a href="http://www.neopets.com/gourmet_club.phtml" target="_blank">Gourmet Club</a></li><li><a href="http://www.neopets.com/freebies/index.phtml" target="_blank">Monthly Freebies</a></li><li><a href="http://www.neopets.com/bank.phtml" target="_blank">National Neopian Bank</a></li><li><a href="http://www.neopets.com/neoboards/preferences.phtml" target="_blank">Neoboard Preferences</a></li><li><a href="http://www.neopets.com/stockmarket.phtml?type=portfolio" target="_blank">Stock Market Portfolio</a></li></ul></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-11360121069919390362020-11-30T06:17:00.000-05:002020-11-30T16:42:19.664-05:00Power BI: Show Visualization(s) Only When One Record is Selected<p>If you have some visualizations in your Power BI report that you only want to be visible when users have selected a single item from one or more filters, this blog post just might be the inspiration you need.</p><p>In my scenario I have a hierarchical series of slicers which allow users to narrow down the dataset to a single location. Only at the point where a single distinct location has been selected do I want additional visualizations to be visible on the page. These are mostly cards which are set to display the 'First' value in my dataset. Everything looks fine when I have just one location selected, but until that point there are multiple possible values and only displaying the first is confusing and just plain ugly.</p><p>I hope Power BI matures to the point of this sort of thing not requiring a weird workaround, but for now my odd solution is akin to a window shutter. I've added in a card over the visualizations in question that will alternate between being transparent or being filled with white to blend in with the background.</p><p>To accomplish this, I added a new measure to my dataset that counts how many distinct locations are being returned. If there is only one being returned then it will display an empty string (because this is when I will be setting it to be transparent). This is how mine looks, you might need to adjust it based on your own needs. In my case I was concerned with the distinct number of location codes specifically:</p><p><span style="font-family: courier;">Locations Selected = IF(DISTINCTCOUNT('MyTable'[LocationCode])>1,DISTINCTCOUNT(MyTable'[LocationCode]),"")</span></p><p>Next I'm using an <a href="https://appsource.microsoft.com/en-us/product/power-bi-visuals/wa104381651?tab=overview" rel="nofollow" target="_blank">Advance Card</a> visualization, because it's free and I like the added features that aren't included in what Microsoft gives you. Add in one of those and position it over the visualizations that you want to show/hide. Use the new measure you just created as the data field. Now in the 'Format' tab for this visualization, go to 'Conditions' and make sure it is set to 'On'. For 'No. of Conditions' enter 1. Then set 'If Value Is' to '>', 'Value' to '1', 'Then Foreground Color' to white (or whatever colour blends in with your background), and 'Then Background Color' to white as well. Make sure 'Background' is set to 'On' and that the colour is set appropriately.</p><p>Now when you run this report you will see this card either fill or be transparent based on how many distinct items have been selected according to your measure. It's weird but it works.</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-27914007738464930002020-10-16T18:03:00.001-04:002020-11-16T10:14:44.645-05:00SSRS: Spaces in Column Headers in CSV Output<p>When you output an SSRS report to CSV format, the column headers in the resulting table are determined by the DataElementName of each textbox (this might sound confusing, just know that every cell in a table is actually a textbox). Editing this property lets you customize the output, but unfortunately there are some limitations.</p><p>The column headers must be CLS-compliant. Spaces unfortunately are non-compliant, so SSRS will automatically replace spaces with underscores for the DataElementName property. At the time of me posting this I'm not aware of any sort of clean workaround for this behaviour, but if something changes or if you have a method that has worked for you, please leave a comment below.</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-80896093790780592742020-09-17T20:30:00.001-04:002020-09-18T10:53:12.899-04:00Power BI: Comments in DAXYou can insert comments into your DAX formulas in Power BI! Given how similar writing DAX in Power BI feels in comparison to entering a formula into Excel, I was very pleasantly surprised to learn that it's actually possible to write comments.<div><br /></div><div>Start a comment with two forward slashes, and everything until the end of the line will be commented out. You can start a new line by pressing Alt + Enter.</div><div><br /></div><div>Here are some keyboard shortcuts you can use to quickly comment or uncomment multiple lines in DAX:</div><div><ul style="text-align: left;"><li>Ctrl + KC: Comment selected lines</li><li>Ctrl + KU: Uncomment selected lines</li></ul></div>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-7756215335050530641.post-78221361567620100242020-09-07T21:30:00.000-04:002020-09-08T09:52:56.369-04:00Power BI: IS NOT BLANK<p> In Power BI you can check to see if a particular value is not blank by combining the NOT operator with the ISBLANK function within your DAX expression. Here's an example:</p><p><span style="font-family: courier;">= IF(NOT(ISBLANK('Table'[Column])),"Not Blank","Blank")</span></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-78911531968005965272020-08-24T07:00:00.000-04:002020-08-25T14:28:06.754-04:00SSRS: How to Insert a Line Break in a Text Box Using an Expression<p>Inserting a line break into a regular text box is as easy as hitting the Enter key unless you're using an expression, in which case those line breaks are ignored.</p><p>If you are using an expression for a text box, concatenate with the following constant to insert a line break:</p><p><span style="font-family: courier;">+ vbCrLf</span></p><p>This results in the insertion of non-printing carriage-return and linefeed characters (basically the equivalent of hitting the Enter key).</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-53770941008100733572020-08-21T19:00:00.000-04:002020-09-08T10:40:16.726-04:00Power BI: IF Function Resulting in "Token Eof Expected" Error<p>Are you working on a very simple IF statement in Power Query, have gone over your syntax a thousand times, and are <i>still </i>seeing the following error message?</p><p><span style="font-family: courier;">Token Eof expected.</span></p><p>Power Query is actually case sensitive. It's a shame it doesn't just tell you this fact as a side note to help you troubleshoot, because all you have to do is change your uppercase <span style="font-family: courier;">IF</span>, <span style="font-family: courier;">THEN</span>, and <span style="font-family: courier;">ELSE</span> to lowercase <span style="font-family: courier;">if</span>, <span style="font-family: courier;">then</span>, and <span style="font-family: courier;">else</span>.</p><p>I hope this post can save even one other person the maddening amount of time I spent trying to figure out what I'd done wrong in a very simple expression.</p>Unknownnoreply@blogger.com4tag:blogger.com,1999:blog-7756215335050530641.post-34520262608894597092020-08-12T21:00:00.003-04:002020-09-08T10:05:55.228-04:00Power BI: Export to Excel or CSV<p>In a Power BI report if you have sufficient permissions (as well as a Pro or Premium license) then you will be able to export the underlying data for a visualization to Excel.</p><p>First, hover your mouse in the upper right-hand corner of the visualization until you see an ellipsis appear. If you put your mouse over it you will see the tooltip 'More options' appear. Click on this ellipsis and then click on 'Export data'.</p><p>Choose whether you would like to export the summarized data or the underlying data.</p><p>Choose a file format. Be aware that each format has a maximum number of records that it will export, so this won't work for larger datasets:</p><p></p><ul style="text-align: left;"><li>Excel: 150,000 rows</li><li>CSV: 30,000 rows</li></ul><div>Click the Export button to finish.</div><p></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-6152718503969103162020-08-06T22:30:00.045-04:002020-08-07T10:21:57.627-04:00Excel: Power View Not Visible on the RibbonDid you follow all the right steps to install Power View in Excel but still can't find it on the ribbon? You're not alone. After enabling Power View as a COM add-in, double-checking that it was enabled, and even restarting the application, I was still unable to find it anywhere on the ribbon.<div><br /></div><div>There's a fix for this that will hopefully work for you the same way it did for me. I managed to launch Power View by manually adding it to the ribbon myself.</div><div><br /></div><div>Right-click anywhere in your ribbon and choose 'Customize the Ribbon...'.</div><div><br /></div><div>On the left-hand side of this window, in the 'Choose commands from:' drop-down, choose 'Commands Not in the Ribbon'. Scroll down the list and select 'Insert a Power View Report'.</div><div><br /></div><div>On the right-hand side of this window, choose a tab and group where you would like to place your new button. I created mine in a new group called 'Power View' under the 'Insert' tab. Click the 'Add' button.</div><div><br /></div><div>Now you should see a button labelled 'Power View' in the ribbon in the location you selected.</div>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-7756215335050530641.post-75815633360749262022020-07-30T22:30:00.001-04:002020-09-08T10:16:21.257-04:00Power BI: Allow Export of Summarized and Underlying Data<p>If you're having trouble trying to <a href="http://www.stacydubois.com/2020/08/power-bi-export-to-excel-or-csv.html">export data from a Power BI report to Excel or CSV</a>, a small tweak to the report itself might solve your problem. There is a setting that allows report authors to limit which data may be exported. Here's how to change that setting.</p><p>With your report open in Power BI Desktop, go to 'File', 'Options and settings', and then click on 'Options'.</p><p>In the left-hand side menu under 'CURRENT FILE' (not under 'GLOBAL'), click on 'Report settings'.</p><p>Now you should see a header called 'Export data'. In this section you can choose to allow end users to export summarized data, allow both summarized and underlying data, or to restrict data export altogether. Change this setting and republish your report.</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-87226579171734485192020-07-12T18:36:00.000-04:002020-08-29T18:39:21.484-04:00SSRS: Remove Margins From Chart<p> If you want to remove that extra white space from the sides of a chart in an SSRS paginated report, then you can do so by removing the margins.</p><p>With your report open in Visual Studio, select the chart axis and then open up the Properties pane. Scroll down to 'Margin' and set this property to 'False'.</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-6623017090989145652020-06-09T22:06:00.010-04:002020-06-10T11:16:50.830-04:00SQL Server: End of Month FunctionIn Microsoft SQL Server there is a Transact-SQL function called EOMONTH that lets you find the last day of the month for a given date. You also have the option to include an offset value to add a number of months to the date that you pass in.<div><br /></div><div>For example, if you want to get the last day of the current month, you can use:</div><div><font face="courier">EOMONTH(GETDATE())</font></div><div><br /></div><div>If you want to get the last day of next month, you can pass in a second parameter of 1:</div><div><font face="courier">EOMONTH(GETDATE(),1)</font></div><div><br /></div><div>As you might have already guessed, you can use a negative number if you want to subtract from the months. So if you're looking for the last day of the month from three months ago, you could enter:</div><div><font face="courier">EOMONTH(GETDATE(),-3)</font></div><div><br /></div><div>For all of these examples you can swap in whatever date value you like in place of where I've used GETDATE().</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-662989074329823562020-05-27T05:12:00.009-04:002020-05-27T10:49:50.536-04:00How to Read Google Play eBooks on Kobo eReaderSince I get frequent discounts on eBooks through the Google Play Books store (details about how to do that <a href="http://www.stacydubois.com/2020/04/how-to-get-discounted-or-free-ebooks.html" target="_blank">here</a>), I'm in the habit of buying my books there. My eReader however is a Kobo, which is set up to buy from the Indigo store. Here's how I load my books from the Google Play Books store onto my Kobo eReader.<div><ol style="text-align: left;"><li>Buy your eBook in the Google Play Books store.</li><li>Click the ellipsis next to the book title in your library and click 'Download EPUB'.</li><li>Download and install <a href="https://www.adobe.com/solutions/ebook/digital-editions.html" rel="nofollow" target="_blank">Adobe Digital Editions</a>. This is free software that will let you load your EPUB file onto your Kobo eReader.</li><li>Open Adobe Digital Editions and go to 'File', 'Add to Library'. Select the EPUB file that you downloaded in the previous step.</li><li>Plug your Kobo eReader into your computer and wait for it to appear in Adobe Digital Editions. You should see it in the list on the left-hand side of the screen.</li><li>Click and drag the eBook from your library to your Kobo eReader.</li></ol><div>That's it! </div></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-69211750860960246532020-05-21T23:22:00.018-04:002020-05-22T10:46:15.428-04:00Ergonomics: Working Comfortably From HomeWorking from home is something very new to a lot of people who are suddenly shifting their workspaces in order to keep a safe distance from their coworkers during the COVID-19 pandemic. With considerable experience both working and studying from my home office, I thought I would dedicate a post today to my favourite tips for how you can work a desk job from home both safely and comfortably.<div><br /></div><div><ol style="text-align: left;"><li>Make sure that your desk is set up in a way that is healthy for your body. The <a href="https://www.ccohs.ca/" rel="nofollow" target="_blank">Canadian Centre for Occupational Health and Safety</a> has some really great resources to help you do this properly, including <a href="https://www.ccohs.ca/oshanswers/ergonomics/office/monitor_positioning.html" rel="nofollow" target="_blank">how to position your monitor</a> and <a href="https://www.ccohs.ca/oshanswers/ergonomics/office/chair_adjusting.html" rel="nofollow" target="_blank">how to adjust your office chair</a>. You will significantly reduce your risk of repetitive strain injuries if you set up your space correctly.</li><li>Wherever possible, set a clear boundary between your work space and your living/recreation space. This is easier to do if you can dedicate a room as a home office, but it also applies to smaller homes. Resist the urge to work from your laptop while lounging in bed. It might seem luxurious but you don't want to blur the lines between a space intended for relaxation and a space meant for work.</li><li>In addition to setting boundaries for space, make sure you set boundaries for your time as well. The Canadian Psychological Association emphasizes the <a href="https://cpa.ca/docs/File/Publications/FactSheets/PW_COVID-19_Working%20from%20Home.pdf">importance of respecting your work hours</a> and preserving time for yourself and your family. Maintain a healthy balance of work and life and you will find it easier to be productive and happy with both.</li><li>Give your eyes regular breaks from staring at your computer monitor. The American Academy of Ophthalmology recommends following the <a href="https://www.aao.org/eye-health/tips-prevention/computer-usage" rel="nofollow" target="_blank">"20-20-20 rule"</a>, which involves looking at an object at least 20 feet away for 20 seconds every 20 minutes.</li><li>Take coffee breaks the same way that you would when you are in the office. Set aside time to connect with your colleagues over instant messaging or phone calls to keep in touch. Not only is this good for your own personal well-being but it will help you to maintain your professional network which is so important for your career. I used to really dislike the awkwardness of small-talk in the office, but I recently learned that it serves a very important function. Check out this 2019 article from the New York Times that highlights to usefulness of socializing with your coworkers: <a href="https://www.nytimes.com/2019/09/17/style/the-awkward-art-of-office-small-talk.html" rel="nofollow" target="_blank">The Awkward but Essential Art of Office Chitchat</a>.</li><li>Don't eat lunch at your desk. Give yourself a proper break, eat somewhere else, and maybe go for a walk if the weather is nice. You'll feel refreshed and have a more productive afternoon.</li><li>Change out of your pyjamas, brush your hair, and wear something nice. I'll never understand people who feel the need to wear formal business attire in their home offices (unless they're on a lot of important video calls, of course), but you will feel better if you get dressed for the day - even if you have no intention of stepping foot outside or seeing another living person.</li><li>Get help if you need it. Working from home can be a really drastic change for some people, and it's important to keep an eye on your mental health. From my own personal experience I highly recommend <a href="https://en.wikipedia.org/wiki/Cognitive_therapy" rel="nofollow" target="_blank">cognitive therapy</a>.</li></ol></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-69648052953018105592020-05-17T20:10:00.001-04:002020-05-22T15:11:17.193-04:00SQL Server: Sorting by Column NumbersIf you've come across this post then you are likely aware that in SQL Server you can use the ORDER BY clause to sort by specific columns by name, but did you know that you can also do it by number? It's a quick and dirty way to sort without having to spell out each column name.<div><br /></div><div>Here's an example of how you could sort by the LAST_NAME column:</div><div><br /></div><div><font face="courier"> SELECT USER_ID,</font></div><div><font face="courier"> FIRST_NAME,</font></div><div><font face="courier"> LAST_NAME</font></div><div><font face="courier"> FROM MY_TABLE</font></div><div><font face="courier"> ORDER BY LAST_NAME</font></div><div><font face="courier"><br /></font></div><div>Or, you can accomplish this same thing by using '3' in the ORDER BY clause. This tells SQL Server that you want to sort by the third column (which is LAST_NAME):</div><div><br /></div><div><div><font face="courier"> SELECT USER_ID,</font></div><div><font face="courier"> FIRST_NAME,</font></div><div><font face="courier"> LAST_NAME</font></div><div><font face="courier"> FROM MY_TABLE</font></div><div><font face="courier"> ORDER BY 3</font></div></div><div><font face="courier"><br /></font></div><div>As with everything in tech you'll find varying opinions on whether or not this is a good thing to do. I would say that it's worth using if you're just writing a quick ad-hoc query. It can save time. On the other hand, if this is something you plan on saving or reusing, I would advise entering the column name instead. This way you know it will keep sorting the way you intended even if you add other columns later on that end up changing the position of the column by which you wanted to sort.</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-43418425019901614332020-05-06T19:00:00.007-04:002020-05-07T13:05:33.251-04:00Power BI: SubreportsGreat news for Microsoft Power BI users: they've just released an update that allows for the creation of <a href="https://docs.microsoft.com/en-us/power-bi/paginated-reports/subreports" target="_blank">subreports</a>! This lets you to embed one report inside of another, something that can get fancy if you start passing parameters from the main report to the subreport.<div><br /></div><div>In order to use this new functionality you will need to download the latest version of <a href="https://www.microsoft.com/en-us/download/details.aspx?id=58158" target="_blank">Power BI Report Builder</a>.</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-20395181686381830662020-04-09T21:36:00.002-04:002020-05-27T10:50:22.145-04:00How to Get Discounted or Free eBooks (Legally!)I stumbled upon the perfect duo: Google Opinion Rewards and Google Play Books. Earn Google Play credit using Google Opinion Rewards and then spend the credit in the Google Play Books store to get a deal on any eBooks you want to buy.<div><ol style="text-align: left;"><li>Download the <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.paidtasks&hl=en_CA" rel="nofollow" target="_blank">Google Opinion Rewards app</a> on your smartphone. Use it to answer very short surveys in exchange for Google Play credit. I really do mean short, by the way. Typically I will spend about 15 to 30 seconds on a single survey and each one can be worth up to $1.00.</li><li>Spend your credit in the <a href="https://play.google.com/books" rel="nofollow" target="_blank">Google Play Books store</a>!</li></ol><div>Lately I've been reading faster than I can earn credits, but I'm still getting discounts on every book I buy. It's a very low effort way to get discounts on eBooks while still purchasing them legally.</div></div><div><br /></div><div>Of course you can use your Google Play credit for anything in the Google Play store, I just happen to be interested in using it for books specifically.</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7756215335050530641.post-81202859652279533622020-03-21T20:30:00.013-04:002020-05-25T11:49:06.179-04:00SSRS: Colour Striping RowsTabular reports are so much easier to read when you fill in alternating rows with different colours. This becomes especially important when you have particularly wide tables. This technique is also called zebra stripes or candy stripes. Cute.<div><br /></div><div>In Visual Studio, select the row of your tablix data region (table) and enter the following expression for the 'BackgroundColor' property (under 'Fill'):</div><div><br /></div><blockquote style="border: none; margin: 0 0 0 40px; padding: 0px;"><div style="text-align: left;"><font face="courier">=IIF(RowNumber(Nothing) Mod 2, "Black", "White")</font></div></blockquote><div><br /></div><div>Replace the colours there with whichever colours you want to use. In this very unlikely example I have it set to stripe the rows in black and white. You can enter simple text colour names like I did, or you can enter hex codes to get the exact colour you're wanting.</div><div><br /></div><div>One thing I really like doing in my reports is to set up my own colour palette using report variables. I will set variable named like 'AccentColour1' and set the value to whatever hex code I want (e.g., #87CEEB). Then when I am doing striping like this and want the colours to be consistent with the rest of my report, I will enter the variables into the expressions instead of hard-coding the colour names or values. Here's what that would look like:</div><div><br /></div><blockquote style="border: none; margin: 0 0 0 40px; padding: 0px;"><div style="text-align: left;"><span style="font-family: courier;">=IIF(RowNumber(Nothing) Mod 2, Variables!AccentColour1.Value, </span><span style="font-family: courier;">Variables!AccentColour2.Value</span><span style="font-family: courier;">)</span></div></blockquote><div><br /></div><div>I'm a fan of this approach because you can easily switch up colours across your entire report if needed instead of having to go in and edit them for each object individually.</div><div><br /></div><div>If you're looking for my post on how to do this in Excel, check out that post <a href="http://www.stacydubois.com/2009/04/colour-striping-rows-using-conditional.html" target="_blank">here</a>.</div>Unknownnoreply@blogger.com0