Vergleich mehrerer Spalten (jede mit jeder)
#1
Hallo Blush

Ich hoffe dieses Thema gibt es hier noch nicht, habe es zumindest nicht gefunden.
Ich habe eine Excel Tabelle, in der ich die Daten mehrerer Bauteile untereinander habe
Hier ein Beispiel

Bauteil A   2mm   3mm   44g
B              10mm  7mm  80g
C              5mm   2mm   60g
D             4mm    5mm  37g

Die Teile haben verschiedene Merkmale, dessen Quotienten ich für jedes Merkmal bilden möchte. Dieser soll kleiner 1 sein. Dabei soll jedes Bauteil mit jedem verglichen werden.
Dazu möchte ich eine neue Tabelle erstellen, die wie folgt aussieht

A/B    0,2
A/C    0,4
A/D    0,5
...

Da ich ziemlich viele Teile und Merkmale habe wäre es cool das Ganze automatisch ausrechnen zu lassen.
Hierzu fehlt mir allerdings die Funktion, wie ich jedes Teil mit jedem vergleichen kann (jede Kombination soll einmal berechnet werden)

Ich hoffe das Ganze ist einigermaßen verständlich erklärt, falls nicht fragt bitte nach :)

Beste Grüße Djanky
Top
#2
Hallo,

nur eine Verständnisfrage:

Der Quotient < 1 bedeutet, dass das Markmal A/B/C kleiner als als bei anderen Artikeln. Falls dies so wäre, könnte man auf Minimum prüfen.

mfg
Top
#3
Wink 
Hallo,

vielen Dank für deine Antwort. :)
Ich meine damit, dass immer die kleinere Zahl durch die größere Zahl geteilt werden soll. Es würde also bei A(2mm) und B(4mm) das gleiche rauskommen wie bei A(4mm) und B(2mm).
Dieser Quotient soll für jede Paarung bestimmt werden
Die Intention ist hier, die Ähnlichkeiten der Merkmale aller Teile zu vergleichen. (d.h. am Ende summiere ich die Quotienten auf; die Paarung mit dem größten Wert ist sich am Ähnlichsten)
Top
#4
Hallo,

für das Beispiel könnte das passen, für das Original sollte man das Ergebnis vermutlich in ein anderes sheet schreiben.


Code:
Sub iFen()
Dim Q As Double
lr = Cells(Rows.Count, "A").End(xlUp).Row
Range("D1:H5").Clear
Columns(1).SpecialCells(2).Copy
Range("D2").PasteSpecial xlPasteValues
Range("E1").PasteSpecial xlPasteValues, , , True
For i = 1 To lr - 1
   For j = i + 1 To lr
       Q = Val(Cells(i, 2)) / Val(Cells(j, 2))
       If Q > 1 Then Q = 1 / Q
       Range("D1").Offset(i, j) = Q
   Next j
Next i
End Sub


mfg
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste