Finding everyone in one table that's not in a sublist of another

Question:

I have an attendance table with a date and a reference to a person table.  It also has a computed key of Date + ":" + person_id.  I want to create a slice or report or something that shows me everyone in the person table who do not show up in a list of attendance records that match a specific date.  But I can't figure out how.  None of the logic in the slices that I think should work, ever does.

Background

Hello, just found out AppSheet is included in our Education Plus subscription and wanted to test it out.  I'm trying to create an attendance app.  I had previously made an attendance "app" in Google Sheets.  I had one sheet that listed dates and id #s.  And it had a hidden column that concatenated the date with the student_id.  I had another sheet that listed the students.  And I had a final sheet that had a date field, and then through a reference grabbed all students in the student sheet into two of the columns, and had a function that concatenated the date field with the student id field and checked if a matching record could be found on the attendance field.  If it could, it would return a "P" and if not then it returned an "A" and we could run a slice on it to list only those with a status of "A".   It worked pretty well.  Two checkers would use their phones or tablets and a QR scanning keyboard to enter in the student_IDs as students came into the room (all 280 of them) do a quick scan, and then move onto the next student very quickly.

I thought this would be a good first app to try with appsheet.  Especially since an app with built in qr-scanning is preferred.  Both for speed and ease of use.  I didn't like the default example as that required manually marking each person as present or absent.  Good for individual teachers, but not great for school wide events.

So I decided to use my original model.  Made a quick workbook with an Attendance Sheet and a Person Sheet.  Attendance has date, a reference to Person, in the form of the person_id field, and a calculated key field.  The Person field has person_id, name, picture, email, etc. 

I managed, very easily to make a quick form for adding attendance through QRCode.  Worked beautifully.  But now I need to get the Absences.  And I can't seem to find a good way to do that.

I tried making a slice and checking something along the lines of (pseudo code) not(in([person_id], filter(Attendance[person_id], Attendance[date] == today())))

I've also tried doing a concatenation of today's date + person_id and comparing that to the Attendance _ComputedKey but no go there either.  There is a fundamental logic I'm not understanding in how this information is processed and evaluated.  And I don't know what words to use to ask the help files.  Any suggestions or helpful hints you can think of that might point me in the right direction?

 

Solved Solved
0 2 161
1 ACCEPTED SOLUTION

2 REPLIES 2

Thank you very much.  It was the last one that clued me in.  I was checking if the entire list of students was in the list of returned student IDs, and then saying "Not" which made it all true.  I understand my issue now.

Top Labels in this Space