Filter Tableau Data By Wildcard Search With Multiple Keywords

In this video I will teach you how to perform a multiple keyword search in Tableau. I’ll show you how to perform both an OR search & an AND search against keywords you type into your dashboard parameter.

In order to accomplish these tasks, we need to use regular expressions. As I mention in the video, regular expressions can be indecipherable, akin to hieroglyphics or something out of a Dan Brown novel to the average person. You can go find this information on the Tableau knowledge base, but I want you to be the person that understands WHY something works as opposed to just copying and pasting a solution that you cannot explain to yourself or others.

The use case for multiple keyword search is for those times when you need to filter your data by a comment, description or other free form blocks of text that are not necessarily subject to the most stringent data governance rules, because let’s face it, these types of fields exist in abundance. In the video I create a dashboard that illustrates the power that this type of search can bring to your dashboard.

You can interact with the dashboard from the video on my Tableau Public page.

OR SEARCH

1. CREATE PARAMETER

Create a parameter named Search Terms.

  • Data type: String
  • Current value: keep it blank.
  • Allowable values: All

2. CREATE CALCULATED FIELD 1

Create a calculated field named Regex String (OR) including the following formula:

"(" + REPLACE([Search Terms], ',' ,'|') + ")"

Let’s breakdown what is going on with the apparent gibberish seen above (there is a method to the madness here). I’ll assume you want to perform a search against a field that contains the terms “paper” OR “Paper”; the case of the spelling is a factor in the results (case sensitive). To adhere to proper regex formatting, you could write a valid expression as such:

(paper|Paper)

This pattern indicates that you want to return a match on the characters “paper” OR “Paper” literally. You can test this out at https://regex101.com/

Although for some reason the official Tableau knowledge base article says to use the REGEX_REPLACE formula in lieu of REGEX, it is not needed since we are doing a simple replace and not using a regex formula to aid our replacements.

In the Tableau calculated field above, we are using the REPLACE function against the parameter named “[Search Terms]” to replace every instance of a comma with the the ‘|’ pipe symbol.

Think about it, if you type the terms “paper, Paper” into the a dashboard’s search term parameter as seen below, the calculated field will reformat your list into the proper regex format by replacing the comma with a pipe and then enclosing the term within parenthesis; i.e., (paper|Paper).

3. CREATE CALCULATED FIELD 2

Next create a calculated field named Regex OR Filter that contains the following formula:

REGEXP_MATCH([Product Name],[Regex String (OR)])

Let’s breakdown what is going on with the formula seen above. The REGEXP_MATCH formula is evaluating a properly formatted regex expression which is contained within the [Regex String (OR)] calculated field we created in step 2. This calculated field will contain the formatted expression (paper|Paper).

REGEXP_MATCH returns TRUE if a substring of the specified string matches the regex pattern. In our case

[Regex String (OR)] = (paper|Paper)


Thus the REGEXP_MATCH function will evaluate the regex expression (paper|Paper) from the second argument against the [Product Name] field in the first argument. The function will return either TRUE or FALSE depending upon whether a match is located within this field.

3. DRAG FIELDS TO ROWS AND FILTERS SHELF

Place [Product Name] to rows and [Regex OR Filter] to filters, then select True.

AND SEARCH

In order to create the AND search for your dashboard, you will follow very similar steps to the OR search. 1. Create the same parameter named Search Terms as in the OR Search above.

2. CREATE CALCULATED FIELD 1

Next create a calculated field named Regex AND Filter including the following formula:

"(?=.*" + REPLACE([Search Terms], ',' ,")(?=.*") + ").*"

This may look like something out of a Dan Brown novel, but don’t let it intimidate you. In a similar fashion to the OR search where we replaced commas with a pipe symbol, we are simply replacing commas with the following characters between the double quotes “)(?=.*”

The proper regex pattern to indicate an AND search against the terms paper and Paper within a body of text would be as such:

(?=.paper)(?=.Paper).*

Knowing the proper regex format should make the contents of the calculated field above more clear. We are using the REPLACE function against the parameter named [Search Terms] to replace every instance of a comma with the the )(?=.*symbols. Thus “Paper, paper” values typed into the [Search Terms] parameter becomes reformatted into(?=.paper)(?=.Paper).*

Placing .* at the end of the string means that any combination of characters can be placed after the search terms and still yield a TRUE result.

3. CREATE CALCULATED FIELD 2

Next create a calculated field named Regex AND Filter including the following formula:

REGEXP_MATCH([Product Name],[Regex String (AND)])

4. DRAG FIELDS TO ROWS AND FILTERS SHELF

Then place [Product Name] to rows and [Regex OR Filter] to filters, then select True.

CONCLUSION

That wasn’t so horrible was it? If you’re a visual learner like me, then go ahead and watch the video to hammer home the concepts. Hopefully this post will help you understand how these regex patterns work and how they can add value to your next dashboard design! As always if you learned something drop a comment on the YouTube video and let me know.

Please like and subscribe on the Anthony B. Smoak YouTube channel.

All views and opinions are solely my own and do not necessarily reflect those of my employer

I appreciate everyone who has supported this blog and my YouTube channel via merch. Please click here

Thank you!!

Anthony B Smoak

TLDR: Tableau Knowledge Base Reference: https://kb.tableau.com/articles/howto/how-to-filter-data-by-wildcard-search-with-multiple-keywords

Tableau Ambassador Swag for 2021

I was very honored to be selected as a Tableau Ambassador for the second time in 2021. If you follow this link, you’ll see me Anthony Smoak, suited up in the Tableau Public Ambassadors section. I started this blog and YouTube channel as a means to share what I know and what I learn and will continue to do so. The fact that I gain some recognition from Tableau or anyone else is secondary, but I will say it does feel good to be acknowledged by the wider Tableau community for all the off-hours and weekend work it takes to produce stellar content.

I don’t share 10 videos in a week. I have to research what to share, put together a dashboard to illustrate the concepts and record and edit everything all in my “spare” time. Who has any of that these days when we’re all feeling worn out? However, this blog is worth it for me because it forces me to learn and I have grown tremendously since I started this social media sharing journey some years ago.

I mention all of this to simply say thanks for following me and whoever keeps nominating me as an ambassador every year, I’m not mad at you!

One of the cool aspects of being selected as a Tableau ambassador is the swag you receive. Definitely watch the video as I will share an unboxing of this year’s swag for those that are curious.

In the words of the legendary Q-Tip from A Tribe Called Quest , “So give me this award, and let’s not make it the last.”

-Anthony B. Smoak

Please like and subscribe on the Anthony B. Smoak YouTube channel.

All views and opinions are solely my own and do not necessarily reflect those of my employer

If you want some of the cool merch I’m wearing in the video, check it out here.

Place Bar Chart Labels Above Bars in Tableau

In this video I will provide a method in which you can place your bar chart labels above the bars in Tableau. This technique is based off Adolfo Hernandez’s technique with a little more explanation and additional alternatives for the zero line. Make sure to add this to your bar chart repertoire!

If you want to follow-along with the video, you can download the data at this link:

https://www.basketball-reference.com/leagues/NBA_2021.html

In the video I exported data from the “Per Game Stats” section but you are free to download from whichever stats section you’d prefer.

High Level Steps:

Make sure to watch the video to get more in-depth:

  1. Drag your measure to columns (e.g., 3P)
  2. Drag your dimension to Rows (e.g., Team)
  3. Sort the measure to descending value
  4. Place the Team and 3P on the label and format accordingly
  5. Create a placeholder directly on the Columns shelf : AVG(0))
  6. Drag the placeholder to the bottom of the visual onto the 3P axis to make a combined axis visual
  7. In the Measure Value area make sure that AGG(AVG(0)) is placed above SUM(3P)
  8. Uncheck “Show Headers” for the Team dimension and for the axis at the bottom of the visual
  9. Format the visual to remove unnecessary borders and lines
  10. Make the following adjustments on the Label:
    1. Marks to Label: Min/Max
    2. Scope: Pane
    3. Field: Measure Values
    4. Options:
      1. Allow Labels to Overlap Other Mark
      2. Label Minimum Value
  11. Change the color of the bar chart borders to the background color of your visual in order to camouflage the tiny bar created by AVG(0)
  12. Uncheck “Show Header” for AVG(0)

When it’s all said and done you have a fresh new take on adding labels to your bar chart that can add differentiation to your overall visual!

For more detail on how to add a zero line (which I believe is important for bar charts in general and is a good design practice), watch the video.

Please like and subscribe on the Anthony B. Smoak YouTube channel.

All views and opinions are solely my own and do not necessarily reflect those of my employer

Do Great Things with Your Data!

Assign Color to Non-Existing Values in Tableau

The Issue:

I recently ran into the issue of not being able to color a dimensional value because my data did not yet contain that specific value. What I learned through trial and error is that I needed to change the calculated field I was using to force an expected value so I could color it appropriately.

I then had to change my calculated field back to what it was originally and hope that Tableau would remember the color. It would be nice if Tableau had a native built in interface to allow users to assign colors to expected values (regardless if the values are currently in the data), but this feature is not available in Tableau (looking at you very talented developers at Tableau).

Watch the Solution:

I created a calculated field with expected outcomes of “Bad”, “Normal” and “Great” based upon numerical profit data. The profit data I had did not support the “Great” value. Thus I had to doctor my calculated field to force the value and then color it. I didn’t know if Tableau would remember my color selection if I changed the calculated field and then changed it back, but it did.

The Forums:

Don’t worry, you are not the only one looking for a solution to this issue. Here are some Tableau forum links that basically ask the same questions.

Hopefully this post helped you in your search to color those non-existing values. For many of us, not all potential values are available in our data sources, and we many not have access to the underlying source data. Having a nice UI means to assign expected values in advance would be extremely useful.

The Dashboard:

I certainly love to develop new dashboards to test out functionality. I built this one to test out a few Ryan Sleeper dashboard tips. Make sure to download the dashboard .twbx file from from my Tableau Public profile (Anthony B Smoak) for free!

Please like and subscribe on the Anthony B. Smoak YouTube channel.

All views and opinions are solely my own and do not necessarily reflect those of my employer

Do Great Things with Your Data!



Address Matching in Excel Using Levenshtein Distance

For my Data Analysts, in this video I will demonstrate how to perform a column comparison between two address fields so you don’t have to manually review every row. We’ll use a VBA function from Stack Overflow to provide the comparison results.

I should point out that Excel is NOT the preferred method for address matching, but sometimes it is your only option due to lack of time or better tools. Ideally, you should use address correction software that “fixes spelling errors, corrects abbreviations, and standardizes capitalization so each address in your list complies with the USPS official format” – (per the USPS). Once your addresses are standardized, THEN you should perform a comparison, but this rarely happens.

What typically happens is that some poor analyst like you is conscripted into performing address matching manually using some combination of SQL Server and manual Excel processes. That’s why a Google search led you to this page!

If you ever have to perform address matching in Excel, this could be you!

Informally, the Levenshtein distance between two words is the minimum number of single-character edits (insertions, deletions or substitutions) required to change one word into the other.

For example:

  • The string “HAT” as compared to “hat” would have a Levenshtein Distance of 3
    • Since the function is case sensitive all three characters are different
  • The string “HAT” as compared to “BAT” would have a Levenshtein Distance of 1
    • To turn the first string into the second string it would take 1 substitution of characters (H changed to B or vice-versa)
  • The lower the number, the more the strings are similar
  • The higher the number, the more the strings are dissimilar.

Activate the Developer Tab in Excel

The Developer tab is the place to go when you want to do or use the following:

  • Write macros
  • Run macros that you previously recorded
  • Create VBA Modules and User Defined Functions <– This is our sweet spot
  1. On the File tab, go to Options > Customize Ribbon
  2. Under Customize the Ribbon and under Main Tabs, select the Developer check box

Create a Module in Excel

  1. On the Developer tab select Visual Basic
  2. In the VBA interface select Insert > Module

Insert Levenshtein Distance Function VBA Code

  1. Go to this link at Stack Overflow to view the code as originally referenced
  2. Or, simply copy the code below as developed by user “smirkingman” which is the first answer.
    • Big shoutout to “smirkingman” for this great resource!
Option Explicit
Public Function Levenshtein(s1 As String, s2 As String)

Dim i As Integer
Dim j As Integer
Dim l1 As Integer
Dim l2 As Integer
Dim d() As Integer
Dim min1 As Integer
Dim min2 As Integer

l1 = Len(s1)
l2 = Len(s2)
ReDim d(l1, l2)
For i = 0 To l1
    d(i, 0) = i
Next
For j = 0 To l2
    d(0, j) = j
Next
For i = 1 To l1
    For j = 1 To l2
        If Mid(s1, i, 1) = Mid(s2, j, 1) Then
            d(i, j) = d(i - 1, j - 1)
        Else
            min1 = d(i - 1, j) + 1
            min2 = d(i, j - 1) + 1
            If min2 < min1 Then
                min1 = min2
            End If
            min2 = d(i - 1, j - 1) + 1
            If min2 < min1 Then
                min1 = min2
            End If
            d(i, j) = min1
        End If
    Next
Next
Levenshtein = d(l1, l2)
End Function
  1. Paste the code into your newly created Excel module
  2. Debug > Compile VBAProject

You should not experience any errors after compiling the code.

Watch the Video to Use the Function

Using this function in a judicious manner can help you cut down on the mental energy required to manually review the address columns on each row. It is much better to mentally focus on 25% of the rows than 100%. The fewer rows you have to manually review in Excel, the less the chance of you making an error.


Please like and subscribe on the Anthony B. Smoak YouTube channel.

All views and opinions are solely my own and do not necessarily reflect those of my employer

Do Great Things with Your Data!



★☆★ Support this Channel: ★☆★

Merch ► shop.spreadshirt.com/AnthonySmoak

★☆★ FOLLOW ME BELOW: ★☆★

This image has an empty alt attribute; its file name is anthony-smoak-twitter.jpg

Twitter ► https://twitter.com/AnthonySmoak

Facebook ► https://www.facebook.com/AnthonyBSmoak/

Tableau Public ►Search for “Anthony B. Smoak”

Photo by Oladimeji Ajegbile from Pexels

Amazing Tableau Dashboard for Inspiration

I worked hard to create a Tableau dashboard packed with multiple features that any beginner or intermediate user should know how to complete. Use this dashboard as an inspiration regarding techniques to learn for your next Tableau dashboard.

Here are a few of the features included in this dashboard:

  • Parameters
  • Dynamic Titles
  • KPIs
  • Filters
  • Context Filters
  • Top 5 by Dimension
  • Highlight Actions
  • Filter Actions
  • Ranking
  • Show/Hide Containers
  • Image Buttons
  • Parameter Driven Chart Swap
  • Maps
  • Shape Files
  • Reset All Filters
  • Combo Chart / Dual Axis Chart (Bar in Bar)
  • Quick Table Calculations
  • Bullet Chart
  • Animations
  • Containerized Dashboard Layout

Because I love to teach in my relatively spare time, I am considering offering 1 on 1 training to learn how to put together this sample dashboard. As I mention in the video, leave a comment with your thoughts on how much of an investment you think someone would make for 3 hours of 1 on 1 training to build this together. Someone would definitely impress their manager or future hiring manager if they had the knowledge to build this type of front end reporting.

Let’s learn together, contact me here for more information: https://anthonysmoak.com/contact/

Interact with dashboard here ► https://tabsoft.co/3nU4c4Y


Please like and subscribe on the Anthony B. Smoak YouTube channel.

Definitely pick up some merch if you’ve enjoyed this blog and YouTube channel over the years:

https://shop.spreadshirt.com/AnthonySmoak/

All views and opinions are solely my own and do not necessarily reflect those of my employer

Do Great Things with Your Data!

Anthony B. Smoak, CBIP

How to Import a BAK File into SQL Server

If you’ve ever asked “How do I import a .BAK file into SQL Server” or “What is a BAK file and how do I open it” then this is your video. Additionally, I also demonstrate how to create a .BAK file to backup your database. If you work with data then you need to know this tip!

Do Great Things with Your Data

Anthony B. Smoak

Please like and subscribe on the Anthony B. Smoak YouTube channel!
Definitely pick up some merch if you’ve enjoyed this blog and YouTube channel over the years.

All views and opinions are solely my own and do not necessarily reflect those of my employer.

Tableau Dashboard Project #VIZNESSFIRST

In this video I kickstart the #VizznessFirst​ initiative where I describe a Tableau Dashboard I constructed using multiple resources from the Tableau #datafam​ community. Invest your valuable time in watching the videos as it will be worth the investment if you’re looking to pick up some new skills.

I describe the dashboard, show you the resources and then you attempt to build it. This is a perfect intermediate/advanced dashboard idea starter for students looking to improve their Tableau skills.

Background

Let’s start with a little background on how this initiative came together. I am a big fan of the Real World Fake Data (i.e., RWFD) project run by Mark Bradbourne at Tableau. I wanted to finally get involved and put together a dashboard and hopefully learn something new.

Because the particular data set used (Week 5: Help Desk) had very few measures to sum or aggregate; this left counting rows as the most informative means to squeeze some meaning from the data.

I stumbled upon an excellent blog post from Tableau Zen Master Lindsay Betzendahl where she explained a technique to highlight when a “filter” has been activated with a small indicator. I reversed engineered her dashboard to try and tease out how to pull this off with the RWFD data set.

In addition to this technique, I mashed up some other techniques from various members of the Tableau community. One of the great things that I enjoy about the Tableau community is that there are many creators who put out great content for others to learn from; whether it be videos, blog posts, PowerPoint slides, etc.

Once I had a dashboard I was proud of sharing. I figured I would release it as a series to try and teach others some of these techniques. The 3 videos in this series is the culmination of that effort.

VIDEO 1: Overview of the Project and Resources Required

Here are the references I used to put together the dashboard.

VIDEO 2: STEP BY STEP INSTRUCTIONS

Make sure to watch Video 2 above because this is where I explain the main technique required to complete the dashboard.

VIDEO 3: STEP BY STEP INSTRUCTIONS (TABLE TRICKS)

Video three rounds out the series by demonstrating a cool trick that enables you to build a filter button that opens a detailed table dashboard populated with only the records of interest from the first page. Yes, it uses a filter action but there is twist. Make sure to check it out.

SHARE WHAT YOU CREATE

  • POST YOUR FINISHED DASHBOARD TO TABLEAU PUBLIC:
    • DASHBOARD BUILT USING TABLEAU DESKTOP 2020.4.1
  • SHARE YOUR LINK IN THE COMMENTS ON THE YOUTUBE CHANNEL:
    • 10K+ SUBSCRIBERS CAN VIEW YOUR ACCOMPLISHMENT
  • YOU CAN ALSO POST TO:
    • TWITTER
    • LINKEDIN
  • MAKE SURE TO INCLUDE:


If you enjoyed this tip, please like and subscribe on the Anthony B. Smoak YouTube channel.

Definitely pick up some merch if you’ve enjoyed this blog and YouTube channel over the years:

https://shop.spreadshirt.com/AnthonySmoak/

All views and opinions are solely my own and do not necessarily reflect those of my employer

Do Great Things with Your Data!

Anthony B. Smoak, CBIP

Show and Hide Containers in Tableau

In this video I’ll show you how to show and hide containers in Tableau at the push of a button. This makes for a convenient way to increase space for your dashboard while hiding your filters or switching to an additional hidden chart until needed.

If you’re not using at least Tableau 2019.2.0, then you need to run over to your I.T. department and have them set you up. In previous versions of Tableau you could achieve this effect, but you would have to implement a hacky methodology in order to pull it off. Although I love a good hack, we should all strive to work smarter not harder.

The key to pulling off the show/hide container is to add a floating horizontal or floating vertical container to your dashboard. Only once you’ve taken this step can you see the option to “Add Show/Hide Button”.

Once you’ve selected this option, any new sheets, filters or other objects you wish to place in your container are enabled to appear or disappear at the press of a button.

An “X” marks the spot as this default customizable icon will appear. You can replace this image with text or use your own customizable image in its place.

As a reminder, (from the Tableau Knowledge Base) these options “will not be available if the sheet is not on a horizontal or vertical container and that container is not floating.”

In lieu of the default show/hide icons, in the video we will use buttons from a template provided by Kevin Flerlage. Do yourself a favor and head on over to the Flerlage Twins blog and download this handy resource.

Make sure to give your filters and charts the “Personal Space” they need! Rick and Morty aficionados know exactly what I’m talking about.

For the Power BI curious, here is how a similar process is conducted, where the filters (ahem) slicers are hidden at the touch of a button.


If you enjoyed this tip, please like and subscribe on the Anthony B. Smoak YouTube channel.

All views and opinions are solely my own and do not necessarily reflect those of my employer

Do Great Things with Your Data!

Anthony B. Smoak, CBIP

In all seriousness, the world lost an icon of baseball and civil rights as of the recording of this video; Mr. Hank Aaron. I live in Atlanta so I have to pay my respects with a shout out to Hammering Hank. Rest in Peace #44.

Add Total Values for Stacked Column and Stacked Bar Charts in Excel

This is the only video you need to learn how to add add totals to stacked bar charts and stacked column charts in Excel. Make sure to watch the video because I have you covered both ways.

I’m more of a video explanation person, so make sure to watch the video so the steps are clearer. Then refer to the bulleted steps as reference once you have the initial basic understanding.

The Keys to Adding Totals to the Stacked Column Chart Above:

  • Add a “Grand Total” column to your data
  • Highlight your data not including the “Grand Total” column
  • On the “Insert” menu select a “2-D Stacked Column” chart
  • Select “Switch Row/Column” as necessary so your first data column is listed on the X axis
  • Select the chart and then expand the data range to include the “Grand Total” column
    • Add “Data Labels” to the Grand Total series on the chart
  • Right click on the Grand Total and “Change Series Chart Type”, the viz becomes a “Combo” chart
  • Change the “Grand Total” series chart type to a “Line”, while leaving all others as a “Stacked Column”
  • Format the line’s data label, changing the Label Position to “Above”
  • Select the line, format the data series and change the “Line” option to “No Line” in order to leave only the totals and hide the line.

The Keys to Adding Totals to the Stacked Bar Chart Above:

  • Add both “Grand Total” and “Spacing” columns to your data
    • Highlight your data including the “Spacing” column but not including the “Grand Total” column
      • The “Spacing” column should have a value of 0 at this point
    • On the “Insert” menu select a “2-D Stacked Bar Chart”
    • Select “Switch Row/Column” as necessary so the “Spacing” values are not listed as an option on the Y axis
    • Change the “Spacing” column values to a number (e.g., 1000) big enough to make a new category visible on the stacked bar chart
    • Right click to “Format Data Labels” and change the “Label Options” to “Value from Cells”
      • In the “Select Data Label Range” pop up box, highlight the values from the “Grand Total” column
      • Change the “Label Position” to “Inside Base”
    • On the chart select the Grand Total Series and right click so the “Fill” option appears
      • Change the “Fill” to “No Fill”
    • Change the values in the “Spacing” column to 0
    • Delete the “Grand Total” entry from the Legend

You can thank me by liking and subscribing to my YouTube Channel

All views and opinions are solely my own and do NOT necessarily reflect those of my employer.

Do Great Things with Your Data

– Anthony B. Smoak

shop.spreadshirt.com/AnthonySmoak

INCREASE YOUR FOCUS TRY BRAIN.FM

When I am focusing hard during the day at work or developing visualizations on the weekend. I use Brain.fm to help me focus when it matters. It’s Science-driven and research-backed functional music designed from the ground up to help you you focus, relax, meditate and sleep. If you’d like to try a free trial check out https://brain.fm/anthonyb

Please use coupon code anthonyb for a 20% discount upon checkout. It helps support this blog and my YouTube channel as I receive a small commission for purchases made through links in this post.