302 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,

habe folgendes Problem:

Ich möchte wissen, wie oft eine bestimmte Meldung in einer Spalte vorkommt. Hier hilft Zählewenn. Soweit so gut.

Allerdings gehören Thematisch immer 3 Zeilen zusammen und ich brauche diesen ausgegebenen Wert immer je Thema.

Beispiel:

12 Anlagen mit je 3 Zeilen. Sobald diese Anlagen eine Störung haben steht in der entsprechenden Spalte "Störung". Bei 4 Anlagen mit min. 1 (und folglich max. 3) "Störung" soll mir also 4 angezeigt werden. Dies gilt, egal ob 1 oder alle drei Zeilen einer Anlagen die Störung haben.

Wie kann das gelöst werden?

Vielen Dank im Voraus und Grüße

DerWillsWissen

5 Antworten

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo,

leider ist mir nicht ganz klar, wie die Tabelle aufgebaut ist.

Wenn die einzelnen Maschinen z.B. in den Spalten A bis L stehen und das Wort "Störung" immer chronologisch eingetragen wird (z.B. 1. Störung immer in Zeile 2, 2. Störung immer in Zeile 3) dann kannst du das einfach mit Zählenwenn lösen:

=ZÄHLENWENN(A2:L2;"Störung")

Falls die Tabelle anders aufgebaut ist, dann erkläre das mal bitte genauer.

Gru8

M.O.
0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)
Hi,

angenommen die Anlagenbezeichnung steht in Spalte A (immer im Abstand von 3 Zeilen) und das Wort Störung in Spalte E, dann kannst du mit folgender Formel die Anzahl für z.B. "Anlage1" ermitteln:

=ZÄHLENWENN(INDEX(E:E;VERGLEICH("Anlage1";A:A;0);1):INDEX(E:E;VERGLEICH("Anlage1";A:A;0)+2;1);"Störung")

Für die anderen Anlagen analog.
Bis später, Karin
0 Punkte
Beantwortet von
Hallo M.O

in Spalte C sind alle Anlagen aufgeführt.

Jedoch erstrecken sich hierbei die Inhalte jeder Anlage auf 3 Zeilen (Anlage 1 in Zeile 11, 12 und 13, Anlage 2 in Zeile 14 usw.); darüber werden Komponenten der einzelnen Anlagen dargestellt.

In Spalte T wird in jeder Zeile ein Status angegeben, so auch "Störung".

Das ist für andere Funktionen wichtig und richtig.

Allerdings soll in einer gesonderten Zelle ausgegeben werden, wie viele Anlagen eine Störung (unabhängig davon, ob in einer der drei Zeilen oder in allen dreien) in Spalte T ausgewiesen haben.

Beispiel:

Anlage 1 in all seinen drei Zeilen "Störung stehen, Anlage 2 nur in einer Zeile = 2, da 2 Anlagen mit Störung. Falsch wäre (wenn es nu über Zählenwenn gelöst werden würde) = 4

Vielen Dank im Voraus und Grüße

DerWillsWissen
0 Punkte
Beantwortet von

Hallo,

so wie ich das sehe hast du ohne VBA nur 2 Möglichkeiten. Entweder du machst das ganz adäquat mit der Formel =WENN(ODER(T11="Störung";T12="Störung";T13="Störung");1;0)+WENN(ODER(T14="Störung";T15="Störung";T16="Störung");1;0) usw. oder du vereinfachst das auf einen Teilbereich pro Maschine mit der Formel: =AUFRUNDEN(ZÄHLENWENN(T11:T13;"Störung")/3;0)+AUFRUNDEN(ZÄHLENWENN(T14:T16;"Störung")/3;0) usw. Letztere wäre eine starke Vereinfachung wenn es sich um 12 Zeilen pro Maschine handeln würde (dann natürlich /12). Jedoch ist auch das immer noch sehr aufwendig. Deshalb hier noch eine dritte Möglichkeit: Im VBA Editor fügst du in ein allgemeines Modul folgenden Code ein:

Function ZählenwennBereich(Bereich As Range, Teilbereich As Long, Bedingung As Variant) As Long
  Dim vorh As Boolean, i As Long, k As Long, cnt As Long
  For i = 1 To Bereich.Cells.Count Step Teilbereich
    vorh = False
    For k = 1 To Teilbereich
      If Bereich.Cells(i - 1 + k) = Bedingung Then vorh = True
    Next k
    If vorh = True Then cnt = cnt + 1
  Next i
  ZählenwennBereich = cnt
End Function

Dann kannst du diese einfache Formel für alle 12 Maschinen verwenden: =zählenwennbereich(T11:T46;3;"Störung")

Gruß Mr. K.

0 Punkte
Beantwortet von
Hallo zusammen,

vielen Dank für den Input. Ich habe inzwischen eine ganz andere, wenn auch nicht so elegante Lösung - z.T. via VBA - herangezogen.

Vielen Dank und Grüße

DerWillsWissen
...