Excel-Datendarstellung: Zeigen Sie mir alle Personen, die die Prüfung nicht bestanden haben

1153
dreftymac

Hintergrund

Ich habe eine Excel-Tabelle mit den Ergebnissen einer Pass- / No-Pass-Prüfung. Die Schüler dürfen die Prüfung beliebig oft ablegen, bis sie entweder bestanden sind oder den Versuch aufgeben.

Student ;; Ergebnis ;; Datum sally@fiz.edu ;; kein Pass ;; 2000-06-07 bravo@fiz.edu ;; bestehen ;; 2000-06-07 charlie@fiz.edu ;; bestehen ;; 2000-06-07 delta@fiz.edu ;; kein Pass ;; 2000-06-07 alpha@fiz.edu ;; bestehen ;; 2000-06-07 sally@fiz.edu ;; bestehen ;; 2000-06-08 delta@fiz.edu ;; kein Pass ;; 2000-06-08 

Frage

Wie kann ich mit einer Pivot-Tabelle oder etwas anderem einen sauberen Bericht oder eine Darstellung dieser Daten auf einem anderen Blatt anzeigen, das die Frage beantwortet:

Wer sind alle Leute, die die Prüfung abgelegt haben, aber nie eine Bestnote erhalten haben?

Im obigen Beispiel würde es mir einfach delta@fiz.edu zeigen ;; kein Pass ;; Mit all den Daten, an denen das Delta die Prüfung ablegte.

Ich weiß, dass Excel weder eine Datenbank noch ein Reporting-Tool per se ist, aber es wäre großartig, wenn ich es dazu bringen könnte.

2
Dies ist möglicherweise besser für den Stapelüberlauf geeignet Daisetsu vor 14 Jahren 0

3 Antworten auf die Frage

4
Neal

I put the data in you question into Columns A,B and C in a sheet and in cell D2 entered the array formula:

=SUM(($A$2:$A$8=A2)*($B$2:$B$8="pass"))

and then copied it down the column (rememer to use ctrl+shift+enter to enter the formula).

Column D then gives you a 0 where the student has not passed the exam.

You can the use "remove duplicates" on the data tab to remove the duplicates (clear the date box in the dialog) to leave you with a list of people who have not passed the exam, and then filter (again on the "data" tab) by column D.

Wenn Sie anstelle einer Arrayformel eine reguläre Formel verwenden möchten, können Sie `= SUMProduct (- ($ A $ 2: $ A $ 8 = A2), - ($ B $ 2: $ B $ 8 =" pass ") ) ` Jarvin vor 14 Jahren 0
+1 schöne Vermeidung des Pivot-Tisches. Oft habe ich jedoch Probleme mit Arrayformeln. DaveParillo vor 14 Jahren 0
2
DaveParillo

I would add a 4th column to turn the 'pass' 'fail' into a number, example, =If(B2="pass",1,0). Let's call this new column "test". Then extend this formula for all your rows.

Then it is easy to make a pivot table that is setup with students as a row field, dates as column fields and test as your data field. It doesn't much matter if the test data is 'Sum of test" or "Count of test"

Then hide all the test values > 0.

1
patrickinmpls

record a macro... do the following

select entire table
create new worksheet
paste table
sort on result

then if you really want only the results, you'll need some conditional logic in the VBA file that represents your macro


otherwise learn how to program in VSTO and do it in .NET, this is a nicer solution, but possibly more work depending on your abilities.