2016-07-21 15 views
-1

Ich bin auf der Suche nach der durchschnittlichen Häufigkeit von Nullen, wo sie existieren IN ZWISCHEN 1 für jede Zeile. Ich habe in der Vergangenheit eine Kombination von Frequenz & Spaltenfunktionen verwendet, um durchschnittliche Streak (von 1 oder 0) und Max Streak (von 1 und 0) zu berechnen.Durchschnittliche Häufigkeit eines Wertes über Spalte Excel

Data Table

zum Beispiel Reihen 2,3,4 & 6 weggelassen werden, da keine Sequenz von 1-0-1 auftritt. Zeilen 5,7 & 8 haben Sequenzen von 1-0-1. Für diese bin ich unsicher, wie man die durchschnittliche Anzahl von Nullen zwischen 1 für jede Zeile berechnet.

Jede Hilfe würde sehr geschätzt werden und danke im Voraus!

Prost

Antwort

0

Sie können mit Array-Formeln kreativ werden. Versuchen Sie als Beispiel, diese Monsterformel in die Zelle T2 als Matrixformel einzugeben (Strg + Umschalt + Eingabetaste) und füllen Sie sie aus.

=IFERROR( 2 * AVERAGE( IF(($B2:$R2=0)*($C2:$S2=1)*COLUMN($B2:$R2)*(COLUMN($B2:$R2) > COLUMN($B2)+MATCH(1,$B2:$S2,0)-1) - ($B2:$R2=1)*($C2:$S2=0)*COLUMN($B2:$R2)*(COLUMN($B2:$R2) < MAX(COLUMN($B2:$S2)*($B2:$S2=1))) <> 0, ($B2:$R2=0)*($C2:$S2=1)*COLUMN($B2:$R2)*(COLUMN($B2:$R2) > COLUMN($B2)+MATCH(1,$B2:$S2,0)-1) - ($B2:$R2=1)*($C2:$S2=0)*COLUMN($B2:$R2)*(COLUMN($B2:$R2) < MAX(COLUMN($B2:$S2)*($B2:$S2=1))) ) ), 0) 

Ohne zu sehr ins Detail zu gehen, ist es das, was vor sich geht:

  • ($B2:$R2=0)*($C2:$S2=1)*COLUMN($B2:$R2) - dies gibt ein Array von Spaltennummern für wo die Zeilenübergänge von 0 auf 1 (Ende der streak) . In ähnlicher Weise fügt - ($B2:$R2=1)*($C2:$S2=0)*COLUMN($B2:$R2) dem Array die Spaltennummern hinzu, bei denen die Zeile von 1 nach 0 übergeht (Beginn des Streifens), außer dass es subtrahiert wird, um negative Spaltennummern zu erhalten.
  • Das Summieren jedes Paares positiver und negativer Spaltennummern ergibt die Streifenlänge. Eine Gesamtsumme dividiert durch die Anzahl der Streifen ergibt die durchschnittliche Streifenlänge. Einfacher 2 mal der Durchschnitt aller positiven & negativen Spaltennummern ergibt das gleiche Ergebnis.
  • Führende und nachfolgende Nullen in der Zeile sind ein Problem, daher wird eine zusätzliche Maske hinzugefügt, um sie zu ignorieren. *(COLUMN($B2:$R2) > COLUMN($B2)+MATCH(1,$B2:$S2,0)-1) ignoriert führende Nullen und ignoriert nachfolgende Nullen.
  • Also die Nullen sind nicht in der Durchschnittsberechnung enthalten AVERAGE(IF(exp <> 0, exp)) wird verwendet, die leider die Größe der Formel verdoppelt.
  • Und schließlich, wenn keine Streifen vorhanden sind, wird ein Fehler auftreten, so dass ein IFERROR(exp, 0) verwendet wird.
+0

Wunderbar. Vielen Dank für die angewandte Erklärung! –

0

Sie zum Beispiel verwenden können =COUNTIF($B5:$S5, 1) die 1en und =COUNT($B5:$S5) zu zählen, die Zahlen zu zählen. Sie können auch in die FREQUENCY-Funktion schauen.
Wenn dies Ihre Frage nicht beantwortet, geben Sie ein kleineres Beispiel und die Zahlen, die Sie als Ergebnis erwarten.