Komplexe Kriterien zum Zählen von Vorkommen

1

Für eine Umfrage (bestehend aus +2000 Einträgen pro Tabelle) muss ich eine schwierige Summenoperation für die folgenden beiden Tabellen durchführen (vereinfacht).

Tabelle A:

  |   id    sex
--+---------------
1 |   101    m
2 |   102    w
3 |   103    w
4 |   104    m

Tabelle B:

  |   id    a    b
--+------------------
1 |   101   1    1
2 |   102   1    0
3 |   103   0    0
4 |   104   1    1

Die Werte für die Attribute 'a' und 'b' lauten yes (1) und no (0). Ich möchte nun das Vorkommen von Wert 1 in Spalte 'a' für jede männliche Person ('m') zählen.

Für dieses Beispiel wäre das Ergebnis 2.

Sie können diese Datei (test.odt) als Ausgangspunkt verwenden, wenn Sie helfen möchten.

Wie würde das jemand machen? Ist dies in Libre Calc überhaupt möglich oder sollte ich SQL verwenden?

neuronalbit
quelle
Sehr klare Frage - gute Arbeit. Das einzige, was es verbessern könnte, ist die Beschreibung der Versuche, die Sie unternommen haben, um es zu lösen. Haben Sie sich beispielsweise irgendwelche Calc-Funktionen angesehen, die nicht funktionierten, und wenn ja, welche?
Jim K

Antworten:

1

Ich habe noch keinen Test gemacht, aber ich denke, dass dies in Calc definitiv möglich ist. Sie möchten eine Kombination aus VLOOKUP UND SUMIFS sowie Kenntnisse über Array-Funktionen .

Grundsätzlich möchten Sie in SUMIFSSpalte B von Tabelle B das Geschlecht angeben VLOOKUP.

Verwenden Sie also Ihre Beispieltabellen in B6 von Tabelle B:

=SUMIFS(B2:B5; B2:B5; VLOOKUP({A};TableA!$A$2:$B$5; 2)="m")

Ich bin nicht sicher, ob das '{A}' die richtige Syntax ist, damit die Suche in Array-Art und Weise funktioniert.

Alternativ können Sie eine Spalte zwischen 'id' und 'a' in Tabelle B einfügen, VLOOKUPzum Ermitteln des Geschlechts verwenden und dann angeben, SUMIFSob die (neue) zweite Spalte "m" enthält.

BEARBEITEN: Abbrechen

Es scheint, dass Vlookup nicht in Array-Formeln verwendet werden kann, sodass dies nicht funktioniert. Versuchen Sie dies jedoch in B6:

=SUMPRODUCT(B2:B5*(LOOKUP(A2:A5,Sheet1.A2:Sheet1.A5,Sheet1.B2:Sheet1.B5)="m"))

Tabelle A befindet sich in Sheet1, Tabelle B befindet sich in Sheet2.

mcalex
quelle
Wenn ich in eine neue Zelle in Tabelle B eintrete, verwende ich das zweite Suchkriterium (B2:B5; B2:B5; "=1"), aber das VLOOKUP-Kriterium gibt Err: 512 aus. Das erste Kriterium sollte die Liste der Männer-IDs sein.
Neuronalbit
Für mich ist Ihr zweiter Vorschlag, das Geschlecht in einer separaten Spalte für jede entsprechende ID anzugeben, nicht optimal, da ich keine redundanten Daten möchte.
Neuronalbit
1
SUMPRODUCT zur Rettung! Es ist erstaunlich, wie viele verschiedene Arten von Problemen diese Funktion lösen kann.
Jim K