VBA für Matrix

Bild

Betrifft: VBA für Matrix von: Jan
Geschrieben am: 03.03.2005 16:45:37

Hallo zusammen,

ich habe folgende Formel in Excel

Formel:

=WENN(H1="A";(INDEX($C$2:$E$4;VERGLEICH(I1;$B$2:$B$4;0);VERGLEICH(J1;$C$1:$E$1;0)));WENN(H1="B";(INDEX($C$5:$E$7;VERGLEICH(I1;$B$5:$B$7;0);VERGLEICH(J1;$C$1:$E$1;0)));WENN(H1="C";(INDEX($C$8:$E$10;VERGLEICH(I1;$B$8:$B$10;0);VERGLEICH(J1;$C$1:$E$1;0)));WENN(H1="D";(INDEX($C$11:$E$13;VERGLEICH(I1;$B$11:$B$13;0);VERGLEICH(J1;$C$1:$E$1;0)));"geht nicht"))))

und möchte diese Funktion in ein VBA-Programm einfügen. Habe es schon mit Aufnehmnen über den Rekorder versucht, aber das hat nicht funktionier.
Meine VBA-Kenntnisse sind für eine Programmierung mit IF.. THEN.. ELSE.. Bedingungen nicht ausreichen vorhanden. Ich bitte also um Hilfe.


Es gibt drei Variable Spalte A, Spalte B und Zeile A1

Matrix:
_ _ n m h
A n 1 2 2
A m 2 2 2
A h ..
B n
B m
B h
...

Danke für die Hilfe!

Jan

Bild


Betrifft: AW: VBA für Matrix von: ransi
Geschrieben am: 03.03.2005 17:44:12

hallo jan

das ist ja eine mörderformel.
Ich kann die nur aus deiner beschreibung heraus nicht nachvollziehen.
mach doch am besten mal eine beispieltabelle die folgendes hergibt:
So ist meine datenstruktur,
und hier hätte ich gerne das oder das ergebniss.
dann geht da ganz bestimmt was mit VBA.

ransi


Bild


Betrifft: AW: VBA für Matrix von: Jan
Geschrieben am: 04.03.2005 08:44:36

Hallo Ransi!

Habe eine Tabelle erstellt und hoffe, dass Du damit etwas anfangen kannst!

https://www.herber.de/bbs/user/19187.xls

Danke schon mal für Deine Hife!

Jan


Bild


Betrifft: AW: VBA für Matrix von: Martin Beck
Geschrieben am: 04.03.2005 12:00:39

Hallo Jan,

kann man die Matrix auch anders aufbauen? Wenn ja, könnte man das Problem mit einer einfachen Array-Formel lösen.

Gruß
Martin Beck


Bild


Betrifft: AW: VBA für Matrix von: Jan
Geschrieben am: 04.03.2005 12:32:04

Hallo Martin!

Ich glaube nicht, da Spalte A (A,B,C...) als Kategorien dient. Diese und die Matrix müssen nach unten hin erweiterbar bleiben, falls neue Kategorien hinzukommen. Ich weiß leider nicht, wie ich die Matrix ansonst besser aufbauen kann, so dass sie noch übersichtlich bleibt.

Wie soll das denn mit ner Arry-Funktion gehn? Kann mir das gerade nicht so richtig vorstellen.

Gruß

Jan


Bild


Betrifft: AW: Lösung ohne VBA von: Martin Beck
Geschrieben am: 04.03.2005 12:54:22

Hallo Jan,

in der Matrix gibt es 45 Kombinationen (5*3*3). Die kann man in H1:K45 wie folgt darstellen:

A n n 1
A n m 2
A n h 2
A m n 2
A m m 2
A m h 2
A h n 2
A h m 2
A h h 2
B n n 1
B n m 2
B n h 2
B m n 2
B m m 2
B m h 2
B h n 2
B h m 2
B h h 2
C n n 2
C n m 2
C n h 2
C m n 2
C m m 3
C m h 3
C h n 2
C h m 3
C h h 3
D n n 2
D n m 2
D n h 2
D m n 3
D m m 3
D m h 3
D h n 3
D h m 3
D h h 3
E n n 2
E n m 2
E n h 2
E m n 4
E m m 4
E m h 4
E h n 4
E h m 4
E h h 4


Dann in Zelle D4 in Ergebnistabelle folgene Arrayformel:

=SUMME((A4=Matrix!$H$1:$H$45)*(Ergebnistabelle!B4=Matrix!$I$1:$I$45)*(Ergebnistabelle!C5=Matrix!$J$1:$J$45)*Matrix!$K$1:$K$45)

Die Eingabe der Formel mit STRG-SHIFT-ENTER, nicht mit ENTER abschließen. Danach die Formel nach unten kopieren.

Gruß
Martin Beck


Bild


Betrifft: AW: Lösung ohne VBA von: Jan
Geschrieben am: 04.03.2005 14:11:20

Hallo Martin,

Danke für die Formel. Funktioniert! Für ne kleine Matrix ist die sehr gut. Wieso muß ich die Formel eigentlich mit STRG-SHIFT-ENTER eingeben?

Bei einer 8*5*5 (200) Matrix, wird das ganze aber ganz schön aufwendiger. (bzw der Mensch ist ja von Grund auf Faul und möchte es sich so einfach wie möglich haben! *gr* ) Habe nämlich noch mehrere Matrix in verschiedenen Größen. Deshalb suche ich nach einer guten VBA-Funktion, die ich beliebig erweitern kann.


Gruß

Jan


Bild


Betrifft: AW: Lösung ohne VBA von: Martin Beck
Geschrieben am: 04.03.2005 14:50:20

Hallo Jan,

zur Frage: Eben weil es eine Arrayformel (auch Matrixformel genannt) ist. Schau mal in der Recherche oder in der Excel-Hilfe.

Der Matrizenaufbau folgt ganz strikten Regeln, mit Ausnahme der Zahlen, aber die mußt Du ja ohnehin auch in Deine Matrix händisch eingeben. M.E. könnte man "meine" Matrix ganz einfach in VBA über 3 verschachtelte Schleifen in die Tabelle eintragen lassen. Der Aufwand für das Eintragen der notwendigen Informationen in die Tabelle wäre der gleiche, die Formeln wären aber viel einfacher. Nebenbei: Wie kompliziert wird denn Deine Formel bei 8 Kategorien? Da bekommst Du ja schon Probleme mit den Verschachtelungen der Wenn-Funktion.

Aber jeder wie er will ...


Gruß
Martin Beck


Bild


Betrifft: AW: Lösung ohne VBA von: Jan
Geschrieben am: 04.03.2005 15:03:21

Ups, hab da gerade nicht nachgedacht. Sorry, war wahrscheinlich wo anders als ich das geschreiben habe!

Ok, werd das ganze noch mal in Ruhe überdenken.

Aber genau wegen der Verschachtelungen der Wenn-Funktion möchte ich gerne eine If Then Else Anwendung. Dann habe ich auch keine Probleme mehr mit der Anzahl der Verschachtelungen.

Danke noch mal für die Mühe!

Gruß

Jan


Bild


Betrifft: AW: VBA für Matrix von: Jan
Geschrieben am: 07.03.2005 08:07:19

Hallo Ransi!

Kannst Du mir vielleicht doch ne Möglichkeit bieten, wie ich die WENN-Formel in eine If Then ELse Bedingung umschreiben kann?

Jan


 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA für Matrix"