My “Build Your Own Crosstab” Dashboard empowers Tableau Viewers to customize their experience by selecting and arranging the columns in their crosstab, based on their preferences. The inspiration for this dashboard came from hearing a user express frustration over not being able to reorder columns. This feedback made me pause and ask: Could this be possible? Read on to discover how this idea transformed into a fully functional solution.
Step 1: Pen & Paper
This dashboard began with one of my go-to techniques: pen and paper sketching. It’s not only essential for designing the layout but also for working through the technical aspects. In this case, I knew I wanted to incorporate parameters, parameter actions, and dynamic zone visibility. Figuring out how all these elements would interact took some serious brainstorming—and plenty of doodling! Here are some examples of my early sketches:
Step 2: Building in Tableau
With my wireframe sketches and notes at hand, I turned to Tableau. Once connected to Superstore data, I began building out the parameters and calculations I would need to run the dashboard. I built the necessary sheets, began the dashboard build (Horizontal and Vertical containers are key for this one!), and got to work on implementing dynamic zone visibility and parameter actions.
Step 3: Solicit Feedback
With a working prototype ready, it was time to ask for feedback. I published the dashboard to Tableau Public as a hidden viz, and shared the link with trusted colleagues in the #DataFam. I also brought the concept to #VizOfficeHours, held once a week by Michelle Frayman, Nicole Klassen, and Zak Geis. Having a fresh set of eyes helped me gauge the intuitiveness & functionality. With a few minor tweaks I was able to incorporate the feedback and switched the viz’s visibility from hidden to “Show Viz on Profile”.
If you’d like to take the dashboard for a test drive, you can find it on my Tableau Public profile. When you explore it, you’ll notice two key features: the Date field is mandatory (with no option for “no selection”), and all values appear on every row rather than being nested by column 1, as in a traditional Tableau crosstab. These were intentional design choices I set at the start of the project. Since this is a prototype, not built to spec, I established these requirements to give myself a clear framework to work within.
Happy Vizzing!
Leave a Reply