Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: X in einer Matrix finden

X in einer Matrix finden
19.08.2018 08:33:34
erichm
Hallo,
in einer Matrix ist pro Spalte in einer bestimmten Zeile ein „x“ zu finden und dann die Zeilen in der gleichen Spalte nach unten zu durchsuchen und zu finden, in welcher Zeile das nächste „x“ steht. Die Differenz der Zeilen ist das Ergebnis.
Bisher konnte ich das alles nur mit verschiedenen Hilfskonstruktionen lösen – ich denke aber, da gibt es noch Verbesserungsmöglichkeiten. Musterdatei anbei.
https://www.herber.de/bbs/user/123416.xlsx
Beschreibung:
1. Die Matrix mit x wird aus einer anderen Software importiert. Dadurch erkennt EXCEL das „x“ nicht, weswegen ich die Tabelle „Hilfe“ erstellt habe, über die dann das „x“ ermittelt werden kann.
2. Die gesamte Matrix besteht aus Spalte A mit absteigendem Datum ab Zeile 5 und aus Kunden-Nrn. in Zeile 4 ab Spalte C bis Spalte MJ.
3. Die Matrixgröße innerhalb derer zu suchen ist, wird durch die Eingabe eines Datums in A2 vorgegeben.
4. Die Ergebnisformel steht in C3 bis MJ3. Für die Umsetzung sind derzeit mehrere Hilfsspalten bzw. eine Hilfszeile notwendig (siehe Formel).
Frage: kann diese Formel vereinfacht werden?
Vielen Dank für eine Hilfe.
mfg
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: X in einer Matrix finden
19.08.2018 09:08:54
Sepp
Hallo Erich,
C2:C3 nach rechts kopieren.
Sheet0

 ABCDEFGHI
1  347346345344343342341
215.08.2018Datum      /         Zeile209202825309
3 Rückstand93823 14918
4DateleerKunde1Kunde2Kunde3Kunde4Kunde5Kunde6Kunde7
519.08.2018        
618.08.2018        
717.08.2018        
816.08.2018        
915.08.2018  ×    ×
1014.08.2018        
1113.08.2018        
1212.08.2018        
1311.08.2018        
1410.08.2018        
1509.08.2018        
1608.08.2018        
1707.08.2018        
1806.08.2018        
1905.08.2018        
2004.08.2018 × ×    
2103.08.2018        

Formeln der Tabelle
ZelleFormel
C2=WENNFEHLER(AGGREGAT(15;6;ZEILE($A$5:$A$199)/($A$5:$A$199<=$A$2)/(C$5:C$199=ZEICHEN(215)); ZEILE($A1)); "")
C3=WENN(C2="";"";WENNFEHLER(AGGREGAT(15;6;ZEILE($A$5:$A$199)/($A$5:$A$199<=$A$2)/(C$5:C$199=ZEICHEN(215)); ZEILE($A2))-C2;""))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: X in einer Matrix finden
19.08.2018 09:24:51
erichm
Hallo Sepp,
danke - noch nicht ganz.
Evtl. war meine Beschreibung zu ungenau:
Die Zeile 3 soll nur dann ein Ergebnis ausgeben, wenn in Zeile 2 ein x gefunden wird, das in der gesuchten Zeile lt. A2 steht. Im Beipiel also die 9 in Zeile 2 führt zu einem Ergebnis in Zeile 3. Dies ist in den Spalten D und I.
Danke nochmal.
mfg
Anzeige
AW: X in einer Matrix finden
19.08.2018 09:30:10
Sepp
Hallo Erich,
bei "Excel-gut" könntest du aber schon selber aus einem "<=" ein "=" machen!
Sheet0

 ABCDEFGHIJKL
1  347346345344343342341340339338
215.08.2018Datum      /         Zeile 9    9   
3 Rückstand 38    18   
4DateleerKunde1Kunde2Kunde3Kunde4Kunde5Kunde6Kunde7Kunde8Kunde9Kunde10
519.08.2018           
618.08.2018           
717.08.2018           
816.08.2018           
915.08.2018  ×    ×   
1014.08.2018           
1113.08.2018           
1212.08.2018           
1311.08.2018           
1410.08.2018           
1509.08.2018           
1608.08.2018           
1707.08.2018           
1806.08.2018           
1905.08.2018           
2004.08.2018 × ×       
2103.08.2018           

Formeln der Tabelle
ZelleFormel
C2=WENNFEHLER(AGGREGAT(15;6;ZEILE($A$5:$A$199)/($A$5:$A$199=$A$2)/(C$5:C$199=ZEICHEN(215)); ZEILE($A1)); "")
C3=WENN(C2="";"";WENNFEHLER(AGGREGAT(15;6;ZEILE($A$5:$A$199)/($A$5:$A$199<=$A$2)/(C$5:C$199=ZEICHEN(215)); ZEILE($A2))-C2;""))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
 ABCDEF
1Gruß Sepp
2
3

Anzeige
DANKE - owT
21.08.2018 16:46:06
erichm
...
ohne Hilfszellen
19.08.2018 09:38:53
WF
Hi,
in C3 folgende Arrayformel:
{=WENNFEHLER(WENN(VERGLEICH($A2;Hilfe!$A:$A;0)=VERGLEICH("X";Hilfe!C1:C200;0); KKLEINSTE(WENN(Hilfe!C1:C200="X";ZEILE(1:200));2)-VERGLEICH($A2;Hilfe!$A:$A;0);"");"") }
nach rechts kopieren
Salut WF
die "Hilfe"-Tabelle soll ja weg
19.08.2018 10:13:47
WF
Hi,
in C3 also:
{=WENNFEHLER(WENN(VERGLEICH($A2;$A5:$A200;0)=VERGLEICH(ZEICHEN(215);D5:D200;0); KKLEINSTE(WENN(D5:D200=ZEICHEN(215);ZEILE(5:200));2)-VERGLEICH($A2;$A5:$A200;0)-4;"");"") }
WF
Anzeige
DANKE - owT
21.08.2018 16:46:30
erichm
...
AW: mit einer Matrixfunktion(alität)sformel ...
19.08.2018 09:59:16
neopa
Hallo Erich,
... die keines spez. Formelabschluss wie eine klassische Matrixformel benötigt und ganz ohne Hilfstabelle/-zellen
In C3 mit benutzerdefinierten Zahlenformat: 0;;
=WENNFEHLER(VERGLEICH(1;INDEX((INDEX(C:C;VERGLEICH($A2;$A5:$A999;0)+5):C49"")*1;);
0)*(SVERWEIS($A$2;$A5:$MJ999;SPALTE();0)=ZEICHEN(215));"")

und nach rechts kopieren.
Gruß Werner
.. , - ...
Anzeige
AW: mit einer Matrixfunktion(alität)sformel ...
21.08.2018 16:52:41
erichm
Hallo Werner,
danke!!
Mit dieser Lösung habe ich jetzt die Auswertungsmöglichkeit nochmals optimiert.
Statt die "Matrixgröße" durch eine Eingabe in A2 zu bestimmen, habe ich die Formel so angepasst, dass pro Zeile immer eine neue Matrix mit einem neuen Ergebnis entsteht. Das spart viel Zeit!!
Frage hierzu: Die Dateigröße wird durch die Formel in den vielen Zeilen nicht wesentlich größer. Irgendwie stößt aber wohl die Leistungsfähigkeit von EXCEL ab einer bestimmten Anzahl an Grenzen (stürzt ab).
Da ich allerdings die Möglichkeit habe für bestimmte Bereich immer neue Tabellen anzulegen und die Ergebnisse zentral dann wieder zurückhole, ist das für die Praxis soweit kein Problem.
Danke für eine ergänzende Info / Meinung.
mfg
Anzeige
AW: ja, es ist zu beachten ...
22.08.2018 11:35:20
neopa
Hallo Erich,
... auch benötigen Matrixfunktion(alität)sformeln nicht unwesentlich Ressourcen. Die eine hier macht zwar das Kraut noch nicht fett, aber ich vermute mal, dass Du weitere Auswertungen in Deiner Arbeitsmappe zu laufen hast. Und in Summe dessen kann das ganz schön schlauchen.
Es gibt aber meist noch Optimierungspotential aber ob und wie diese sich positiv auswirken, hängt von vielen Faktoren ab.
Betrachten wir mal nur die eine Formel, um die es hier im thread ging. Die letzte Auswertungszeile hab ich etwas willkürlich auf 999 gesetzt. Dies lässt sich sicherlich noch reduzieren auf das max überhaupt notwendige. Ich hab auch schon festgestellt, dass man noch etwas gewinnen kann, wenn man anstelle ... INDEX(C:C;... hier z.B. ... INDEX(C$1:C$###;... schreibt, Also anstelle ### 999 bzw. wie zuvor geschrieben die max. notwendige Zeile.
Gruß Werner
.. , - ...
Anzeige
AW: ja, es ist zu beachten ...
23.08.2018 11:27:11
erichm
OK - Danke!
Das werde ich modifizieren.
mfg
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

X in einer Matrix finden


Schritt-für-Schritt-Anleitung

Um einen Wert in einer Matrix in Excel zu suchen und auszugeben, kannst Du die folgenden Schritte befolgen:

  1. Matrix erstellen: Importiere Deine Matrix in Excel. Achte darauf, dass sie in einem klaren Format vorliegt, z.B. mit Datumsangaben in der ersten Spalte und den Werten in den folgenden Spalten.

  2. Suchkriterium festlegen: Definiere in einer Zelle (z.B. A2) das Datum oder den Wert, den Du suchen möchtest.

  3. Formel eingeben: Verwende die folgende Formel in der Zelle, in der Du das Ergebnis haben möchtest (z.B. C3):

    =WENNFEHLER(AGGREGAT(15;6;ZEILE($A$5:$A$199)/($A$5:$A$199=$A$2)/(C$5:C$199=ZEICHEN(215));ZEILE($A1));"")

    Diese Formel sucht in der Matrix nach dem x und gibt die entsprechende Zeile zurück.

  4. Formel nach rechts kopieren: Ziehe das Ausfüllkästchen der Zelle nach rechts, um die Formel auf die anderen Spalten anzuwenden.

  5. Ergebnisse überprüfen: Stelle sicher, dass die Ergebnisse korrekt sind. Falls nicht, überprüfe die Eingabewerte und die Matrix.


Häufige Fehler und Lösungen

  • Fehler: Keine Ergebnisse
    Mögliche Ursache: Das gesuchte Datum oder der Wert befindet sich nicht in der Matrix. Überprüfe, ob Du das richtige Datum / den richtigen Wert eingegeben hast.

  • Fehler: Formel gibt nur Fehler zurück
    Mögliche Ursache: Überprüfe die Formel auf Schreibfehler oder ob die Zellreferenzen korrekt sind. Achte darauf, dass die Matrix im Bereich A5:A199 korrekt definiert ist.

  • Fehler: Ergebnis ist unerwartet
    Mögliche Ursache: Vergleiche die verwendeten Zeichen und die Matrixwerte. Manchmal kann ein unsichtbares Zeichen oder ein Leerzeichen die Ergebnisse beeinflussen.


Alternative Methoden

  1. Arrayformeln: Du kannst auch Arrayformeln verwenden, um Werte in einer Matrix zu suchen. Eine mögliche Formel in C3 wäre:

    {=WENNFEHLER(WENN(VERGLEICH($A2;Hilfe!$A:$A;0)=VERGLEICH("X";Hilfe!C1:C200;0); KKLEINSTE(WENN(Hilfe!C1:C200="X";ZEILE(1:200));2)-VERGLEICH($A2;Hilfe!$A:$A;0);"");"")}

    Kopiere die Formel nach rechts, um die Suche auf andere Spalten auszudehnen.

  2. INDEX und VERGLEICH: Eine weitere Möglichkeit ist die Verwendung der Kombination von INDEX und VERGLEICH, um den Wert direkt zu finden:

    =WENNFEHLER(VERGLEICH(1;INDEX((INDEX(C:C;VERGLEICH($A2;$A5:$A999;0)+5):C49)*1);0)*(SVERWEIS($A$2;$A5:$MJ999;SPALTE();0)=ZEICHEN(215));"")

Praktische Beispiele

  1. Matrix mit Verkaufszahlen: Du hast eine Matrix mit Verkaufszahlen für verschiedene Produkte und möchtest herausfinden, wann ein bestimmtes Produkt verkauft wurde. Verwende die oben genannten Formeln, um die entsprechenden Zeilen zu finden.

  2. Finanzdaten analysieren: Nutze die Matrix, um Finanzdaten zu suchen. Wenn Du z.B. nach bestimmten Ausgaben in einem Monat suchst, kannst Du das Datum in A2 eingeben und die Formel in C3 anpassen.


Tipps für Profis

  • Formeln optimieren: Reduziere die Anzahl der Zeilen in Deinen Formeln, um die Leistung von Excel zu verbessern. Verwende beispielsweise den tatsächlichen Maximalbereich, anstatt ganze Spalten zu referenzieren.

  • Benutzerdefinierte Formate: Verwende benutzerdefinierte Zahlenformate, um die Darstellung Deiner Ergebnisse zu verbessern. Dies kann besonders nützlich sein, wenn Du mit großen Datenmengen arbeitest.

  • Datenvalidierung: Implementiere Datenvalidierungen in den Zellen, um sicherzustellen, dass nur gültige Daten eingegeben werden. Dies kann helfen, Fehler bei der Suche in der Matrix zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass mein Wert in der Matrix vorhanden ist?
Verwende die Funktion WENN zusammen mit VERGLEICH, um zu prüfen, ob der Wert existiert, bevor Du eine Suche startest.

2. Was kann ich tun, wenn Excel abstürzt, wenn ich große Matrizen suche?
Reduziere die Anzahl der Zellen, die in Deinen Formeln verwendet werden, und teile die Daten in kleinere Abschnitte auf, um die Performance zu verbessern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige