So I have a large table with lots of different column headers, lets say there are 10. Currently, under this table, there are two different model types, model A and model B. Model A uses all 10 column headers, while Model B uses 6 of the 10. There is a filter, so you can either view both model A and model B at the same time, or you can filter by model to see either model A or model B. (There are additional filter options but I wont get into those) Currently, the design is created so that when you filter from model A to model B, or vice versa, the column headers change. If you are viewing both models at once, the table shows all 10 column headers. Now my question is, is it safe ux practice to change the column headers of a data table depending on which models are shown within the table, or is it better to show all 10 despite model B only using 6 of them. Both models are of equal importance so I cant prioritize one over the other.

Here is an example of what I mean: enter image description here

Basically, when a filter is selected where a column header is not required, it disappears. You can see that the flavor header stays in the table, but when I filter to dinner it disappears.

  • This is a contextual question. Can you provide an example? Commented Feb 3, 2023 at 9:30
  • @bloodyKnuckles Sure I added an example of what I'm trying to do
    – Gene
    Commented Feb 3, 2023 at 17:18
  • I didn't realize you meant column headers. I was thinking a table header. Commented Feb 7, 2023 at 7:02

2 Answers 2


I'd encourage you to test this with users, as it might depend on what your actual data model is and how people use this table. From your example using food options, I would include small text under the "dinner" filter that says something like:

1 empty column hidden. Show all.

Where "show all" is underlined and allows users to then bring back the hidden column, even though there's no data in it due to the current filter. I wouldn't hide columns without explaining why they're hidden and giving users a way to bring them back.


When filtering only show columns that apply to the filtered set. So when the table is filtered by "Dinner" remove the Flavor column.

remove unused columns

Showing a column implies the column type is related to the filtered set but the information is unknown, not applicable, or blank (empty string) for that particular row. By showing a column that does not apply, users need to either figure out it doesn't actually apply to the set, or may spend some time trying to figure out why it's there but empty.

When changing filter from "All" or "Dessert" to "Dinner" remove the Flavor column. Only show the columns needed for the filtered set.


If the column does generally apply, as when filtered by "All", but is unknown, not applicable, or blank for a particular row, mark it as such. Don't leave a cell empty, instead note why there is not a definitive value, with something like:

  • ? (unknown)
  • n/a (not applicable)
  • — (intentionally blank)

table n/a

table -

  • So in this example, when you filter by dinner, should the flavor column still be show, just "-" or "n/a" in the column details?
    – Gene
    Commented Feb 7, 2023 at 23:55
  • No, when changing filter from "All" or "Dessert" to "Dinner" remove the Flavor column. Only show the columns needed for the filtered set. Commented Feb 8, 2023 at 1:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.