Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Array multiplizieren

Array multiplizieren
Gilligan
Wie kann ich ein Array mit einem konstanten Faktor multiplizieren. Welche Möglichkeit ist die schnellste. Mit Schleifen bin ich doch eher langsam oder?
Alternativ stehen die Werte auch in einer Spalte, wenn es eine Excel-Funktion gibt.
Danke, stehe total auf dem Schlauch.
Gilligan
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Multiplizieren per VBA oder im Tabellenblatt ? _oT
01.03.2010 17:25:06
NoNet
_oT = "ohne Text"
AW: Multiplizieren per VBA oder im Tabellenblatt ? _oT
01.03.2010 17:36:37
Gilligan
ist egal.
Lösungsansatz (VBA/Funktion) ist NICHT Egal....
01.03.2010 18:08:05
NoNet
Hallo G.,
es ist nicht "EGAL", ob Du eine Lösung per VBA oder per Funktion im Tabellenblatt oder sogar nur eine einmalige manuelle Lösung ("Bearbeiten - Inhalte einfügen - Werte") suchst !
Schließlich möchte ich ja wissen, welche Lösung ich erarbeiten und Dir präsentieren soll.
Hier mal eine Lösung per Funktionen im Tabellenblatt :
ABCDEF
1
2
3
4
5
6
7
8
9
10

Funktionen im Tabellenblatt :
Zelle Formel 
D2   =ZEILE()*10 
D3   =ZEILE()*10 
D4   =ZEILE()*10 
D5   =ZEILE()*10 
D6   =ZEILE()*10 
D7   =ZEILE()*10 
D8   =ZEILE()*10 
D9   =ZEILE()*10 
D10   =ZEILE()*10 
E2   =D2*$B$1 
E3   =D3*$B$1 
E4   =D4*$B$1 
E5   =D5*$B$1 
E6   =D6*$B$1 
E7   =D7*$B$1 
E8   =D8*$B$1 
E9   =D9*$B$1 
E10   =D10*$B$1 

MATRIX-Funktionen (mit Strg+Shift+ENTER bestätigen)
ZelleFormel
F2:F10   {=MMULT(D2:D10;B1) 

Spalte E enthält gewöhnliche Funktionen, Spalte F eine MATRIX-Funktion, hier muss der Ziel-Bereich (F2:F10) markiert werden, die Funktion in F2 eingegeben und die Eingabe per Strg+Shift+ENTER bestätigt werden.
Gruß, NoNet
Anzeige
...Außerdem wdn Fmln im TabBlatt von...
02.03.2010 02:29:45
Luc:-?
…xlRoutinen unterstützt, die man unter VBA quasi selber pgmieren muss! Das ist hier zwar nicht unbedingt relevant, aber idR schon…
Gruß Luc :-?
AW: Array multiplizieren
01.03.2010 17:41:09
ransi
HAllo
Hier hast du mal 2 Möglichkeiten.
Sind allerdings beide sehr schnell...
Deine Zahlen stehen in A:A
Option Explicit


Public Sub test()
Const Faktor = 5
Dim L As Long
Dim D As Double
Dim arr
arr = Range("A:A")
'############
D = Timer
For L = 1 To 65536
    arr(L, 1) = arr(L, 1) * Faktor
Next
Range("A:A") = arr
Debug.Print Timer - D '0,078125
'############
End Sub




Sub test1()
Const Faktor = 5
Dim D As Double
D = Timer
With Range("B1")
    .Value = Faktor
    .Copy
End With
Columns("A:A").PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply
Debug.Print Timer - D '0,046875
End Sub

ransi
Anzeige
AW: Array multiplizieren
01.03.2010 17:48:18
Gilligan
Danke funzt super.
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Arrays in Excel multiplizieren: Praktische Anleitungen und Lösungen


Schritt-für-Schritt-Anleitung

Um ein Array in Excel mit einem konstanten Faktor zu multiplizieren, kannst du sowohl Funktionen als auch VBA-Code verwenden. Hier sind die Schritte für beide Methoden:

1. Mit Excel-Funktionen:

  • Angenommen, deine Werte stehen in der Spalte D (D2:D10) und der Faktor in Zelle B1.
  • In Zelle E2 gib ein: =D2*$B$1 und ziehe die Formel bis E10 nach unten.
  • Du kannst auch die Matrixfunktion verwenden: Markiere den Bereich F2:F10, gib in F2 die Formel =MMULT(D2:D10;B1) ein und bestätige mit Strg + Shift + ENTER.

2. Mit VBA:

  • Öffne den VBA-Editor mit Alt + F11.
  • Füge ein neues Modul hinzu und verwende den folgenden Code:
Public Sub Multiplizieren()
    Const Faktor As Double = 5
    Dim L As Long
    Dim arr
    arr = Range("A:A")

    For L = 1 To 65536
        arr(L, 1) = arr(L, 1) * Faktor
    Next L

    Range("A:A") = arr
End Sub
  • Dieser Code multipliziert alle Werte in Spalte A mit dem Faktor 5.

Häufige Fehler und Lösungen

1. Fehler: Matrixformel nicht korrekt eingegeben

  • Achte darauf, die Matrixformel mit Strg + Shift + ENTER zu bestätigen. Ansonsten wird sie nicht als Matrixformel erkannt.

2. Fehler: VBA läuft zu langsam

  • Verwende die Option, die Werte in ein Array zu laden und am Ende wieder zurückzuschreiben, um die Laufzeit zu verbessern.

Alternative Methoden

  • Excel alle Werte mit einer Zahl multiplizieren: Du kannst auch die Paste-Special-Funktion verwenden. Kopiere den Wert, den du multiplizieren möchtest, und wähle den Bereich aus, den du verändern möchtest. Rechtsklick → Inhalte einfügen → Operation: Multiplizieren.

  • Excel Zellen mit Faktor multiplizieren: Eine einfache Möglichkeit besteht darin, eine Hilfsspalte zu erstellen und die Werte dort zu multiplizieren. Anschließend kannst du die Werte zurückkopieren.


Praktische Beispiele

Beispiel 1: Vektor Multiplikation in Excel

  • Wenn du einen Vektor (z.B. in A1:A10) mit einem Faktor (z.B. B1) multiplizieren möchtest, benutze:
    =MMULT(A1:A10;B1)

Beispiel 2: Matrix Multiplikation Excel

  • Für die Matrixmultiplikation kannst du zwei Bereiche (z.B. A1:B2 und C1:D2) mit der Funktion MMULT kombinieren, um das Ergebnis in einem neuen Bereich zu erhalten.

Tipps für Profis

  • VBA optimieren: Verwende Application.ScreenUpdating = False, um die Aktualisierung des Bildschirms während der Ausführung des VBA-Codes zu deaktivieren. Das beschleunigt den Prozess erheblich.

  • Array-Dimensionierung: Achte darauf, die Dimensionen deines Arrays vor der Verwendung festzulegen, um die Leistung zu steigern.


FAQ: Häufige Fragen

1. Kann ich mehrere Arrays gleichzeitig multiplizieren? Ja, du kannst mehrere Arrays in Excel multiplizieren, indem du die MMULT-Funktion für die entsprechenden Bereiche verwendest.

2. Welche Excel-Version benötige ich für die Matrixmultiplikation? Die Funktion MMULT ist in den meisten aktuellen Excel-Versionen verfügbar, einschließlich Excel 2010 und später.

3. Wie kann ich mit VBA die Multiplikation schneller durchführen? Indem du die Werte in ein Array lädst und die Berechnung im Speicher durchführst, statt direkt auf die Zellen zuzugreifen, kannst du die Geschwindigkeit erhöhen.

4. Was tun, wenn ich mit großen Datenmengen arbeite? Nutze die Matrixfunktionen in Excel, da sie für große Datenmengen optimiert sind, oder verwende VBA zur Batch-Verarbeitung.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige