Custom report group by two fields/columns

Is there a way to group by more than one field. In my case I want to to group by two fields. My questionnaire is collecting participant scores in 10 categories in an evaluation. The questionnaire has a field(question) asking the level of participant where the user selects one of two possible options. In my report I want to rank participants’s total scores in two of the level groups.

My other option is to create two separate reports for each group and then groupby one field i.e participant. However I don’t see a way to filter records to include only relevant records in each report.

Hi @chavu,

Welcome to the community! It would be easy to understand if you could provide an example with a questionnaire and a dummy report (through an image).

@Kal_Lam: Find attached the example questionnaire and dummy report as you requested.


Hi @chavu,

Thanks for the clear picture. It’s now clear! Sorry to inform you that KoBoToolbox (at the moment) does not have this feature. Maybe the developers could work on this upon receiving ample votes from the community or receiving funding from some funding organizations,

How much is needed to add this feature?
I am a developer, if I want to work on this feature, can you point me to some developer documentation to help me get started on contributing code to Kobotoolbox, and specifically where this existing code for the reports is found.

What you describe is already possible, but only if the score question is numeric:

If you can, please create a sample project with some dummy data and share the project link here publicly.

It seems like you already calculate the score within the form with a calculate question, so that each row is for one participant and already contains the score to be displayed in the screenshot.

There are two steps needed here:

  1. Reports need to be expanded to handle calculate questions
  2. The results table should be made sortable

The first item needs to accommodate all kinds of scenarios since calculate questions can be text or numbers. So I imagine the need for a user to define how the calculate question needs to be handled: 1) display all values submitted (as in current text questions) or 2) display the average (or 3) display the sum). In your example, any of these options would work if there is exactly one submission per participant, but for most forms that wouldn’t be the case.

The second item would be an extension for all tables displayed when the ‘group by another question’ feature is used. Users could then sort by either the grouping question or the results question. I think a global setting for the whole report would be easier.

I have shared with you, my project. I had to download the dataset to Excel and created the attached crosstab to achieve what I wanted.