This is easy to do in Tableau. Using Superstore (the sample data set that comes with the product)...
- Bring Sales onto the rows shelf
- Bring Category to the columns shelf
- Put Ship Mode on the Color Marks Card
- On the Sum(Sales) pill in the Rows shelf, right click, select quick table calculation -> percent of total
- Click on the same pill and select compute using
Ship Mode



I'm not 100% sure I understand your exact data set but you would need to just substitute your objects for the ones that are detailed above.
As far as your specific data, it is in a hard format to work with. What Tableau really wants is something like:
cat var value
----------------------
num foo bad
num bar bad
num 1 good
num 2 good
num 3 good
num . missing
char b good
char 1 bad
char a good
char v good
char 2 bad
char missing
There are tools like Tableau Prep that can do this. But if you can put the data in this format it will be much easier to consume in (any) reporting tool. This is a type of pivot but you need to pivot each combination of cat/value and then union it with all other cat/value pairs.