I am encountering the same issue. Your tip of reducing the size of the extract "works" for me as well, but working with a smaller extract is not an option.
I have noticed two things:
- Using a live data connection removes the issue, going back to an extract afterwards didn't fix it though.
- If you duplicate the extract you do not get the issue. This is only useful if you feel like rebuilding the report.
Perhaps purging/rebuilding the extract somehow could work, but I have not yet found the right way to do it.
I opened a case to Tableau customer service and they had a workaround for me. It solved the issue for me. I hope it helps!
Hi Shaun, I wanted to let you know that our engineering team believes they have a fix for this issue that you can expect in an upcoming release of Tableau Desktop.
In the meantime, the workaround that has worked for others thus far is to add an ELSEIF clause to the COUNTD() calculated field that counts a fake dimension member. It is crucial that the dimension member is fake, in order to ensure that the COUNTD() result is correct.
In this case, the field would need to be modified from the current "IIF" statement to a "IF, THEN, ELSEIF, THEN, ELSE, END" statement.
This calculated field will produce the error: COUNTD(IF [Customer] = 'Bob' THEN [Customer]
This modification should resolve the issue as a workaround:
COUNTD(IF [Customer] = 'Bob' THEN [Customer]
ELSEIF [Customer] = 'Fake Dimension Member' THEN [Claim ID]
Superb, thanks for the tip! While that didn't solve my issue, it gave me a method to work around the issue.
For me, this statement gave me the error:
oddly enough, if I replace it with this:
the error is gone..
I have a very similar problem on my end ...
We have a dataset with a series of records with an indication of whether a certain event occurred in it (there are six events and currently 500,000 records).
The original calcs were:
COUNTD(if [did_cart]=1 then brid else null end)
I've modded the count distincts as per the suggestions including down to:
COUNTD( if [did_cart]=1 then left(brid,20) elseif [did_cart]=5 then 'Fake Dimension Member' else null end)
The error goes when I reduce the complexity of the calcs by only having a small date range or a handful of the calculated fields but as we're trying to show calculated fields that are layered on top of these metrics (ie trending conversion rates over long periods) we're still getting the error.
It doesn't happen when the connection is live but is just too slow to work with. If there is a proper solution to thus that would be great!
I have tried this in both Tableau 8 and Tableau 8.2.
This sounds like a bug. Please send your workbook to support so we can fix the error.
This should be fixed as of 8.0.2. Try the following steps to see if they solve the problem:
- Upgrade to Tableau Desktop 8.0.2 or a later version. For more information, see Upgrading Tableau Desktop.
- Open the workbook in Tableau Desktop, and then make a live connection to the data source. For more information, see Connect to Data.
- Replace the extract with the live connection. For more information, see Replacing a Data Source.
- Extract the data. For more information, see Creating an Extract.
- Replace the live connection with the new extract.
Thank you, Maarten Schuit! The LEFT() function worked for me, too.
I'm concatenating some long text fields in version 8.2, and guessing some of these are of an unruly length.
IF contains(UPPER([p_fieldstosearch]),'CATEGORY') THEN IF ISNULL([Category]) THEN '' ELSE LEFT([Category],400) END ELSE '' END + IF contains(UPPER([p_fieldstosearch]),'SUBJECT') THEN IF ISNULL([Subject]) THEN '' ELSE LEFT([Subject] ,1000) END ELSE '' END + IF contains(UPPER([p_fieldstosearch]),'FEEDBACK') THEN IF ISNULL([Feedback]) THEN '' ELSE LEFT([Feedback], 8000) END ELSE '' END + IF contains(UPPER([p_fieldstosearch]),'NOTES') THEN IF ISNULL([Notes]) THEN '' ELSE LEFT([Notes],8000) END ELSE '' END