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

benutzerdefinierte Funktion Kreuzprodukt

Forumthread: benutzerdefinierte Funktion Kreuzprodukt

benutzerdefinierte Funktion Kreuzprodukt
06.08.2005 11:55:21
Martina
Hallo, "Excel-Gemeinde", folgende Anfrage
über eine benutzerdefinierte Funktion soll der Anwender drei Bereiche auswählen [(x1,y1,z1),(x2,y2,z2),(x3,y3,z3)], welche die "Urdaten" enthalten.
Ähnlich der Matrixfunktionen in Excel soll dann in wiederum auswählbaren Zellen der Einheitsvektor [i1,i2,i3], das Kreuzprodukt A [k1,k2,k3] und das Kreuzprodukt B [K4,k5,k6] ausgegeben werden. Die Formeln für die Berechnung sind fertig. Wie gestalte ich aber die benutzerdefinierte Funktion, damit die entsprechenden Formeln gleich komplett in den vorgegebenen Bereich eingetragen werden?
Für eure Hilfe bedanke ich mich schon jetzt.
Martina
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: benutzerdefinierte Funktion Kreuzprodukt
06.08.2005 12:23:46
Reinhard
Hi Martina,
meinst du sowas:

Function KreuzIntegral(a as range, b as range, c as range)
KreuzIntegral = a.Value + b.Value + c.value
End Function

Gruß
Reinhard
AW: benutzerdefinierte Funktion Kreuzprodukt
06.08.2005 12:35:05
Martina
Nicht ganz Reinhard, bei den Matrixfunktionen ist es doch möglich, mehrere Zellen "gleichzeitig" zu berechnen. Ich möchte vereinfacht eine Funktion, die in der Ausgabe mehrere Zellen belegt. Gruß Martina
Anzeige
AW: benutzerdefinierte Funktion Kreuzprodukt
06.08.2005 12:38:38
Reinhard
Hi Martina,
eine Funktion kann nur eine einzige Zelle beschreiben.
Gruß
Reinhard
AW: benutzerdefinierte Funktion Kreuzprodukt
06.08.2005 12:43:21
Martina
Ok, danke. Ich hatte geglaubt mit einem Array wäre es möglich, die Matrixfunktionen müssen ja so funktionieren.
Gruß Martina
AW: benutzerdefinierte Funktion Kreuzprodukt
06.08.2005 12:45:42
Reinhard
Hi Martina,
du irrst, auch Matrixfunktionen können nur eine Zelle beschreiben, also nur die Zelle in der sie stehen.
Gruß
Reinhard
Anzeige
AW: benutzerdefinierte Funktion Kreuzprodukt
06.08.2005 12:51:31
Martina
Nehm mal z.B. die Funktion Häufigkeit. Dort bekomme ich doch für die angegebene klassenbreite auch "mehrere Lösungen". Und so ähnlich dachte ich, mein Problem zu lösen
Gruß Martina
AW: benutzerdefinierte Funktion Kreuzprodukt
06.08.2005 12:59:18
Reinhard
Hi Martina,
hast Recht, wußte ich nicht, Frage wieder auf noch offen gestellt.
Gruß
Reinhard
AW: benutzerdefinierte Funktion Kreuzprodukt
06.08.2005 13:52:13
Hans
Hallo Martina,
was immer ein Kreuzprodukt auch ist?
Eine Arrayfunktion gibt ganz einfach einen Array zurück. Zwecks Eindeutigkeit ob Zeile oder Spalte sollte der aber besser auch 2 Dimensionen haben und eben in Zeile und/oder Spalte die Rückgabewerte bereit stellen...
Beispiele findest Du sicher im Archiv!
Gruß HW
ppt-user.de
Anzeige
AW: benutzerdefinierte Funktion Kreuzprodukt
06.08.2005 21:06:38
bst
Abend,
versuch's mit sowas.
cu, Bernd
--
Option Explicit

Function Zeilenvektor() As Variant
Dim ar As Variant, i%
ReDim ar(1 To 1, 1 To 5)
For i = 1 To 5: ar(1, i) = i: Next
Zeilenvektor = ar
End Function


Function Spaltenvektor() As Variant
Dim ar As Variant, i%
ReDim ar(1 To 5, 1 To 1)
For i = 1 To 5: ar(i, 1) = i: Next
Spaltenvektor = ar
End Function


Function MyMatrix() As Variant
Dim ar As Variant, i%, j%
ReDim ar(1 To 5, 1 To 5)
For i = 1 To 5
For j = 1 To 5
ar(i, j) = 10 * i + j
Next j
Next i
MyMatrix = ar
End Function

Anzeige
AW: benutzerdefinierte Funktion Kreuzprodukt
08.08.2005 09:00:29
Martina
Hallo Bernd, entschuldige bitte die späte Reaktion. Genau so was hab ich mir vorgestellt. Besten Dank. Martina
;
Anzeige
Anzeige

Infobox / Tutorial

Benutzerdefinierte Funktion für das Kreuzprodukt in Excel


Schritt-für-Schritt-Anleitung

Um eine benutzerdefinierte Funktion für das Kreuzprodukt in Excel zu erstellen, kannst Du den folgenden VBA-Code verwenden. Dieser ermöglicht es Dir, die Werte für das Kreuzprodukt berechnen zu lassen, indem Du einfach die entsprechenden Bereiche auswählst.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Function Kreuzprodukt(a As Range, b As Range) As Variant
       Dim result(1 To 3) As Double
       result(1) = a.Cells(2, 1).Value * b.Cells(3, 1).Value - a.Cells(3, 1).Value * b.Cells(2, 1).Value
       result(2) = a.Cells(3, 1).Value * b.Cells(1, 1).Value - a.Cells(1, 1).Value * b.Cells(3, 1).Value
       result(3) = a.Cells(1, 1).Value * b.Cells(2, 1).Value - a.Cells(2, 1).Value * b.Cells(1, 1).Value
       Kreuzprodukt = Application.Transpose(result)
    End Function
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Um das Kreuzprodukt zu berechnen, wähle einen Bereich aus, in dem die Ergebnisse angezeigt werden sollen, und gib die Formel wie folgt ein: =Kreuzprodukt(A1:A3; B1:B3).

Damit hast Du die Möglichkeit, das Kreuzprodukt in Excel zu berechnen und die Ergebnisse in einem Matrixformat auszugeben.


Häufige Fehler und Lösungen

  • Fehler: „#VALUE!“ wird angezeigt.

    • Lösung: Stelle sicher, dass die Bereiche, die Du für a und b übergibst, exakt drei Zellen enthalten.
  • Fehler: „Die Funktion kann nicht auf mehrere Zellen zugreifen.“

    • Lösung: Die benutzerdefinierte Funktion kann nur in einer Zelle eingesetzt werden, um ein Array zurückzugeben. Stelle sicher, dass Du die Ausgabe in einem Bereich von Zellen eingibst.

Alternative Methoden

Falls Du keine benutzerdefinierte Funktion verwenden möchtest, kannst Du das Kreuzprodukt auch manuell berechnen, indem Du die entsprechenden Formeln in Excel eingibst. Hier ein Beispiel:

  1. Angenommen, Du hast die Vektoren in den Zellen A1:C1 und A2:C2.
  2. Berechne die Komponenten des Kreuzprodukts:
    • Für die x-Komponente: =B1*C2 - C1*B2
    • Für die y-Komponente: =C1*A2 - A1*C2
    • Für die z-Komponente: =A1*B2 - B1*A2

Auf diese Weise kannst Du das Kreuzprodukt auch ohne VBA berechnen.


Praktische Beispiele

Beispiel 1: Angenommen, Du hast die Vektoren:

  • A1:A3: 1, 2, 3
  • B1:B3: 4, 5, 6

Die Formel =Kreuzprodukt(A1:A3; B1:B3) gibt Dir das Ergebnis { -3, 6, -3 }.

Beispiel 2: Verwende die manuelle Methode, um das Kreuzprodukt zu berechnen:

  • x: =2*6 - 3*5 → -3
  • y: =3*4 - 1*6 → 6
  • z: =1*5 - 2*4 → -3

Tipps für Profis

  • Nutze die Funktion Application.Transpose, um das Ergebnis in einem vertikalen oder horizontalen Format anzuzeigen.
  • Achte darauf, dass Du die richtigen Datentypen übergibst, um Komplikationen bei der Berechnung zu vermeiden.
  • Experimentiere mit Arrays in VBA, um komplexere Berechnungen durchführen zu können.

FAQ: Häufige Fragen

1. Kann ich das Kreuzprodukt für mehrdimensionale Vektoren berechnen? Nein, das Kreuzprodukt ist nur für dreidimensionale Vektoren definiert.

2. Wie funktioniert die Funktion Kreuzprodukt in Bezug auf die Eingabewerte? Die Funktion erwartet zwei Bereiche, die jeweils drei Zellen enthalten, die die x-, y- und z-Komponenten der Vektoren darstellen.

3. Gibt es eine Möglichkeit, das Kreuzprodukt in einer Matrix darzustellen? Ja, die Ausgabe der Funktion Kreuzprodukt kann in einem Bereich von Zellen dargestellt werden, wobei Du die Ergebnisse transponieren kannst.

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