Create list of household members-then repeat list to ask further questions on each child

Dear ODK Community, I am new to ODK and looking forward to use ODK soon in a household survey in India, covering 2000 households in four different states.

I am working on the XLS form, but stuck here:

It will be asked: Can you give me the names, gender, ages and relation to you of each person (also children) in the household?
-then a list should be created with the names, age etc.

Next, the names of children between 5 and 18 should appear as questions (one by one) and for each child questions regarding education will be asked...

Is this really complicated? I do not know what to write into the Form, because the members of the household (which i don't know in advance) will be the basis for the next question(s).

Any help is very much appreciated!

Thank you! Rosie

Hi Rosie,

Please find attached an example. I believe it will help.

test_form.xlsx (13.4 KB)

Dear Imran,

thank you very much! I thought it looks great and I understand what the idea behind the structure is...Do I still have to make specific changes though? I just converted it and tried it in the enketo preview, but only the first questions show and none of the related questions. Is this because of the form, or because of the enketo preview?
I would be grateful for further help.

1 Like


On skip logic, you will only be able to see the relevant questions, if you answer the 1st question.


thank you, I answered the first question but then it just said "form valid" without going to the second question...

maybe I should try to test the form on a different platform than enketo. Can you perhaps recommend how I can preview the form on my computer? I do not have an android phone, but have to design and check the form before it will be used by the data collectors with android phones.

Thank you so much!

Here is a Google Sheet with a form like the one you're describing. You can see the notes column for some additional explanations and you can export it to an Excel document. @debu_odk this is somewhat similar to your situation from Randomly Choose a Name from a Household Roster so you may find it informative as well.

@A.N.M_AL-IMRAN I think you have almost all the pieces but it looks like you may have hardcoded some things so only 2 household members get follow-ups. The crash @rosie was experiencing is because of the use of the selected function. I believe that function is typically used to verify whether a particular value was selected by the user in a select or select1 question.


Thanks, @LN,

The example sheet helped me to resolve one of my issues. Previously I struggled to calculate within repeat group. Looks like, it is possible to calculate within repeat group. I will revise one of my forms and I may come up with couple more questions once I will start working on it.

Thanks again,

1 Like

This is awesome!

I am continuing to modify the form with further input and might (most probably will) come back with another question once I am stuck again :blush:

Thank you so much Hélène! This will already make data input literally 2000 times easier!


I am testing the questionnaire and fine tuning it.
Since the questionnaire is quite long, I try to keep the time spent on each question to a minimum.

So far, it is asked: how many people live here

  • then people start saying names and counting.
    Finally, I receive the number , (e.g.8 -please note this is in a rural, least developed context, people live with parents in law, aunts, cousins etc.)
    The next question comes up, please tell me the name of person #1
    then, please tell me the age of person #1
    (same kind of question for marital status, main occupation, etc.)

Wouldn't it be possible when asking who lives in the household, to gather names of people and gender and to create a list in parallel, while the respondent is saying the names?

Then repeating the names and asking further questions on each person, about occupation etc...?

Thank you, thank you, thank you!!

@rosie It is definitely possible to do that. You'll use two repeats. The first collects all the people, then do a second repeat that asks the questions of those people. Thre is a similar strategy implemented at Conditional counting on repeats if you want to try it out.