Star Trek: The Tableau Game

TwitterFacebookGoogle+Share

In the 1980s, my dad brought home a Tandy 1000.  I still remember him giving instructions to my mom and me about how to use DOS.  I loved playing the games (Digger, Janitor Joe [Jump Joe], Flightmare, Hopper, and more), but the real fun began when my dad showed me I could look at, and even modify, the code for games written in BASIC:

BASIC Star Trek Code

Star Trek was the BASIC game that sparked my interest in computer programming (and yes, I realize how much of a geek that sentence makes me).  It was a simple game.  An overall grid of sectors in the quadrant broken down into smaller grids where Klingons and an occasional Romulan lurked.

You can only imagine how much fun my 8-year-old self had when I realized that the E = 3000 on line 370 and the P = 10 on line 440 were the units of energy and number of photon torpedoes.  After that, the Klingons didn’t stand a chance.

 

What I loved about programming was that I could make the computer do anything.  There was no limit to the problems that could be solved or the fun that could be had.  And that’s why I love Tableau.  The same sense of “the-sky’s-the-limit” that I felt when I first discovered coding is the sense I feel every day when I use Tableau.  With the added bonus of intuitive drag and drop (okay, sure, there’s a calculation or two).  But there’s no end to what can be done.

And so, I decided to take my inspiration from the old Star Trek game and give it a Tableau twist.  Whereas the original game was text-based, Tableau is of course graphical.  That opens up some really neat possibilities.  I’ll reserve future blog posts to cover the technical details, but here are a few really cool things that push the envelope in Star Trek – the Tableau Game:

  • Everything is done entirely in Tableau. I love possibilities with the JavaScript API, but everything here is native Tableau.
  • Notice how the “Fire!” button disappears as soon as you click it. That’s right, it’s an action that applies to the sheet that triggered it!  I stumbled across this behavior accidentally – I’m going to explore it more and likely have a blog post or two – stay tuned.
  • The biggest challenge was how to keep track of past actions. How could I know how many Klingons the player had destroyed?  How could I track shield and life support values?  Parameters keep only a value at a time and can’t be updated with actions.  Action filters only contain the most recent values selected.  The answer is… another blog post for another time… or maybe an AMA on the forums?
  • The original BASIC Star Trek game was 553 lines of code (here it is if you are interested). The primary Tableau data set is 20 records.

 

And now, without any further tedious details (at least for a while):

 

Space: the final frontier. These are the voyages of the starship Enterprise. Its five-year mission: to explore strange new worlds, to seek out new life and new civilizations, to boldly Tableau what no one has done before.

10 Things you didn’t know about Ad-Hoc Calculations in Tableau 9

Ad-hoc calculations are new in Tableau 9.0.  They’re quite useful.  And they are fun!  There’s so much you can do with them.  They are indeed one of my favorite things.

Here’s a  quick start from Tableau to get up to speed.
And, once you’re ready, let’s dive deep for some Tableau tips and tricks using ad-hoc calculations in Tableau 9:

  1. Create Ad-Hoc Calcs by dragging text from the Calculation Editor into the view or onto shelves

 

Drag and Drop from Calculation Editor

 

  1. Do the reverse: Drag and drop ad-hoc calcs into the calculation editor
  2. Drag and drop the ad hoc calculation from the view to the Dimensions or Measures in the Data pane to actualize them as calculated fields in the data connection.
  3. You knew you could create an ad-hoc by double clicking on Rows, Columns, or in the Marks card. But did you know you can create them on the Measure Values shelf too?
  4. Create titles for views. Just double click a space on Columns type the title inside quotes and do some formatting.  Why would you do this?  Check out this post.

Create Titles

 

  1. Drag and drop fields, sets, and parameters into ad hoc calcs. Just start the ad-hoc calc, then drag from the Data pane or from anywhere else in the view:

Drag and Drop Into

  1. Double click any field in the view to start an ad hoc calculation. If the field is from the connection, the code starts with a reference to that field.  If it was an ad-hoc calculation then you pick up editing where you left off.
  1. Use them to sort a view, even with blended fields and calculations that don’t always play nice with sorting. Here I copy the field (hold Ctrl while dragging) I want to use for sorting from Columns to Rows, double click it to Edit it as an ad hoc calc, place a negative sign in front to sort the direction I want, change it to discrete and move it to the front so it defines the sort.  You could do similar things with ad hoc calculations using the Rank() function.

Sort with Ad Hoc Calculations in Tableau

  1. Multi-Line Ad-Hoc Calcs. While typing an ad-hoc calc, press Shift+Enter to start a new line.  Caution: the field will only appear with the first line showing, so this is a great way to confuse your co-workers.  However, it can be used to make things clearer – see #10:

 

  1. Named Ad Hoc Calculations. Using the mult-line approach works really well if you make the first line a comment (i.e. start with the double slash: // ).  Why?  Because then the ad-hoc calculation gets a name which will show in Row or Column headers.  Both of the fields on Rows in the view below are ad-hoc calcs with the code
    City + ", " + [State]

    but the second one is mult-line with the code

    //City and State
    City + ", " + [State] 

Named Ad Hoc

 

And now you know 10 things you never knew before about ad-hoc calculations in Tableau.

Or maybe you did know these.  And maybe you know other tips and tricks I didn’t mention.  I’d love to hear from you in the comments!

Extending LOD Calcs with Table Calcs

I’ve been following with great interest the discussion in the Tableau community surrounding various approaches to using Level of Detail Calculations (LOD calcs) to solve various problems.  On the one hand LOD Calcs are often very easy and intuitive.  For example, it easy to determine an aggregation at any level of detail:

  • How many unique customers per product?

{FIXED [Product] : COUNTD([Customer ID])}

  • Maximum sales of a Category per State?

With State in the Viz Level of Detail: MAX({INCLUDE [Category] : SUM(Sales)})

 

But what if I want to know what the maximum category actually was?  That’s a little harder.  Mark Jackson recently posted on how to find a dimension at a lower level of detail along with a follow-up post based on an approach suggested by Joe Mako.  Jonathan Drummey had a similarly outstanding post which demonstrates his thought process in tackling such a problem.

What I’d like to do here, is replicate my thought process in solving a similar problem.  M thinking has been very much shaped by interactions with Mark, Joe, and Jonathan and my approach is very similar – but I find it very useful to see the slight variations in the different ways individuals approach similar problems.  And I’m going to extend the results a little to explore what kinds of analysis are possible after solving the initial problem.  I very much welcome any feedback!

 

The initial problem

Let’s say I want to know the Category with the most sales.  We’ll start by assuming I want to know the highest selling Category in a Department.  But later, I might want to swap Department for any other dimension (such as State or Region).

(follow along with this workbook)

I’ll start with Department and Category in the view, although ultimately, I don’t want Category in the view.  But having it there initially will help me see how things work at that level of detail:

Sales by Department and Category

First, I need a Level of Detail calculation that gives me the maximum Sales for all Categories in a given Department:

Nested LOD

The hardest part of thinking through nested LODs is that I started with a view that is at a different level of detail than what I ultimately want.  Here, I already have Category as part of the viewLOD (view Level of Detail).  I’ve done that so I can see the results unfold before me, but I have to keep in mind that I’m going to remove it later, so I start with an INCLUDE to get the Sum of Sales for each Category.

Then I want to back up to the Department level to determine the MAX of all the Sums of Sales for each Category within a given Department.  So I EXCLUDE Category and find the MAX.

Now, I have the Sales of the highest selling Category within each Department and it’s easy to see which Category has the highest sales for the Department (it’s the one where the SUM(Sales) matches the MAX Sales):

Figuring out the Highest Selling Cateogry

So, I’ll write one more calculation to determine which Category has a Sum of Sales that matches the Max.  Here it is:

Find the match

The trick here is to use INCLUDE to make sure I’m doing my comparison at the Category level (just like I did visually in the view above).  Since I want this to work even when I remove Category from the view, I’ll INCLUDE it here.

And now, I can remove Category from the view and only see the Max Category for each Department:

Initial results of LOD

Sales here are the total sales for each Department, but I also have the Category with the most sales and the actual sales for that Category.

Extending the example

The best part is, I can add other dimensions and even swap other dimensions with Department.  For example, here is the highest selling Category for each State:

Max Category per State

And I can even re-arrange the view to get other types of visualizations, such as this map:

Map of Highest Selling Category per State

And I could use this same approach to answer other questions (such as, which category has the lowest profit in the east?)

 

But let’s take it one more step…

What if I wanted to know how many states for each Max Cateogry?  In how many states were Office Machines the highest selling Category?  I could count them visually in the map or in view like this:

Max Category with States

But, even better I can let Tableau do the counting and then visualize the results!

If I allow the Max Category to partition table calculations (simply right click the field on Rows and uncheck “Ignore in Table Calculations”).

This is the best part of the LOD calcs – they are aggregates (or sometimes even row-level) results that can be used to partition table calculations.  That gives us another layer to solve very difficult problems without having to layer complex table calc on complex table calc.

Ignore in Table Calculations

 

Then, the Size() function (computed along State – right click the field in the view and select Computer Using > State) will tell me how many states per Max Category:

Working out the Table Calc

State has to be in the vizLOD for the Size() function to return the right results.  But I don’t need to see the same result repeated state after state, so I will use the First() function (also computed along State) to keep only the first result of Size().

 

Moving, First() to Filters, State to Detail (it has to be in the view, but I don’t need to see it) and Size() to Columns allows me to have a view like this:

How Many States where X was the Highest Selling Category?

Wow!  Tables were the highest selling category in 11 states!  I should double check profit…

 

Everything up to the Extended Example could have been done fairly easily with table calcs.  However, using the LOD calcs allowed us to further partition table calcs that allows our analysis to go even deeper without having to get into incredibly complex table cacls.

 

 

I knew I loved LOD calcs when I first saw them.  But the more I work with them, the more I see the possibilities…

The Journey of Writing a Tableau Book

A few years ago, a colleague of mine sent out an email asking if anyone was interested in serving as a technical reviewer for a Tableau book.  I was becoming quite involved as a helper in the Tableau forums and so I jumped at the opportunity.  Reviewing was a fun process of reading initial drafts and making comments and suggestions.

Then, about this time last year, the publisher contacted me and asked if I’d like to write a Tableau book. After discussing with my wife, I embarked on a journey – one which involved more effort and reward than I ever imagined.  The title Learning Tableau, selected by the publisher, is far more appropriate than I had first thought.  Not only does it express my hope that readers will learn to use Tableau effectively to gain insights into their data, but it was a process of learning for me too.

Learning Tableau by Joshua N. Milligan

My Goals

Very early on in the process, Shawn Wallwork (see his Tableau blog here), who graciously agreed to serve as a technical reviewer, asked me what my goals were in writing a Tableau book.  It was an opportunity for me to examine my motives.  Was it fortune?  Fame?  Well, fortune didn’t seem likely as most technical books don’t sell a very high number of copies.  Fame also seems to be elusive for the technical writer.

Instead, I clarified my thoughts with these goals:

  • Grow and learn. Not only in my understanding of Tableau but also in my ability to teach, mentor, and present concepts clearly and meaningfully.
  • Help Others. I wanted to write a book that would help others in their Tableau journey.  I told Shawn that ultimately I wanted to write the go-to book for the Tableau community.

And what I meant when I told Shawn that was that I wanted to write a book that would give readers the foundational concepts necessary to understand how and why Tableau fundamentally works– the underlying paradigm – and how to think “in Tableau”.  It wouldn’t just give a set of steps to memorize nor would it be a dry reference guide of concepts.  Instead it would be a blend of practical examples and fundamental understanding.  It would then build toward some advanced concepts and leave the reader with a solid foundation on which they could continue to build.

 

The Challenge and the Help

When I agreed to write the book, I never anticipated how challenging it would be.  I love Tableau training and mentoring.  When I teach a Tableau class, nothing is more rewarding than seeing my students light up with understanding.  But when something isn’t clear for a student, they raise their hand and ask the question.  When I answer a question on the Tableau forums, I usually get a response of “right”, “wrong”, or “kind of, but…” within a day or two.  When I sit down with a business analyst or executive to iteratively build visualizations and ask and answer questions there is immediate feedback.  If something doesn’t look right it gets fixed on the spot.

But a book is different type of training experience.  The author doesn’t receive immediate feedback.  The reader won’t see the written words for months and if there is a mistake, a mis-statement, or an unclear passage it will be too late to correct it after it is published

That’s where the technical reviewers step in.  I had four: David Baldwin, Sagar Kapoor, Joshua Kennedy, and Shawn Wallwork.  The reviewers would go through each draft of the chapter offering suggestions, corrections, encouragement, and other helpful feedback, like this early iteration:

Technical Reviewers' Suggestions

I never knew how much of a team effort writing a book really is.  I am forever in the debt of the reviewers.  Indeed, without the reviewers, publishers, editors, and many others, the book would not have been possible.

The Reward

I also never imagined how rewarding the end-result would be.  I love helping and empowering people with Tableau.  Most of the time the feedback is immediate and very gratifying.  On the other hand, writing a book is mostly a process of imagining how helpful each chapter will be.  And in the middle of typing page after page and building out sample data sets and workbooks, there were times when I was ready to be done.

But now the writing is done, the book is published, and people have started to read it.  And the feedback from readers and the Tableau community has been overwhelmingly positive.  I have received notes, reviews, emails, and personal thanks from many who have found the book to be helpful in their understanding of Tableau.  I am deeply thankful to everyone who has offered support and encouragement at every step along this journey.

 

My very first time autographing Learning Tableau
My very first time autographing Learning Tableau

Star Trek – To Boldly Tableau

The wait is over!  The game is now online!

 

You’ve seen Choose Your Own Adventure, Tic Tac Tableau, and Blackjack!

(By the way, ever wonder why I create these games in Tableau?  Here’s the answer!)

Now, prepare yourself for the next generation of Tableau Games:

It's coming...

When will it be here? You’ll just have to check back every day, orSubscribe to make sure you are the first to play.

And please make sure you don’t wear your red shirt.

Life before Tableau 9 Level of Detail Calculations

Over the next few weeks, leading up to the Tableau Think Data Thursday presentation (register now!), I’ll take a look at some fun facts about Tableau 9 Level of Detail calculations.  Today, let’s take a look at life before LOD calcs:

Back in My DayIn versions prior to Tableau 9.0, Level of Detail (LOD) calculations were not available.  That meant that there were only a few ways to effectively work with different levels of detail in the same view:

  1. Table calculations
  2. Data Blending
  3. Sets
  4. Grand/Sub Totals

All of these had potential draw-backs.

 Table calculations are relatively easy when you want to work at higher levels of detail in a view (essentially the equivalent of EXCLUDE), but much more cumbersome when working with lower levels (essentially an INCLUDE or FIXED), because you’d have to include dimensions for the lower level of detail in the view and then hide using some kind of First(), Index() or Last() filter to hide the lower level of detail.  You can see the difference here: Charting new distinct values per period?

Data blending was often the most effective, because you could control the level of detail for the blend – however, you could run into issues when using DB2 (data blending with fields from the primary source not present in the view) because certain calculations (such as COUNTD) were not allowed.  You’d also have to maintain multiple copies of the data source.

Sets were very effective when you needed to work with a level of detail of a single dimension.  But you could only get IN/OUT of the set and you couldn’t use multiple dimensions for a computed set.  So, you could get a set of every customer with a first purchase in 2014.  But you couldn’t get the first year of purchase per customer at a row level.

Totals represent a higher level of detail within a view and there are some work-arounds to customize them — but there’s not a lot of flexibility.

Tableau 9.0 Level of Detail calcs are a real game-changer and Tableau 9 opens up a lot of possibilities for answering questions that would have previously required quite a bit of complexity.

How have LOD calcs changed the game for you? Let me know in the comments.  Stay tuned… there’s more to come!

Dates in Tableau make me want to tear my hair out!

“And tear out my beard and uncover my head!” -Tevye
“And tear out my beard and uncover my head!” -Tevye

 

Actually, it’s not dates in Tableau.  Tableau does wonders with dates!  What other tool allows you to connect to a data source with dates and have a built-in hierarchy where you can move different parts of the hierarchy around in the view?  What other tool has its own built-in date dimension?  There are imitators – but Tableau did it first.

(That’s not to say there isn’t room for improvement)

 

But it isn’t dates or using dates in Tableau that drives me nuts.  So, what is it? It’s the way people have been taught to think of dates in Tableau.  It drives me nuts, because ultimately it drives them nuts and they get frustrated and complain and think Tableau is hard and needlessly complex.

But it’s not Tableau – it’s the way they’ve been taught or the way they’ve made assumptions.  And actually, it goes deeper than dates.  It starts with dimensions vs. measures, and discrete (blue) vs. continuous (green).

 

Dimensions, Measures, Discrete, and Continuous

Here’s the issue: in an attempt to keep things simple in explanation, accuracy was sacrificed.  Consider the following:

Wrong

 

Here’s what I think when I see that:

No!  A thousand times, no!
No! A thousand times, no!

 

To say dimensions are discrete and measures are continuous is a simplification.  Simplification can be good.  But not when it’s just flat out wrong.  It might appear to be helpful, but really lays a poor foundation of understanding that will limit people from moving forward.

Consider this view:

View with Discrete Measure

Not only can I see the number of habitable planets for the Klingons, Romulans, and Federation, but I can also quickly see a count of Neutral Zone Violations as headers in front of the bars.  I can do this using a Discrete (Blue) Measure. Yes: it is a measure.  Yes: it is discrete.  Let that sink in.

It. Is. A. Discrete. Measure.

I made it discrete using the drop down menu on the field:

Discrete and Continuous Options

If I didn’t know I could use a measure as a discrete field in the view, then I might have moved the continuous field all over the place, searching for the perfect view (but never finding it):

never finding the right view

 

So, let’s keep it simple.  But let’s also keep it accurate:

  • Measure: a field that is aggregated (e.g. summed up, averaged, counted, etc…).   For example, I can sum up all my Habitable Planets, take an average, or get the minimum or maximum.

vs.

  • Dimension: a field that slices or groups the measures.  For example, I want to get the sum of Habitable Planets and the sum of Neutral Zone Violations sliced up by Alignment.  Since there are 3 alignments, I’ll get 3 sums (SUM of Habitable Planets and SUM of Neutral Zone Violations for Klingons, for Romulans, and for Federation)

 

Now, contrast that with:

 

  • Discrete (blue): Individual Values – when a field is used as a discrete field in the view, it will define headers and color legends with individual values.

vs.

  • Continuous (green): A  Flowing Range of Values – when a field is used as a continuous field in the view, it will define axes and color legends with gradients:

 

Discrete (blue) fields in action:

Discrete field in action

Continuous (green) fields in action:

Continuous field in Action

 

There’s some complexity we could dive into.  But we can keep it simple – and without sacrificing accuracy.  Here’s the simple thing to remember:

 

Measure vs. Dimension determines what fields are being aggregated and what fields are slicing/grouping the aggregations.

Discrete vs. Continuous determines how Tableau draws the results (headers, axes, color legends, etc…)

 

And here’s the secret:

For the most part it doesn’t matter whether a field is in the Dimensions list or the Measures list in the left Data Window.  That’s just the default, but once the fields in the view, you can use the drop down to convert almost any field back and forth between Measure and Dimension and between Discrete and Continuous:

Options

 

In summary: Almost any field in the view can be used as either a Dimension or a Measure.  And numeric and date fields can also be used as either Discrete or Continuous. 

 

And with that, you’re on your way to becoming a Tableau Jedi.

Then I am a Jedi
“Then I am a Tableau Jedi.” “No. Not yet. One thing remains. Dates. You must confront dates.”

 

 

Dates in Tableau are not hard…

…at least not if you take some time to understand and use careful, precise terminology.  When you right-click a date field in the view in Tableau, or use the drop-down you’ll get a menu like this:

Date Menu

 

Now admittedly, this is a long list and it might be intimidating at first.  But let’s break it down.  There’s:

  • The standard options for a field (Format…, Show Header, and at the bottom: the Tableau 9.0 feature – Edit in Shelf, and Remove)
  • Show Missing Values
  • A section of Date Parts
  • A section of Date Values
  • Exact Date
  • A section that allows you to switch between Attribute and various Measure aggregations
  • A section that allows you to switch between Discrete and Continuous

We’ll skip the standard options and merely mention, for now, that Show Missing Values is simply a way of telling Tableau to include missing dates in a visualization so you can see gaps in time where there is no data.

And just like almost any field, we can use it in the view as a dimension or a measure.  And we can use it as discrete (blue) or continuous (green).

 

The two primary sections that need to be understood are the two sections of dates.  The first section is a list of Date Parts. The second section is a list of Date Values.

 

Date Parts

Date Parts

Date parts are just the individual parts of a date – all by themselves.  So a date of November 8, 1980 could be broken down into individual parts:

  • Month: November
  • Day: 8
  • Year: 1980

And when I use just one of those parts as a dimension in a viz, then I’m telling Tableau, “Aggregate all the measures at the level of that date part.”  So, for example, when I put a Date on Columns and then select the Date Part of Month, I might get a view like this:

November

 

I’m telling Tableau, give me the SUM of sales for each Month (as a date part).  Sales on November 8, 1980 are included in the bar above.  So are Sales on November 9, 1980.  And November 22, 2015.  Sales in any November are included.

If I had selected the Date Part of Day then I would have a bar chart of every day (1st through 31st).  The 8th would have been any 8th of a Month: November 8, 1980; December 8, 2015; February 8, 2025.

 

Now, some people have been taught to refer to Date Parts as “Discrete Dates”.  This is because when you select a Date Part for a date field, the default is a discrete (blue) field.  But it is not accurate to speak of Date Parts as “Discrete Dates”.  You can switch a Date Part between Discrete and Continuous.  Here’s that view from above after using the field’s menu to make the switch:

Continuous Date Parts

 

Sure, the way Tableau drew the view changed (an Axis instead of headers, formatting the month as a numeric value, making the bars narrower, faint grid lines) – but fundamentally, it’s still giving the SUM of Sales for all Novembers (and Januarys and Februarys, etc…).

Don’t think of Date Parts as “Discrete Dates”.  They are “discrete by default’, but the Tableau Jedi can merely wave his hand (or use the right-click menu) and change things as desired.

“You want to be continuous”   “I want to be continuous”
“You want to be continuous” “I want to be continuous”

 

Date Values

Date Values

Date values are indeed the value of the date.  Notice that it isn’t just November.  It isn’t just 8.  It’s November 8, 1980.  Or, it’s November 1980.  It depends on the level you select.

So take that date and assume it has time included: November 8, 1980 5:46am

Depending on what level of detail you select you’ll get a value that is truncated (lower levels of details getting cut off).  Let’s rearrange the date and pretend we’re building a bar chart so we can see it better:

Year Month Day Hour Minute Second

1980 November 8 05 46 00

  • Year: 1980 November 8 05 46 00 – Truncated to the Year. Any date that falls within 1980 will give us a single bar.  There will be a bar of every other Year in the data.
  • Quarter: 1980 Q3 November 8 05 46 00 – Truncated to the Quarter. Any date that falls within 1980 Q3 will give us a single bar.
  • Month: 1980 November 8 05 46 00 – Truncated to the Month.  Any date that falls within November 1980 will give us a single bar.  Notice we get a bar for each Month and Year.  Notice also that I’ve made the field discrete in the view, which gives headers.
    Date Value Bar Chart
  • Date: 1980 November 8 05 46 00
  • Hour: 1980 November 8 05 46 00
  • Minute: 1980 November 8 05 46 00
  • Second: 1980 November 8 05 46 00

Again, some people have been taught that these are “continuous dates.”  They are not.  They are continuous by default.  But you can change them as needed.

Exact Date

Not much to say, except that this is the exact date value in the data.  No truncation, no funny business.  Just the exact date to whatever precision the data contains (including time if applicable).  This one can also be either discrete or continuous (it is continuous by default).

 

Why it Matters

Because you will no longer get frustrated and wonder why dates are so hard and confusing.  They’re not – not really.  And you will be able to generate some really cool views and impress your friends and co-workers.  You’ll select date parts or values as needed and change them to discrete or continuous at will.  You will be a Tableau Jedi.

Qui Gon prefers Continuous while Obi Wan likes Discrete.  I prefer Episodes 4 - 6.
Qui Gon prefers Continuous while Obi Wan likes Discrete. I prefer Episodes 4 – 6.

 

 

Convert Tableau to PowerPoint

Today’s Tableau Tip comes from my colleague, David Baldwin.  I am privilleged to work with him at Teknion Data Solutions, a Tableau Gold Partner providing data consulting solutions.

David is also Tableau Trainer – travelling the country to teach others how to use Tableau to see and understand their data.  One of the questions he often gets is how to convert Tableau into PowerPoint presentations.  

powerpoint

Here’s David’s answer:


How to Convert Tableau to PowerPoint

Let’s face it.  PowerPoint is ubiquitous and many companies have policies requiring PowerPoint for presentations.  Rats!  Wouldn’t be so much cooler to put a complete presentation in Tableau including not only data visualizations but images, lines of text and even animation?  Alas! Sometimes we have to bow to cultural dictates and put static screenshots of interactive visualizations into a pptx file.

How does one best do this?  Below is one approach where, admittedly, I thumb my nose a bit at PowerPoint by starting from a Tableau workbook that has been designed as a “PowerPoint-like” presentation.

  1. Open attached workbook “Fundamentals.twbx”.
  2. Select File > Print to PDF.
  3. Choose “Entire Worksheet” and set the orientation to “Landscape”
    Print to PDF
  4. Open the resulting PDF in Adobe Acrobat Pro.
  5. Within Adobe Acrobat Pro choose File > Save as Other > Microsoft PowerPoint Presentation.
    .
    Note that this selection choice is not available in Adobe Acrobat Standard. Alternatively, you might experiment with other PDF software packages such as Nitro or Foxit.  If you do come across a good “free” solution – please tell me in the comments.
  6. Presto!  You have a PowerPoint presentation!  However, we’re not done yet.
  7. Note in the attached pptx file that the first page is a mess.  There’s not a whole lot we can do to fix this.  The fastest choice is to just take a screenshot of the first dashboard in the twbx file.  The cleaner approach (which may be important if you plan to print the pptx file) is to recreate the page within PowerPoint.
  8. Notice that the pages have artifacts on them.  Fortunately, these artifacts are relatively easy to clean up.
    Artifacts
  9. To clean up artifacts, within PowerPoint go to View > Slide Master.
  10. Within each Master Slide remove the offending artifacts.  (See below.)
  11. With just a little more cleanup work, you should be good to go!

You can download David’s files here.  

Want to see what else you can do with printing and PDF?  Check this out.

Also, don’t miss any tips – pleaseSubscribe!

Going Off Grid – The secret way to hide something on a Tableau Dashboard

Wouldn’t it be great if there was a way to hide something on a Tableau Dashboard?  Something you, the designer wanted to see, but not something the end-user of the published dashboard should see.

Maybe it’s a set of instructions to remind yourself of how quick filters and parameters should be set prior to publishing.  Maybe it’s a drop down control for your action filter(s) so you can see what actions have been triggered and easily reset the action.  Maybe it’s an email message from the private account of a government official that you want to keep from the prying eyes of the public.

Whatever the case, there is a way!

The secret place to hide things on a Tableau DashboardClick to enlarge image

You can place any dashboard item just off the dashboard (in a fixed size dashboard) and when it’s published, the end-user will never see it.

How to get the dashboard item to the hidden place

The only trick is how to get something off the dashboard.  If you drag it there you get nothing.  Or if it was already on the dashboard, dragging it off is the same thing as removing it.

So instead, place it on the “real dashboard” as a floating item.  Then use the Position controls in the lower left to set the X and Y coordinates to position it off the dashboard.

Position Controls

 

The end result is a published dashboard that hides all the elements that were off the dashboard.

I sure wish I’d known this technique when I developed the Choose Your Own Adventure or BlackJack! dashboards.  Then, I created a secondary dashboard with everything on it and a special action filter to “reset” the dashboard as I designed and tested.  Instead, I could have just hidden the action filters off-grid and reset as desired.

Check out the dashboard in action:

All the hidden items I added to the dashboard are there, but in order to see all my secrets you’ll have to download the workbook and open it in Desktop…

Like this tip? Please leave a comment – I’d love to hear your feedback. Also look for the Share and Subscribe links if you’d like to keep up with the tips and share the knowledge! Until next time…

Data Prep and the New Tableau 9 Data Interpreter

The Tableau 9 Data Interpreter and other new data prep options, such as pivot and split, open up new possibilities for connecting to data.  No longer will you have to spend all your time fixing data structure and cleaning up headers, footers, and merged cells in Excel.  Tableau 9.0 makes that (and more) so much easier so you can get to asking and answering questions and visualizing the data!


Want to learn more about Tableau 9.0 features? Check out my favorite feature and some of my other favorites.


 

 

The video below is first in a series I will be doing for Teknion Data Solutions. In this video I’ll demonstrate the new data preparation features of Tableau 9, including the new data interpreter.

<shameless plug> I have been working as a consultant with Teknion Data Solutionsfor over 10 years and love it! If you enjoy Tableau (or any aspect of BI) and love to help others, consider joining Teknion’s team of consultants. </shameless plug>

I had a great time presenting this feature and others at DFW TUG! What a turn out!  Thanks to everyone who came and for those who made it come together.  If you were there (or even not) and have any additional questions leave a comment on this post and I’ll gladly try to answer.  I also presented on other new Tableau 9.0 features, including:

  • New Data Connection Options (Pivot, Split, Data Interpreter)
  • Level of Detail (LOD) calculations
  • Regular Expressions
  • New Calculation Editor & Ad  Hoc Calculations
  • Drag and Drop Analytics
  • Fun and Useful Enhancements (color picker, thumbnail preview, map search, new selection options)
  • Tableau Server Updates

And, now, the video:

(Subscribe to Teknion’s YouTube channel to get updates as new videos are posted)

Tableau Tips and Tricks ● Story Telling ● Beautiful Data Visualizations