Verweis?
Hi,
also ich lasse mir in A1 und A2 mit Hilfe ZUFALLSBEREICH(1;6)(soll einen Würfel Wurf simulieren).
Mit denn ersten "W6" ist für die erste Spalte und der zweite "W6" für die zweite Spalte. Nun möchte ich das mir in einem Anderen Feld, der Inhalt der dritten Spalte angezeigt werden.
z. B. A1=2 und A2= 4 dann A3=Davion
1 1 Steiner
1 2 Steiner
1 3 Steiner
1 4 Steiner
1 5 Steiner
1 6 Steiner
2 1 Davion
2 2 Davion
2 3 Davion
2 4 Davion
2 5 Davion
2 6 Davion
3 1 Davion
3 2 Davion
3 3 Davion
3 4 Kurita
3 5 Kurita
3 6 Kurita
4 1 Kurita
4 2 Kurita
4 3 Marik
4 4 Marik
4 5 Marik
4 6 Marik
5 1 Marik
5 2 Marik
5 3 Marik
5 4 Liao
5 5 Liao
5 6 Liao
6 1 St. Lves-Pakt
6 2 St. Lves-Pakt
6 3 Freie Republik Rasalhaag
6 4 Peripherie
6 5 Peripherie
6 6 Peripherie
Meine Frage wie kriege ich das hin?
Antwort schreiben
Antwort 1 von Malgus vom 23.08.2019, 02:47 Options
Ich habe die Frage leider nciht genau verstanden. Möchtest du, dass das selbe wie im 3. Feld auch wo anders nochmal steht? Oder dass dort nichts steht, aber in einem anderen Feld etwas steht, die Rechnung aber im 3. durchgeführt wird, oder habe ich das komplett falsch verstanden?
Mfg Malgus
Antwort 2 von Elefunty vom 23.08.2019, 08:54 Options
hi
hmm ja es ist wirklich verwirrend geschrieben. aber ich habs so verstanden:
über 2 würfel werden eine zelle(x&y) gewürfelt.
der inhalt dieser zelle soll nun in einen andere zelle kopiert werden.
als code sähe das so aus(ich code C++, es könnten kleinere fehler enthalten sein):
dein code der würfel
cells(3,1)=cells(x, y)
Zielzelle
x & y erewürfelst du dir ja, du müstest die var. namen evtl noch anpassen
ich hoffe, ich hab es richtig verstanden, und konnte eine vernünftige lösung bringen
Antwort 3 von Aliba vom 23.08.2019, 09:42 Options
Hi Starmin,
A1 ist Wurf 1
A2 ist Wurf 2
B1 bis B36 die Vergleichswerte für den 1. Wurf,
C1 bis C36 die Vergleichswerte für den 2. Wurf
Formel in A3:
{=INDEX($D$1:$D$36;VERGLEICH(A1&A2;$B$1:$B$36&$C$1:$C$36;0))}
ACHTUNG!! ARRAY-FORMEL!! Die geschweiften Klammern nicht mit eingeben, sondern Formel normal erfassen und mit
STRG+SHIFT+ENTER abschliessen.
CU Aliba
Antwort 4 von Seradest vom 23.08.2019, 09:44 Options
Hi,
der Code Vergleicht die Zellen A2 mit Spalte1 (der Bereich wurde hier "Wuerfel1" genannt). Anschließend wir A2 mit einer Zelle weiter rechts verglichen. Stimmen beide Werte überein übernimmt A3 den Wert aus Spalte 3.
Die Tabelle mit den 3 Spalten und deine Zellen A1 bis A3 müssen für diesen Code im gleichen Tabellenblatt sein. Den Code fügst du am Besten in ein Modul ein.
sub gettarget()
for each rng in Activesheet.Range("Wuerfel1")
if rng.value = Activesheet.Range("A1").value Then _
if rng.offset(0,1).value = Activesheet.Range("A2") Then _
Activesheet.Range("A3").value = rng.offset(0,2).value
next rng
Grüße
Carsten
Antwort 5 von Seradest vom 23.08.2019, 09:45 Options
Die Lösung von Aliba ist allerdings die elegantere :)
Antwort 6 von Aliba vom 23.08.2019, 09:45 Options
Hi nochmal ich,
geht doch noch viel einfacher. Manchmal steht man auf dem Schlauch.
=INDEX($D$1:$D$36;$A$1*6-6+$A$2)
CU Aliba
Antwort 7 von Seradest vom 23.08.2019, 09:56 Options
mmh... die Formeln sind toll Aliba :D auf so eine Idee muss man erstmal kommen.
Ich würde die erste Indexformel empfehlen, die funktioniert immer wenn es sich um einstellige Zahlen handelt. Die zweite funktioniert nur wenn die Spalten für die Würfel genau in dieser Reihenfolge sind, sobald sie vertauscht werden gehts nicht mehr. Die Formel ist also sehr speziell. Das Script funktioniert grundsätzlich mit allen Zahlen, auch mit größeren.
Antwort 8 von Starmin vom 23.08.2019, 13:01 Options
Danke an alle.
Besondern dank Aliba.
MfG
Starmin