Excel Matrix Bedingung - Gibt es einen schnelleren Weg?

525
xhaltar

Ich möchte einige Daten erhalten, die von mehreren Einträgen abhängen.

Ich verwende das "NB.SI.ENS ()", das auf Englisch "COUNTIFS ()" ist, wenn ich mich nicht irre.

Ich habe mehrere Einträge, die ein 3D-Array darstellen würden, da ich 3 Quellen verwende. Diese Quellen sind eine Aktivität, ein Projekt und ein Datum .

Für jeden muss ich die Drillinge zählen ( Aktivität, Projekt, Datum ). Mein Beispiel im Bild zeigt 3 für die Anzahl der Tests in Projekt 1 am 10. Monat.

Dies ist die Darstellung

Mit zwei Quellen funktionieren die COUNTIFS () - Funktionen in Ordnung. Ich kann dies mit so viel COUNTIFS () tun, wie es Schnittpunkte zwischen Zeilen und Spalten aus den beiden Quellen gibt (z. B. Aktivitäten und Projekte ).

Mit 3 Einträgen muss ich so viele 2D-Arrays erstellen, wie Daten im dritten Array vorhanden sind.

Ich habe die Datumsangaben als 3. Array ausgewählt, also habe ich 12 2D-Arrays.

Dies kostet viel Rechenzeit von Excel, wenn ich mehr als 200 Datenzeilen bekomme.

Gibt es einen besseren Weg, das zu tun?

0
Wenn ich mich nicht irre, versuchen Sie, projektbezogene Einträge für diese 3 Entwicklung, Test und Mobilisierung zu zählen, schreiben Sie? Ein Hinweis, den das Datum nicht als Kriterium BCoz verwenden sollte, haben alle Zeilen dasselbe Datum 01/10/2017. Rajesh S vor 6 Jahren 0
Sie haben recht, mein Bild ist nicht eindeutig genug. Es gibt natürlich Zeilen mit unterschiedlichen Daten. Ich habe das Beispiel mit anderen Daten aktualisiert (November, Dezember) xhaltar vor 6 Jahren 0

2 Antworten auf die Frage

2
Ng Sek Long

Ich habe eine sehr schmutzige Lösung, aber ich habe es versucht und kann sofort Ergebnis für 600 Datenzeilen erhalten .

Ich habe für Sie ein Screen-Cap ( https://image.ibb.co/kqxvYR/tmp.png ).

Grundsätzlich habe ich die drei Texte mit einem Symbol zusammengefügt und nur COUNTIF für diese Spalte ausgeführt

Schritt für Schritt:

  1. Verketten Sie die 3 Texte
    1. Verwendung dieses Befehls [ = CONCAT ($ A2, "|", $ B2, "|", $ C2) ] für D2 (Erhöhen Sie die Anzahl um 1 in jeder Zeile)
    2. Zum Beispiel: A2 = Test, B2 = Projekt 1, C2 = 10.01.2017
    3. Jetzt habe ich: Tests | Projekt 1 | 01/10/2017
  2. Wenn Sie suchen müssen: Fügen Sie die gewünschten 3 Elemente an einem separaten Ort ein

    1. Zum Beispiel: F10 = Modellierung, G10 = Projekt 2, I10 = 01/10/2017
    2. Verwenden Sie erneut 1.1-Befehl [ = CONCAT ($ F10, "|", $ G10, "|", $ I10) ] für F12
    3. Jetzt sieht F12 wie diese Modellierung aus Projekt 2 | 01/10/2017
    4. Sie können Ihr Ergebnis mit einem viel einfacheren COUNTIF-Befehl erhalten: = COUNTIF (D2: D14, F12)
  3. Nun könnte man denken, dass man diesen hässlichen Test Modelization | Projekt 2 | 01/10/2017 ist nicht zulässig

    1. Sie können es mithilfe von Excel-Formatierungsmagie ausblenden
    2. Ziehen Sie den ganzen hässlichen Text der Spalte D über
    3. Klicken Sie mit der rechten Maustaste> Zelle formatieren
    4. Dann Registerkarte Nummer> Benutzerdefiniert
    5. Geben Sie in ;;; in der Textbox
    6. Dann ist der hässliche Text für den Benutzer nicht mehr sichtbar

Hoffe das hilft dir!

Ja, das hilft viel. Bei 200 Datenzeilen ging ich von 10 Sekunden Rechenzeit auf 3 Sekunden xhaltar vor 6 Jahren 0
Schön, dass es hilft! Ng Sek Long vor 6 Jahren 0
@NgSekLong, Lösung ist letztendlich eine Lösung, und Sie haben es auf Ihre Art getan. Hilfssäule ist eines der nützlichen Tools, aber vielen Benutzern gefällt es nicht. Aber ich schätze immer die Mühe. Rajesh S vor 6 Jahren 0
1
Rajesh S

Nach der Analyse Ihres Screenshots und der Abfrage habe ich eine Lösung erstellt, bei der alle drei Aktivitäten gezählt werden, die zu unterschiedlichen Terminen fallen. Überprüfen Sie diesen Screenshot.

Datenbereich ist A434: D459 .

Erste Formel in B449 .

= COUNTIFS ($ A $ 434: $ A $ 446, "=" & $ A449, $ B $ 434: $ B $ 446, "=" & $ A $ 448, $ C $ 434: $ C $ 446, "=" & B $ 448)

Zweite Formel in B453 .

= COUNTIFS ($ A $ 434: $ A $ 446, "=" & $ A453, $ B $ 434: $ B $ 446, "=" & $ A $ 452, $ C $ 434: $ C $ 446, "=" & B $ 452)

Dritte Formel in B457 .

= COUNTIFS ($ A $ 434: $ A $ 446, "=" & $ A457, $ B $ 434: $ B $ 446, "=" & $ A $ 456, $ C $ 434: $ C $ 446, "=" & B $ 456)

Ziehen Sie alle Formeln 2 Spalten nach rechts und dann 2 nach unten.

Passen Sie den Datenbereich an Ihre Bedürfnisse an .

Hoffe die Hilfe, die ich danach geschrieben habe, wurde von mir getestet.

@Xhaltr, ich habe die bestmögliche Methode verwendet, um die Aktivitäten, die in zwei Datumsbereichen liegen, in zwei Segmenten aufzuspüren, zum besseren Verständnis. Rajesh S vor 6 Jahren 0
Ihre Antwort ist interessant, aber ich verstehe nicht, wie sich das von meiner unterscheidet? Könnten Sie genauer sein? xhaltar vor 6 Jahren 0
Meine Lösung ist genau das, was Sie von Ihnen verlangt haben. Ich habe festgestellt, dass dies die beste Methode ist, die ich Ihnen vorschlagen kann, um die Projekte zu tabulieren, die in die Termine fallen. Wenn Sie etwas anderes benötigen, posten Sie einfach den Screenshot des Ausgabeformats. Ich erstelle ein anderes. Rajesh S vor 6 Jahren 0