I can think of two approaches: An easy one and a difficult one.
Below is a draft of the easy approach, using the Superstore data set with the Customer Segment dimension for columns and Shipping Cost and Unit Price for measure values rows.
On the top left of the graph you'll see a Sort by field, which is parameter with a list of the measures (adding using a floating dashboard element). This is used to create a calculated field Sort Order =
IF [Sort by] == "Shipping Cost" THEN SUM([Shipping Cost]) ELSEIF [Sort by] == "Unit Price" THEN AVG([Unit Price]) END
After adding this field, right-click on it and select Convert to Discrete. Now drag it to the Columns header, just to the left Customer Segment. Click on this pill and deselect Show Headers. Since this is a blue, discrete pill, Tableau will create a new set of panes with, by default, borders around those panes. This is most obvious on the bar chart. From the top menu, click Format > Borders > Columns and move the Level slider at the bottom of the format pane to the left. The panes also break the line chart, but perhaps a bar chart woks as well, if not better.
Note that another approach is to set the sort order in Customer Segment to be this field. The problem is that users can override the specified sort order by clicking on the fields and then the sort orders will no longer be consistent across sheets (there is no way to disable the sort icon -- you can vote for it here: http://community.tableau.com/ideas/1094).
The Difficult Option
I think there's a way to do this without parameters using table calcs to determine the user-selected sort order, but it won't be easy to implement or maintain. If you can live with a parameter, the easy, parameter-based solutions is what I'd go with.
SortingAcrossSheets.twbx.zip 1.4 MB