Excel-Anzahl, wie oft ein eindeutiger Wert ausgewählt wurde

392
Abdd

Ich habe eine lange Datei mit drei Spalten, die erste Spalte enthält den Namen der Institute, die zweite Spalte enthält den Namen der Kunden in den einzelnen Instituten und die dritte Spalte enthält ein Ja / Nein-Feld, um anzuzeigen, ob ein bestimmter Kunde innerhalb einer bestimmten Institution dies hat ausgewählt worden

Inst. Cust. Selected INST_1 CUST_1 Yes INST_1 CUST_2 Yes INST_1 CUST_3  INST_1 CUST_4  INST_2 CUST_5 Yes INST_2 CUST_6  INST_2 CUST_7  INST_3 CUST_8 Yes INST_3 CUST_9  INST_3 CUST_10  INST_3 CUST_11  INST_3 CUST_12 Yes INST_3 CUST_13  INST_3 CUST_14  INST_4 CUST_15  INST_4 CUST_16 Yes INST_4 CUST_17 Yes INST_4 CUST_18 Yes 

Ich bin daran interessiert, die Anzahl der Institutionen zu berechnen, in denen ein, zwei oder mehr als zwei Kunden ausgewählt wurden.

Ich bin mit Lösungen vertraut, die Pivot-Tabellen verwenden, aber in meinem Fall wäre es praktischer, wenn das Ergebnis durch eine Formel generiert wird. Im Beispiel lautet die gewünschte Ausgabe:

Anzahl der Institute mit einem ausgewählten Kunden: 1

Anzahl der Institute mit zwei ausgewählten Kunden: 2

Anzahl der Institute mit drei oder mehr ausgewählten Kunden: 1

1
Sind die Daten wie gezeigt sortiert, so dass sich Lösungen darauf verlassen können, dass die Institutionsdatensätze zusammenhängend sind? Wenn dies der Fall ist und Sie keine Pivot-Tabelle verwenden möchten, können Sie eine Helper-Spalte verwenden, um entweder die erste oder letzte Zeile für jede Institution mit einer Anzahl von Ja für die Institution zu füllen. Dann COUNTIF die Zählwerte für die verschiedenen gewünschten Ergebnisse. fixer1234 vor 6 Jahren 0

2 Antworten auf die Frage

0
rGggg

Ich würde die marco-Codierungsfunktion im VBA-Plugin verwenden. Ich werde den genauen Code nicht angeben, da er sich von Zeit zu Zeit ändert. Hier einige grundlegende Pseudocodierungen.

  1. "Holen" Sie die Daten aus der Zelle als erstes. Sobald Sie herausgefunden haben, wie Ihre Excel-Daten Daten erhalten, müssen Sie herausfinden, wie Sie diese Schleife erstellen.
  2. Richten Sie die Formel für die Analyse ein und "PUT" in eine Datenzelle
  3. Gehen Sie zur nächsten Zelle oder erhöhen Sie diese zur nächsten Zelle. Hinweis: Anstelle von GET und PUT können Sie READ und WRITE verwenden. Ich glaube, der Unterschied zwischen den beiden ist, dass einer den binären Wert und der andere die Zeichenfolgenwerte liest. Die meisten Programmierer verwenden String-Werte zum Speichern von Werten und verarbeiten sie in ein Float oder ein Int.
0
Abdd

Ich verbrachte mehr Zeit und das Problem und ich fand eine Lösung, die den Ansatz in der Post illustriert die Nutzung Count eindeutigen numerischen Werte mit den Kriterien

Um die Formel zu implementieren, habe ich eine zusätzliche Spalte hinzugefügt, die den Inst. Spalte in eine Spalte, die nur numerische IDs enthält. Dies ist notwendig, um die FREQUENCYFunktion nutzen zu können.

Inst. Inst_ID Cust. Selected INST_1 1 CUST_1 Yes INST_1 1 CUST_2 Yes INST_1 1 CUST_3  INST_1 1 CUST_4  INST_2 2 CUST_5 Yes INST_2 2 CUST_6  INST_2 2 CUST_7  INST_3 3 CUST_8 Yes INST_3 3 CUST_9  INST_3 3 CUST_10  INST_3 3 CUST_11  INST_3 3 CUST_12 Yes INST_3 3 CUST_13  INST_3 3 CUST_14  INST_4 4 CUST_15  INST_4 4 CUST_16 Yes INST_4 4 CUST_17 Yes INST_4 4 CUST_18 Yes 

Die Anzahl der Institutionen, die nur einmal ausgewählt wurden, kann nun als berechnet werden SUM(1*(FREQUENCY(IF(Selected="Yes",Inst_ID),Inst_ID)=1)). Fälle, in denen die Institutionen zweimal oder mehr ausgewählt wurden, können auf ähnliche Weise berechnet werden.

Das bin-Array in der FREQUENCYFunktion cal kann auch auf eine Liste der eindeutigen Inst_ID verweisen.