Autor
|
Thema: MatriXformel mit ansteigenden Spalten bei runterkopieren gewünscht (2442 mal gelesen)
|
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 15. Dez. 2004 19:50 <-- editieren / zitieren --> Unities abgeben:
Nun habe ich auch ein Problem gegeben ist Code:
{=INDEX(QF2005_Schulung!$B:$B;KKLEINSTE(WENN((QF2005_Schulung!$K$1:$K$1000="T");ZEILE(QF2005_Schulung!$B$1:$B$1000));SPALTE(A$1)))}
und ich will QF2005_Schulung!$K$1:$K$1000 als Formel oder zumindest $K$1:$K$1000 automatisch erzeugen lassen, diese Formel würde ich gerne runterkopieren, aber K muss zu L M, N etc werden =ADRESSE(1;ZEILE(11:11)) ergibt richtigerweise $K$1 =ADRESSE(1000;ZEILE(11:11)) ergibt richtigerweise $K$1000 beim runterkopieren Wird auch $L$1 entstehen etc... nun bastel ich mir ein =VERKETTEN("QF2005_Schulung!";ADRESSE(1;ZEILE(11:11));":";ADRESSE(1000;ZEILE(11:11))) Ergebnis = QF2005_Schulung!$K$1:$K$1000 soweit so gut, nur
Code:
{=INDEX(QF2005_Schulung!$B:$B;KKLEINSTE(WENN((VERKETTEN("QF2005_Schulung!";ADRESSE(1;ZEILE(11:11));":";ADRESSE(1000;ZEILE(11:11)))="T");ZEILE(QF2005_Schulung!$B$1:$B$ 1000)) ;SPALTE(A$1)))}
klappt leider nicht... hat mir jemand einen Lösungsansatz? Wollte das ohne Vba realisieren. gruss Thomas wenn man Bsp mappe braucht zum besseren verständnis, das kann ich morgen machen, da ich erst die daten anonym machen muss [Diese Nachricht wurde von Thomas Harmening am 15. Dez. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pablo Mitglied Techniker
Beiträge: 453 Registriert: 23.01.2002
|
erstellt am: 16. Dez. 2004 12:03 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Harmening
|
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 16. Dez. 2004 12:55 <-- editieren / zitieren --> Unities abgeben:
pablo, nein, da die Formel {=INDEX(QF2005_Schulung!$B:$B;KKLEINSTE(WENN((QF2005_Schulung!$K$1:$K$1000="T");ZEILE(QF2005_Schulung!$B$1:$B$1000));SPALTE(A$1)))} ja runterkopiert werden soll und und nicht nach rechts ( da würde aus K1 folgerichtig L1) und ich würde sie dann auch folgerichtig so schreiben : {=INDEX(QF2005_Schulung!$B:$B;KKLEINSTE(WENN((QF2005_Schulung!K$1:K$1000="T");ZEILE(QF2005_Schulung!$B$1:$B$1000));SPALTE(A$1)))} deshalb auch mein Versuch über =ADRESSE(1;ZEILE(11:11)) ergibt richtigerweise $K$1 =ADRESSE(1000;ZEILE(11:11)) ergibt richtigerweise $K$1000 dieses runterkopiert würde $L$1, $M$1 etc ergeben ich befüchte fast Indirekt() muss da angewand werden - diese Funktion ist nicht unbedingt mein Freund *grml* [Diese Nachricht wurde von Thomas Harmening am 16. Dez. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pablo Mitglied Techniker
Beiträge: 453 Registriert: 23.01.2002
|
erstellt am: 16. Dez. 2004 19:41 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Harmening
|
rainberg Mitglied
Beiträge: 147 Registriert: 14.01.2005
|
erstellt am: 14. Jan. 2005 08:20 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Harmening
Hallo Thomas, habe mir deine Formel mal angeschaut und bin der Meinung, dass müsste mit der Verwendung von BEREICH.VERSCHIEBNEN innerhalb der Wenn-Abfrage funktionieren. Etwa in dieser Form WENN(BEREICH.VERSCHIEBEN(QF2005_Schulung!$A$1;;ZEILE(A10);1000; )="T"....... Um genaueres zu sagen müsste ich aber eine Beispieldatei zum Testen haben. Gruß Rainer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 14. Jan. 2005 15:10 <-- editieren / zitieren --> Unities abgeben:
|
rainberg Mitglied
Beiträge: 147 Registriert: 14.01.2005
|
erstellt am: 15. Jan. 2005 15:21 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Harmening
Hallo Thomas, hatte gerade etwas Zeit und versucht anhand deiner Formel eine Tabelle nachzubauen. Wenn ich nicht ganz daneben liege, ist keine Matrixformel erforderlich. Mit dieser funktioniert es bei mir, sollte ich mich geirrt haben, dann lade am Montag deine Datei hoch. =WENN(ISTNV(INDEX(QF2005_Schulung!$B:$B;VERGLEICH("T";BEREICH.VERSCHIEBEN(QF2005_Schulung!$A$1;;ZEILE(A10);1000;@);0)));"";INDEX(QF2005_Schulung!$B:$B;VERGLEICH("T";BEREICH.VERSCHI EBEN(QF2005_Schulung!$A$1;;ZEILE(A10);1000;@);0))) Achtung! habe in der Formel zwei "@" eingefügt da sonst an dieser Stelle je ein Smilie erschienen wäre. Lösche die beiden Zeichen einfach wieder.
------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 17. Jan. 2005 18:37 <-- editieren / zitieren --> Unities abgeben:
hier die abgespeckte Version... habe es mit Indirekt() versucht, dein Bereich.Verschieben() scheint auch irgendwie nicht zu klappen - oder ich bin einfach zu doof - mit Vba die Formel statisch aufzubauen würde schneller gehen, als die Zeit die bislang draufging - S c h e i s s Ehrgeiz/Dummheit - (sorry) so nun mache ich Feierabend... gruss Thomas man gestatte mir die Umgehung der ******* [Diese Nachricht wurde von Thomas Harmening am 17. Jan. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rainberg Mitglied
Beiträge: 147 Registriert: 14.01.2005
|
erstellt am: 18. Jan. 2005 10:27 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Harmening
Hallo Thomas, da hatte ich mir deine Datei doch anders vorgestellt, als sie in Wirklichkeit ist. Somit konnte meine Formel auch nicht funktionieren. Der Einfachheit halber habe ich nun mal eine Datei erstellt die deiner strukturmäßig entspricht, aber nur die für die Formel relevanten Daten drin gelassen. Auch den Blattnamen habe ich wegen besserer Übersicht gekürzt. Habe nun versucht im ausgegliederten KKLEINSTE-Teil deiner Formel den Spaltenbuchstaben des Bereiches mit 3 Varianten zu dynamisieren, leider ohne Erfolg, es erscheint immer #WERT!. Ich habe INDIREKT() und BEREICH.VERSCHIEBEN() schon öfter in Marixformeln verwendet und hier klappt es nicht. Es scheint, als ob es sich nicht mit KKLEINSTE() verträgt. Vielleicht hat hier jemand schon Erfahrungen damit gemacht. Leider fällt mir aber nichts anderes ein als meine 3 Varianten. Ich hänge meine Testdatei mal an. Habe gerade festgestellt, dass ich die falsche Datei angehängt habe. Mal sehen ob es mit der richtigen klappt. ------------------
[Diese Nachricht wurde von rainberg am 18. Jan. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rainberg Mitglied
Beiträge: 147 Registriert: 14.01.2005
|
erstellt am: 19. Jan. 2005 14:44 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Harmening
Hallo Thomas, durch eine Frage meinerseits zum Problem, in einem anderen Forum, müsste dein Problem nun geklärt sein. Es hat sich herausgestellt, dass die Fehlermeldungen #WERT! dadurch entstehen, wenn innerhalb der Funktionen INDIREKT oder BEREICH.VERSCHIEBEN die Funktionen ZEILE(N) oder SPALTE(N) verwendet werden. Diese müssen durch Zahlenwerte oder direkte Zellbezüge ersetzt werden. Du kannst nun folgende Formel, die sich in beide Richtungen kopieren lässt, verwenden. Code: =INDEX(QF2005_Schulung!$B:$B;KKLEINSTE(WENN(Bereich2="T";ZEILE($2:$1000));SPALTE(A$1)))
Der Name "Bereich2" innerhalb der Formel wird definiert durch Code: =INDIREKT("QF2005_Schulung!"&ADRESSE(2;ZEILE()+9)&":"&ADRESSE(1000;ZEILE()+9))
------------------ [Diese Nachricht wurde von rainberg am 19. Jan. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 19. Jan. 2005 20:03 <-- editieren / zitieren --> Unities abgeben:
|