Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Einträge in einer Tabelle mit einer anderen vergleichen und ersetzen
#1
Servus,

ich suche einen Befehl der bestimmte Einträge aus einer Tabelle mit bestimmte Einträgen aus einer anderen Tabelle ersetzen kann.

Datei 1: Hat Spalten mit dem Namen "prop" und "par". Prop1 bezieht sich auf par1, prop2 auf par2, prop 3 auf par3 usw.
Datei 2: Hat nur 2 Spalten "Par" und "ID".

Der "par" Eintrag aus Datei 1 bezieht sich immer auf die "ID" aus Datei 2.

Ich brauche einen Befehl der überprüft ob in "prop" ein bestimmtes Stichwort steht und dann die dazugehörige "par" mit dem "par" aus Datei 2 ersetzt dem die ID zugeordnet ist.

Beispiel:

Datei 1:
Prop1 = Essen
Par1 = 15

Datei 2:
ID = 15
Par = Apfel

Der Befehl soll dann in der Datei 1 den Par1 mit "Apfel" ersetzen sofern Par1 neben Prop1 = Essen steht.

Habe gelesen das man dies mit =Wenn(Sverweis) lösen kann, leider kenne ich mich nicht gut genug damit aus und wüsste auch gerade nicht wie ich die Verbindung zwischen den beiden Dateien herstellen kann.

Vielen Dank!
JeyP
Antworten Top
#2
Hallo JeyP.

meinst du so ? siehe Anhang


Angehängte Dateien
.xlsx   Forum 23.12.16.xlsx (Größe: 12,04 KB / Downloads: 3)
Gruß Conny :)
_______________________________________________________________

Die Summe der Intelligenz auf unserem Planeten ist konstant, aber die Bevölkerung wächst!
Antworten Top
#3
Hallo und erstmal vielen Dank.

Soviel ich sehe, bezieht sich das ja nur auf eine spezifische Spalte. Ich bräuchte aber sowas, was nach einen bestimmten Eintrag sucht und dann die direkte Spalte daneben mit der anderen Tabelle vergleicht und ersetzt. (ala IF "prop1" = aura then "par1" (tabelle1) = ID (tabelle2) -> ersetzen durch "skillname").

Um es genauer zu "verdeutlichen, ich modde ein uraltes Spiel, indem ich die ID Einträge gerne durch den dazugehörigen Namen ersetzen möchte

Tabelle 1:
[img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]

Tabelle 2:
[img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]

Ersetzt werden müssen nur bestimmte Einträge wie "oskill", "hit-skill", "att-skill" usw.
Als Beispiel von oben nehmen wir den ersten Eintrag:

prop1 = oskill
par1 = 15
min1 = 3
max1 = 5


Er soll also nach "oskill" suchen, den dazugehörigen "par1" vergleichen (15) und diesen mit dem Skillnamen der dazugehörigen ID ersetzen (ID 15 in Tabelle 2 = Poison Javelin).

Ergebnis also:

prop1 = oskill
par1 = Poison Javelin
min1 = 3
max1 = 5

Das muss ich für prop1 - prop12 durchführen und für ca. 5000-6000 Einträge...
Hoffe es ist jetzt einigermaßen verständlicher...

LG
Antworten Top
#4
Dankeschön, kann geschlossen werden. Nachdem ich es nicht mit "reinem" Excel geschafft habe, habe ich mir ein Makro mit VB geschrieben um das ganze umzusetzen.
Antworten Top
#5
Moin und frohe Weihnacht!
Zitat:Nachdem ich es nicht mit "reinem" Excel geschafft habe, habe ich mir ein Makro mit VB geschrieben um das ganze umzusetzen.

Es wäre sinnvoll, wenn Du Dein Makro mal posten würdest.
Dies aus drei Gründen:
  1. Diejenigen, die den Thread verfolgen, haben dann auch eine Lösung, die ihnen vllt. bei ähnlichen Problemen weiterhilft.
  2. Denkbar, dass Dir ein anderer Vorschlag gemacht wird, der auch Dir weiterhilft.
  3. Es ist Weihnachten. ;)
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • JeyP
Antworten Top
#6
(25.12.2016, 11:02)RPP63 schrieb: Moin und frohe Weihnacht!

Es wäre sinnvoll, wenn Du Dein Makro mal posten würdest.
Dies aus drei Gründen:
  1. Diejenigen, die den Thread verfolgen, haben dann auch eine Lösung, die ihnen vllt. bei ähnlichen Problemen weiterhilft.
  2. Denkbar, dass Dir ein anderer Vorschlag gemacht wird, der auch Dir weiterhilft.
  3. Es ist Weihnachten. ;)
Gruß Ralf

Klaro, musste nur noch ein bisschen basteln. Dieses Makro muss modifiziert werden um richtig zu funktionieren (habe es nur auf meine Bedürfnisse angepasst). Denke, es gibt auch "einfachere" Varianten, aber so hat es geklappt.

Code:
Private Sub CommandButton1_Click()
Dim i As Long
Dim k As Long
For k = 0 To 11 ' Runs over all par in the file
Dim j As Long
For i = 6 To 1077  ' Runs over the lines in the file
  If Cells(i, 22 + 4 * k).Text = "aura" Or Cells(i, 22 + 4 * k).Text = "oskill" Or ... (habe es hier mal gekürzt^^) Then
      If IsNumeric(Cells(i, 23 + 4 * k).Text) Then
      For j = 5 To 549   'Runs over the skills in the file
         If Cells(i, 23 + 4 * k).Text = Cells(j, 73).Text Then
         Cells(i, 22 + 4 * k + 1).Value = Cells(j, 72).Text
         End If
      Next j
      Else
      Cells(i, 22 + 4 * k + 1).Value = Cells(i, 23 + 4 * k).Text
      End If
  End If
Next i
Next k
End Sub
Antworten Top


Gehe zu:


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