Tensor-Produkt-Anwend'Bsp (3/4-Tensor - 5.Forts.)
18.05.2018 04:26:26
Luc:-?
für diejenigen, die das Thema interessiert und bisher (in meiner Beitragsreihe) eine (normal-)praktische Anwendung vermisst haben, reiche ich hiermit ein etwas komplexeres TabellenBsp nach. Die konstruierte Aufgabe desselben besteht darin, vorkalkulierte Preise bestimmter Produktgruppen mit einer Gruppe vorbestimmter Faktoren so zu multiplizieren, dass sich ein optimaler Preis ergibt, der im GruppenDurchschnitt unter dem GruppenDurchschnitt vglbarer MarktPreise liegt. Um zu erreichen, dass der größere Teil dieser Preise unter dem VglsPreis liegt, wurde noch ein weiteres Kriterium eingeführt, das den vorbestimmten optimalen Faktor so verändert, dass dieses Ziel möglichst vorteilhaft erreicht wird.
Es gibt sicher andere und bessere Verfahren, um so etwas zu erreichen, aber mir ging's hierbei in 1.Linie um die Demonstration einer speziellen Fktionsweise der Xl-Fkt INDEX in einer pluralen MatrixFml, die darauf hinausläuft, dass Xl, in welcher Form auch immer, einen 4dimensionalen Tensor bildet, der allerdings so nicht vollständig auf einen ZellBereich abgebildet wdn kann (was hier auch nicht erforderlich ist). Dazu wird die 1.Matrix per INDEX in Einzelwerte [Skalare = Tensoren(0,0)] zerlegt, denen in der Multiplikation jeweils eine Kopie der 2.Matrix ggübergestellt wird. In dieser Form wird die plurale MatrixFml nur 1× durchlaufen und zeigt (und gibt weiter!) nur die 1.Werte jeder der einzelnen ErgebnisMatrizen. Durch ein weiteres INDEX wird dieses Ergebnis erneut vervielfältigt (der Ergebnis-Tensor quasi „entfaltet“), so dass alle seine Werte an eine andere Fkt als Argument weitergegeben wdn können. Dies geschieht in einem RechenDurchlauf pro Zelle, wobei von Xl automatisch der jeweils passende Teil des Ergebnis-Tensors (eine SekundärMatrix, vgl vorherige Beiträge) ausgewählt wird.
Derartige Wiederholungen realisiert INDEX über sein 4.Argument, wobei egal ist, ob das 1.Argument ein BereichsBezug oder ein Datenfeld ist. Es müssen nur soviel 1en in diesem Argument verwendet (bzw erzeugt) wdn, wie Wiederholungen erforderlich sind, also für jeden Ergebniswert eine. Die Positionierung der Ergebniswerte folgt dabei der 1.Matrix.
In diesem Zusammenhang muss darauf hingewiesen wdn, dass diese Berechnungen nicht auf eine andere KalkulationsSoftware übertragen wdn können. Deren FmlText-Interpreter arbeiten idR anders als der von Xl und auch einige Fktt (auch gleichnamige!) wie bspw INDEX und MTRANS arbeiten anders und können deshalb hier andere Ergebnisse liefern. Das trifft insbesondere auf alles zu, was irgendwie mit MatrixFmln (und MatrixKonstanten erst recht!) zu tun hat.
Gleichzeitig wird mit dem nachfolgenden Bsp gezeigt, wie man Leerzellen aus der Berechnung ausschalten, und dass man erforderliche Hilfszellen (INDEX in dieser Form benötigt sie unbedingt!) uU sinnvoll in die GesamtDarstellung integrieren kann, was einem Verstecken derselben in Ausblendungen allemal vorzuziehen wäre:
A | B | C | D | E | F | G | H | I | J | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
13 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
14 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
16 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
17 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
18 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
19 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
20 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
21 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
22 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
23 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
24 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
25 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
26 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
27 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
28 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
29 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
30 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
31 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
32 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
33 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
34 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
35 |
Quasi als Nachtrag zur 4.Fortsetzung dieses Themas stelle ich nachfolgend die neue Version1.1 der UDF TensorProd zV. Die vorherige hat nur Ganzzahlen berücksichtigt. Allerdings wird sie für das TabBsp nicht benötigt, würde die Lösung gar erschweren. Aber, wer gern alle Werte des gebildeten 4Tensors in der üblichen Form als größere Matrix anzeigen möchte, kann sie dafür mit folgder pluralen MatrixFml nutzen: {=TensEx(TensorProd(B3:E5;C28:E32;2))}
Ihre 180 Ergebniswerte benötigen 5×3 Zeilen und 3×4 Spalten. Die hierbei auch _ erforderliche UDF TensEx ist ebenfalls in zurückliegenden Beiträgen zu finden: Rem Ermittelt Kronecker-Tensor-Produkt von 2 Matrizen als 2/2d-Array, ' was einem 4-Tensor gleichkommt; Arg1-2: jedes Element v.Arg1 wird ' mit allen Elementen von Arg2 multipliziert u.die Ergebnismatrizen ' in einer Matrix gleicher Größe wie Arg1 elementweise gespeichert; ' Arg3: fehlt/0 Ausgabe der 1.Subebene (xlSimulation) um F-Werte zu ' vmeiden, ±1/2 Rückgabe aller Werte als Texte in Matrixkonstanten- ' form (Sekundärmatrizen), ±2 erzeugt US-Notation, die v.UDF TensEx ' benötigt wird (m. dieser können die Texte zu 2d-Matrizen üblicher ' Form expandiert bzw auf d.Subebenen d. 4d-Modells extendiert wdn. ' Vs1.1 - LSr:CyWorXxl -cd:20180414 -1pub:20180414h -lupd:20180511t Function TensorProd(ByVal Matrix1, ByVal Matrix2, Optional ByVal alsMxKText _ As VbTriState) Dim cx1 As Long, cx2 As Long, ix As Long, rx1 As Long, rx2 As Long, _ zlErg() As String, el, erg, it, zwErg As Variant, _ MxCSep, MxDSep, MxRSep, txMxForm As Variant On Error GoTo fx With Application MxDSep = Array(".", .International(xlDecimalSeparator)) MxCSep = Array(",", .International(xlColumnSeparator)) MxRSep = Array(";", .International(xlRowSeparator)) txMxForm = Array("{#}", .International(xlLeftBrace) & "#" & _ .International(xlRightBrace)) End With alsMxKText = -Abs(alsMxKText): erg = Matrix1: zwErg = Matrix2 Matrix1 = erg: Matrix2 = zwErg ReDim erg(UBound(erg, 1) - LBound(erg, 1), UBound(erg, 2) - LBound(erg, 2)) ReDim zwErg(UBound(zwErg, 1) - LBound(zwErg, 1), UBound(zwErg, 2) - _ LBound(zwErg, 2)) For Each el In Matrix1 For Each it In Matrix2 If alsMxKText = vbUseDefault Then zwErg(rx2, cx2) = Replace(CStr(el * it), MxDSep(1), MxDSep(0)) Else: zwErg(rx2, cx2) = el * it End If rx2 = (rx2 + 1) Mod (UBound(zwErg, 1) + 1) cx2 = (cx2 - CInt(rx2 = 0)) Mod (UBound(zwErg, 2) + 1) Next it If CBool(alsMxKText) Then ReDim zlErg(LBound(zwErg, 1) To UBound(zwErg, 1)) For ix = LBound(zwErg, 1) To UBound(zwErg, 1) zlErg(ix) = Join(WorksheetFunction.Index(zwErg, ix + 1, 0), _ MxCSep(alsMxKText + 2)) Next ix erg(rx1, cx1) = Replace(txMxForm(alsMxKText + 2), "#", _ Join(zlErg, MxRSep(alsMxKText + 2))) Else: erg(rx1, cx1) = zwErg End If rx1 = (rx1 + 1) Mod (UBound(erg, 1) + 1) cx1 = (cx1 - CInt(rx1 = 0)) Mod (UBound(erg, 2) + 1) Next el If alsMxKText = vbFalse Then With Application.Caller 'Simulation der Xl-Ausgabe m.INDEX Debug.Print .Rows.Count - 1; .Columns.Count - 1 ReDim zwErg(.Rows.Count - 1, .Columns.Count - 1) For rx1 = 0 To .Rows.Count - 1 For cx1 = 0 To .Columns.Count - 1 zwErg(rx1, cx1) = erg(rx1, cx1)(0, 0) Next cx1 Next rx1 End With TensorProd = zwErg Else: TensorProd = erg End If fx: If CBool(Err.Number) Then TensorProd = CVErr(Err.Number) End Function Sachlich-fachliche Kommentare und Anmerkungen zur vorgestellten Arbeit sind durchaus erwünscht; es können auch alternative Lösungen vorgestellt wdn.
Ansonsten wünsche ich allen das übliche FroPf, obwohl wir es hier bei uns wohl wettermäßig mit am besten getroffen zu haben scheinen…
Gruß, Luc :-?