Hallo an Alle,
wie kann ich eine sehr lange Matrixformel per VBA in eine Zelle schreiben?
Mein Test ohne die bei Matrixformeln üblichen Klammern:
Code:
Sub test()
Range("A4").Formula = "=IF(SUMPRODUCT((myElementHauptFest:myElementHauptRel=myElementHauptRel)*(myElementUnterFest:myElementUnterRel=myElementUnterRel)*(myAuswahlFest:myAuswahlRel=myAuswahlRel))=1,myAuswahlRel&TEXT(IF(ISERROR(SUMPRODUCT((myAuswahlFest:myAuswahlRel=myAuswahlRel)*(MATCH(myElementHauptFest:myElementHauptRel&myElementUnterFest:myElementUnterRel&myAuswahlFest:myAuswahlRel,myElementHauptFest:myElementHauptRel&myElementUnterFest:myElementUnterRel&myAuswahlFest:myAuswahlRel,0)=ROW($1:1))*1)),1,SUMPRODUCT((myAuswahlFest:myAuswahlRel=myAuswahlRel)*(MATCH(myElementHauptFest:myElementHauptRel&myElementUnterFest:myElementUnterRel&myAuswahlFest:myAuswahlRel,myElementHauptFest:myElementHauptRel&myElementUnterFest:myElementUnterRel&myAuswahlFest:myAuswahlRel,0)=ROW($1:1))*1)),""00""),INDEX($N$3:N3,MATCH(myElementHauptRel&myElementUnterRel&myAuswahlRel,$E$3:E3&$F$3:F3&$H$3:H3,0)))"
End Sub
Nur wie kriege ich da jetzt noch die geschweiften Klammern hin?
Sinn des Ganzen: Es soll in Spalte A eine Nummerierung eingefügt werden, dabei werden drei Spalten verglichen - bei gleichem Inhalt sollen sie jeweils die gleiche Nummer bekommen. Und das möchte ich per VBA realisieren.
Gruß
Silke
Hi Silke,
probier mal
Range("A4").FormulaArray = "=IF(SUMPRODUCT
Hallo Klaus,
das funktioniert irgendwie nicht - die Formel ist zu lang und es wird die R1C1-Schreibweise verlangt, wenn ich das in der Hilfe richtig gelesen habe...
Vielleicht geht es auch einfacher ohne Matrixformel?? Hier nochmal was eigentlich gewollt ist, dabei habe ich jetzt das Ganze mal auf eine Spalte beschränkt (ich werde einfach mit einer Hilfsspalte arbeiten):
Tabelle2 | A | B | C |
1 | Nummer | Prüfelement | Bewertung |
2 | NA01 | Führungsprozesse Kommunikation und Dokumentation | NA |
3 | NA01 | Führungsprozesse Kommunikation und Dokumentation | NA |
4 | NA01 | Führungsprozesse Kommunikation und Dokumentation | NA |
5 | NA01 | Führungsprozesse Kommunikation und Dokumentation | NA |
6 | NA01 | Führungsprozesse Kommunikation und Dokumentation | NA |
7 | H+01 | Beschaffungsprozesse LieferantenmanagementA | H+ |
8 | H+01 | Beschaffungsprozesse LieferantenmanagementA | H+ |
9 | NA02 | Beschaffungsprozesse Lieferantenmanagement | NA |
10 | NA02 | Beschaffungsprozesse Lieferantenmanagement | NA |
11 | NA03 | Führungsprozesse Controlling | NA |
12 | H01 | Führungsprozesse Geschäftsplanung strat. | H |
13 | H02 | D10 - Anlagen für brennbare Flüssigkeiten | H |
14 | H02 | D10 - Anlagen für brennbare Flüssigkeiten | H |
15 | H02 | D10 - Anlagen für brennbare Flüssigkeiten | H |
16 | NA04 | D15 - Flurförderzeuge | NA |
17 | NA04 | D15 - Flurförderzeuge | NA |
18 | H+02 | D22 - Medizinprodukte | H+ |
19 | H+03 | E4 - Wassermischbare bzw. wassergemischte Kühlschmierstoffe | H+ |
20 | NA01 | Führungsprozesse Kommunikation und Dokumentation | NA |
21 | NA01 | Führungsprozesse Kommunikation und Dokumentation | NA |
22 | H+02 | D22 - Medizinprodukte | H+ |
23 | H+02 | D22 - Medizinprodukte | H+ |
http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.ziphttp://hajo-excel.de/tools.htmXHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 14.11 einschl 64 Bit
Die Liste ist unsortiert und es soll in Spalte A eine Nummerierung eingefügt werden. Dabei sollen gleiche Inhalte in Spalte B auch die gleiche Nummer bekommen (habe das in Spalte A mal manuell nachgebaut) zur Nummer soll vornedran der Wert aus Spalte C dazugeschrieben werden.
Diese Nummerierung möchte ich per VBA in Spalte A einfügen, das ist der Knackpunkt an der Sache. Ich hoffe das geht auch irgendwie ohne Matrixformel??
Ich hoffe das Ganze ist einigermaßen verständlich
Gruß
Silke
Oh Sorry..... hatte die Frage nicht richtig gelesen :16:
Hi Silke,
das mit den geschweiften klammern geht so
Nach der Eingabe der Formel mit
STRG + ALT + ENTER
abschließen.
Die { } werden dann automatisch gesetzt
Gruß
DeBabba
:s ok ich glaube das überschneidet sich jetzt....
Hallo DeBabba,
die geschweiften Klammern einzugeben ist nicht das Problem.
Das Problem ist diese Formel in VBA umzusetzen.
Aber trotzdem Danke!
Gruß
Silke
Hallo Silke,
Möchtest Du die Nummerierung auf Knopfdruck per Vba realisieren?
Wenn Du es per Formel lösen möchtest, dann müsste es mit den Funktionen Zählenwenn, Vergleich und Index machbar sein.
Ich kann Dir aber erst heute Abend eine Lösung anbieten.
Hi Atilla,
bist du es wirklich ??? :18:
Also die Nummer soll in Spalte A eingetragen werden, wenn in Spalte C eine Auswahl getroffen wurde.
Gruß
Silke
Hallo Silke,
ja, ich glaube, ich bin es.
Bin jetzt Unterwegs, ich schau mir das heute Abend an.
Eine Vba Lösung kommt also in Frage?!
Können unterhalb der Eingabe auch schon Nummern vorhanden sein?
Hallo Atilla,
wenn ich jetzt nicht (vom vielen rumprobieren) total auf dem Holzweg bin - dann habe ich glaube ich die Lösung gefunden - schau mal:
Tabelle3 | A | B | C | D |
1 | Nummer | Prüfelement | Bewertung | Hilfsspalte |
2 | NA01 | Führungsprozesse Kommunikation und Dokumentation | NA | 1 |
3 | NA01 | Führungsprozesse Kommunikation und Dokumentation | NA | 1 |
4 | NA01 | Führungsprozesse Kommunikation und Dokumentation | NA | 1 |
5 | NA01 | Führungsprozesse Kommunikation und Dokumentation | NA | 1 |
6 | NA01 | Führungsprozesse Kommunikation und Dokumentation | NA | 1 |
7 | H+02 | Beschaffungsprozesse LieferantenmanagementA | H+ | 2 |
8 | H+02 | Beschaffungsprozesse LieferantenmanagementA | H+ | 2 |
9 | NA03 | Beschaffungsprozesse Lieferantenmanagement | NA | 3 |
10 | NA03 | Beschaffungsprozesse Lieferantenmanagement | NA | 3 |
11 | NA04 | Führungsprozesse Controlling | NA | 4 |
12 | H05 | Führungsprozesse Geschäftsplanung strat. | H | 5 |
13 | H06 | D10 - Anlagen für brennbare Flüssigkeiten | H | 6 |
14 | H06 | D10 - Anlagen für brennbare Flüssigkeiten | H | 6 |
15 | H06 | D10 - Anlagen für brennbare Flüssigkeiten | H | 6 |
16 | NA07 | D15 - Flurförderzeuge | NA | 7 |
17 | NA07 | D15 - Flurförderzeuge | NA | 7 |
18 | H+08 | D22 - Medizinprodukte | H+ | 8 |
19 | H+09 | E4 - Wassermischbare bzw. wassergemischte Kühlschmierstoffe | H+ | 9 |
20 | NA01 | Führungsprozesse Kommunikation und Dokumentation | NA | 1 |
21 | NA01 | Führungsprozesse Kommunikation und Dokumentation | NA | 1 |
22 | H+08 | D22 - Medizinprodukte | H+ | 8 |
23 | H+08 | D22 - Medizinprodukte | H+ | 8 |
verwendete Formeln | |
Zelle | Formel | Bereich | R1C1 für Add In |
A2:A23 | =C2&TEXT(D2;"00") | | =RC[2]&TEXT(RC[3],"00") |
D2: D23 | =WENN(ZÄHLENWENN(B$2:B2;B2)=1;MAX(D$1: D1)+1;SVERWEIS(B2;B$1: D1;3;)) | | =IF(COUNTIF(R2C[-2]:RC[-2],RC[-2])=1,MAX(R1C:R[-1]C)+1,VLOOKUP(RC[-2],R1C[-2]:R[-1]C,3,)) |
http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.ziphttp://hajo-excel.de/tools.htmXHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 14.11 einschl 64 Bit
Mit einer Hilfsspalte D scheint es zu funktionieren. Und so kann ich dann die Formeln auch per VBA eintragen lassen.
Oder, was denkst du?
Gruß
Silke
... Frag mich nicht wie der Smiley in die Formel kommt...