Registriert seit: 14.04.2014
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
Registriert seit: 11.04.2014
Version(en): 2003/2007/2013 (bei Bedarf auch noch '97/2000/2010)
15.04.2014, 10:06
(Dieser Beitrag wurde zuletzt bearbeitet: 15.04.2014, 10:07 von Kl@us-M..)
Hi Silke,
probier mal
Range("A4").FormulaArray = "=IF(SUMPRODUCT
Überlegen macht überlegen Gruss aus dem schönen Hunsrück _______ Klaus-Martin _______
Registriert seit: 14.04.2014
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
Registriert seit: 15.04.2014
Version(en): 2003 -2010
15.04.2014, 11:07
(Dieser Beitrag wurde zuletzt bearbeitet: 15.04.2014, 11:17 von DeBabba.)
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
Registriert seit: 14.04.2014
15.04.2014, 11:25
(Dieser Beitrag wurde zuletzt bearbeitet: 15.04.2014, 11:29 von Rabe.)
: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
Registriert seit: 14.04.2014
Version(en): 2003, 2007
15.04.2014, 12:34
(Dieser Beitrag wurde zuletzt bearbeitet: 15.04.2014, 13:01 von Rabe.)
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.
Gruß Atilla
Registriert seit: 14.04.2014
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
Registriert seit: 14.04.2014
Version(en): 2003, 2007
15.04.2014, 13:59
(Dieser Beitrag wurde zuletzt bearbeitet: 15.04.2014, 14:19 von atilla.)
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?
Gruß Atilla
Registriert seit: 14.04.2014
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
Registriert seit: 14.04.2014
... Frag mich nicht wie der Smiley in die Formel kommt...
|