I have a table that lists various attributes of an individuals personal development plan; objective, time to complete objective, comments etc. The table is editable so the user can directly add comments without having to go to an intermediate form. The problem is that the client wants to add more columns and this is messing up the visual display.

The alternatives I have are:

  1. allowing columns to expand out on click
  2. keeping essential attributes in table, rest in 'advanced edit option form' or somesuch
  3. I don't know - have you any ideas?

One more thing to add: I think the addition of extra columns is based on user feedback ...

edit: here is what I have gone for table with expandable columns

  • Is horizontal scrolling out of the question?
    – Steve
    Jun 1, 2011 at 11:31
  • 2
    I'm wary of horizontal scrolling because it hides columns...
    – colmcq
    Jun 1, 2011 at 11:46

5 Answers 5

  1. ...
  2. ...

  3. Put the table in a pane and allow the users to scroll horizontally to access additional columns. Be sure the column(s) that identifies the content of each row does not scroll away (i.e., acts a row “headers”) so user can keep track of what they’re look at.

  4. (More convenient version of your Option 2). Provide a separate “overflow” pane below the table for certain fields in a form-like layout. These may be the less important fields or fields that aren’t compared between rows or extra-large fields that are pain to show in a table. When the user clicks in a row in the table, the overflow automatically repopulates with the attribute values of the selected row. Bonus points for providing a control to hide or show the overflow pane, where hiding it expands the table to show more rows.

  5. Break your users into groups or roles and show each only fields they need for their roles. In other words, maybe the users who want additional fields don’t need all the fields you’re showing now, so you can replace some.

  6. Provide the users the ability to pick and arrange the fields they want to display. This may be combined with Option 3. You can provide default field sets to different user groups, thus also rolling in Option 5. Allow them to resize the width of their columns, taking a little of Option 1 too. Preserve all changes between sessions.

Note on your Option 2: This is attractive if you’re really sure these fields are of little value to the users despite the user feedback (e.g., it’s really the result of one influential stakeholder who doesn’t actually use the product very much). You may want to dig deeper and find out why the users want these fields. Maybe there is an alternative solution (e.g., a notification or an aggregate field) that will fulfill their needs better.

  • I'm meeting similar issues when displaying an "Inventory summary" table which counts items based on their brand and stock status. One way I did to mitigate the issue is to allow users to "Export to Excel". Sometimes it's hard to beat a good old Spreadsheet Jul 28, 2017 at 2:02

There are some great suggestions here:

How To Display Too Much Data

  • One of the tricks that might work well for you is making your rows columns and having, say, 5 columns across the page. Jun 1, 2011 at 12:49
  • this would work was it not for the fact that some of the cells will contain a lot of text....
    – colmcq
    Jun 1, 2011 at 13:54

Is there an option to group some of the columns into a single column? For example, instead of:

Name, Age, Job

you would have a single column:

User details
Name: Joe Bloggs
Age: 27
Job: Engineer

  • I've proposed that with a comments column: they have three classes of comment so I've suggested they just reduce to one. Still too little room though...
    – colmcq
    Jun 1, 2011 at 11:16
  • In this case, column based sorting might get tricky or even impossible. May be disable column sorting for this column in that case ?
    – shanky
    Apr 30, 2020 at 19:19

I have recently worked on a project which required to display a lot of information in a tabular format with large number of columns. We followed the following approach -

  • Horizontal scroll is inevitable.
  • You have to use it when dealing with lots of columns.
  • The thing which you can do is maximize the number of columns visible to the user at once.
  • Sometimes only the table headers take up more space and the actual values take up very little of it.
  • So you can use acronyms as a substitute for such large headers and reduce column width.

In my opinion, no one will benefit from showing 50 or more columns at once unless you apply a filter to get the needed columns. So here some useful techniques you can apply to turn your table into a readable piece of data is:

1- You must have the ability to include a checkbox beside every column, in the case to hide or show them.

2-Try to include show modes for the table depending on your frequent usage of the data. What I mean is that you can apply filter every time to get your needed columns, and this filter can be saved and give it a usable name. So the moment you want specific data you can just apply the saved filter. And that's it.

3- Some people try to truncate data in the column in aces its width is huge and the moment you rollover it expands the width of the column. (Not recommended only for a specific type of data).

4- Also you can combine some columns together like Fname and Lname to reduce space, and make that column fixed may this help give your table some visibility.

In the end, the business need will drive you to the best solution.

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.