You can turn dimensions into usable measures with a calc like SUM(IF [switch failed]="yes" THEN 1 ELSE 0 END). Then you can do % of Total with a calc like [No. of Failed Switches]/SUM([Number of Records]), or [No. of Failed Switches]/TOTAL(SUM([Number of Records])).
For the correlation work, there are a various ways to do this. A simple way to compare against a single dimension would be to create a bar chart with the No. of Failed Switches measure on Columns, the dimension of interest on Rows, and then use the one-click sort to find the most common reasons. You could add additional dimensions to the view to see where the most failures occur within all the charts created by a small multiple view.
Jonathan, thanks for the reply. I would need to know all the various values the dimensions could be if I were to be able to hard code each one and assign it a value. I was hoping to avoid manually assigning numerical values to alphabetic data.
Your simple way to find a correlation is interesting, and I think it brings to light a new feature that could make Tableau better: the ability to find correlations automatically. Based on Rows, such an algorithm could compare every value, whether numeric or alphanumeric, against every other value in the database (or portion thereof). Matching patterns of values creates a higher correlation. These correlations could be presented to the user in report form for review. The best ones, could be selected as "the" correlation(s) for further display charting or dashboarding options.