I have a classroom walkthrough form with various EnumList fields on it, so now I have data where various columns contain multiple entries.
email_observed | InstDel | AssessLearn | Learn_Env | Prof_Know | Def_Learning |
demo1@school.com | 2,3,4 | 8,11 | 13 | 23 | 30,31,33 |
demo2@school.com | 1,2,3 | 8,9,10,11 | 14,15 | 23,24,25,26,27 | 31,32,36 |
demo3@school.com | 2,4,5 | 6,7,10 | 15 | 22,23,24 | 31,35,40 |
demo2@school.com | 1,4,5 | 6,8,9 | 14 | 24,25 | 31,33,40 |
demo1@school.com | 1,3,4 | 8,9 | 13 , 15 | 24,25 | 30,31,36 |
What I need to do is separate out those EnumList responses into individual columns, so that I can reconnect them to the corresponding statements, then provide people with graphs, lists, etc
So, ideally (I think) I would have an output like this below, which I achieved in Sheets using SPLIT() & FLATTEN(), or even the next step which would be to split & flatten this again to create a data set with 3 columns (email, strand, criterion)
demo1@school.com | InstDel | 2 | 3 | 4 | ||
demo1@school.com | AssessLearn | 8 | 11 | |||
demo1@school.com | Learn_Env | 13 | ||||
demo1@school.com | Prof_Know | 23 | ||||
demo1@school.com | Def_Learning | 30 | 31 | 33 | ||
demo2@school.com | InstDel | 1 | 2 | 3 | ||
demo2@school.com | AssessLearn | 8 | 9 | 10 | 11 | |
demo2@school.com | Learn_Env | 14 | 15 | |||
demo2@school.com | Prof_Know | 23 | 24 | 25 | 26 | 27 |
demo2@school.com | Def_Learning | 31 | 32 | 36 | ||
demo3@school.com | InstDel | 2 | 4 | 5 | ||
demo3@school.com | AssessLearn | 6 | 7 | 10 |
So, my question is whether this is achievable directly as an output from AppSheet, or do I need to process the data through Sheets as I have demoed here?
What you are showing is a "pivot" table of sorts and no you cannot perform this transition "directly" in AppSheet as is.
However, I would like to point out that reason you need this "pivot" is because the first table is in a non-normal form.
If you were use a table structured like that in the second table - which is more normalized - then you wouldn't need the extra processing at all. Something like this:
ID | Attribute | Results | |
a1 | demo1@school.com | InstDel | 2 , 3 , 4 |
a2 | demo1@school.com | AssessLearn | 8 , 11 |
a3 | demo1@school.com | Learn_Env | 13 |
a4 | demo1@school.com | Prof_Know | 23 |
a5 | demo1@school.com | Def_Learning | 30 , 31 , 33 |
a6 | demo2@school.com | InstDel | 1 , 2 , 3 |
a7 | demo2@school.com | AssessLearn | 8 , 9 , 10 , 11 |
a8 | demo2@school.com | Learn_Env | 14 , 15 |
a9 | demo2@school.com | Prof_Know | 23 , 24 , 25 , 26 , 27 |
a10 | demo2@school.com | Def_Learning | 31 , 32 , 36 |
a11 | demo3@school.com | InstDel | 2 , 4 , 5 |
You could one step further in "normalization" by having each result value in its own row but the need for that depends on the usage for your data.
Thank you - that looks so much better but I have no idea how I would set things up that way.
Current intended usage is that there are 4 main strands (the Attributes in your table) and then within each strand there are multiple criteria. The way I've currently built the app is that each strand appears on it's own tab and the relevant criteria appear as buttons on each tab.
Would it be possible to generate a similar UX and still generate a table like yours?
I don't understand what your input Form looks like. Can you show an example?
Does this help?
And this is a sample of the Criteria table that these statements come from
User | Count |
---|---|
39 | |
32 | |
30 | |
16 | |
14 |