Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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

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
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
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

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige