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.

Filtern nach bestimmten Werten innerhalb 2er Spalten
#11
Hallo,

entschuldige die späte Antwort. Aber ja du hast auf jeden Fall weitergeholfen!! Vielen Dank dafür.
Würde es eigentlich etwas bringen, wenn eine Lieferantenliste existiert die alle Lieferanten enthält nach denen man dann die Formel erweitern kann?

LG
ABC_15
Antworten Top
#12
Hallo,

das würde sicher helfen.

Trotzdem hier ein weiterer banaler Lösungsvorschlag:

Arbeitsblatt mit dem Namen 'Tabelle1'
ABCDEFGHIALAM
3KostenartKostenartenbezeichn.KontogruppeWert/BWährGegenkontoartKonto GegenbuchungBezeichnung des GegenkontosBezeichnung ProduktNebenkontierung_1kommt Lieferant auch in Spalte I vor ?
4924404924404BürobedarfSachmittel9,29K1600438Lieferant A GmbHLieferant A, Fujitsu, USB-Stick Kingstonja
5924404924404BürobedarfSachmittel31,99K1600438Lieferant ALieferant A, Notebooktascheja
6924404924404BürobedarfSachmittel47,46K1600438Lieferant A GmbHLieferant B, MS Natural Ergonomic Keyboard 4000ja
7924404924404BürobedarfSachmittel1.619,59K44455566BMWBMW, 8x AOC Prof. E2460PQ + Grafikkartenja
8924404924404BürobedarfSachmittel27,72K44455566BürobedarfLieferant A, Roline Gold HDMI Kabel, Displayportnein
9924499924499Sonst.BetriebsbedarfSachmittel3,90S240006Handkasse X XXXD02220000 Lieferant A 80 J. BJAnein

ZelleFormel
AM4=WENN(ISTZAHL(SUCHEN(WENN(ISTZAHL(SUCHEN(" ";H4));LINKS(H4;SUCHEN(" ";H4));H4);I4));"ja";"nein")
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Gruß Atilla
Antworten Top
#13
Hallo atilla,

nochmals Danke für die Hilfe. Du hast mich nochmals auf eine Idee gebracht!
Evtl. kann ich ja so mein Problem lösen.

Zur Erklärung: (siehe Excel Liste)

- In Spalte C sind die Lieferanten (in den manchmal unterschiedlichen Schreibweisen)
- In Spalte D sind die Bestellungen (in denen manchmal der Lieferant steht, meistens in einer anderen Schreibweise, etc.)
- In Spalte H stehen etwas weiter unten die einzelnen Lieferanten

Ziel: Die Lieferanten in Spalte H sollen mit den Lieferanten-Namen in Spalte C verglichen werden und wenn ein Name übereinstimmt, dann soll der Name des Lieferanten in Spalte E ausgegeben werden, ansonsten soll ein Achtung oder Fehlermeldung kommen.

BSP:
Spalte C Zeile 4: Huber AG
in Spalte H (Lieferantenliste) steht Huber AG
Ausgabe in Spalte E: Huber AG

Kann mir da jemand weiterhelfen?

Danke und LG


Angehängte Dateien
.xlsx   20200305_Zieldatei für Excel Forum Neu.xlsx (Größe: 16,46 KB / Downloads: 2)
Antworten Top
#14
Hallo Community, 

ich habe bereits ein ähnliches Problem beschrieben, leider konnte man mir aufgrund meiner kryptischen Problemstellung nicht weiterhelfen.
Daher neuer Versuch in (hoffentlich) verständlicher Schreibweise und vielleicht neuen Ideen.

Folgendes Problem:

- In Tabelle 1 existiert eine Tabelle mit unterschiedlichen Lieferanten
- In Tabelle 2 eine Tabelle indem die Lieferanten (Spalte G) und die Bestellung (Spalte H) einsehbar ist
- In Tabelle 2 sind neben den Lieferanten auch noch andere Namen (z.B. Herr Ralf Schmidt) oder Lückenfüller (z.B. CpD LUL) angegeben. Zusätzlich ist manchmal die Lieferantenschreibweise anders (z.B. Müller GMBH statt Müller GmbH), was aber nur selten vorkommt.

Mein Ziel: Excel soll mir in einer extra Spalte (Spalte I) ausgeben wenn der Lieferant in Spalte G mit der Tabelle der Lieferanten übereinstimmt, ansonsten soll ein Achtung oder Fehlermeldung kommen

Hier eine Beispiel Datei:

Zur Erklärung: (siehe Excel Liste)

In Tabelle 2 Zieldatei
- In Spalte C sind die Lieferanten (in den manchmal unterschiedlichen Schreibweisen)
- In Spalte D sind die Bestellungen (in denen manchmal der Lieferant steht, meistens in einer anderen Schreibweise, etc.)

In Tabelle 1 Lieferantenliste
- In Spalte C stehen die Lieferanten

Ziel: Die Lieferanten aus Tabelle 1 Lieferantenliste sollen mit den Lieferanten-Namen in Tabelle 2 Zieltabelle in Spalte C verglichen werden und wenn ein Name übereinstimmt, dann soll der Name des Lieferanten in Spalte E in der Tabelle 2 Zieldatei ausgegeben werden, ansonsten soll ein Achtung oder Fehlermeldung kommen.

BSP:
Spalte C Zeile 4: Huber AG (Tabelle 2 Zieltabelle)
in Spalte C (Tabelle 1 Lieferantenliste) steht Huber AG
Ausgabe in Spalte E: Huber AG (Tabelle 2 Zieltabelle)

Kann mir da jemand weiterhelfen?

Danke und LG


Angehängte Dateien
.xlsx   20200305_Zieldatei für Excel Forum Neu.xlsx (Größe: 17,26 KB / Downloads: 4)
Antworten Top
#15
Hi,

bitte kein neues Thema für das gleiche Problem eröffnen.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#16
Hallo,

ich würde es, wie folgt, per VBA lösen:

Code:
Sub prüfen()
   Dim i As Long, j As Long, n As Long
   Dim lngSuche As Long, lngL
   Dim suchFeld
   Dim Lieferanten
   Dim strgWarnung As String
   
   strgWarnung = "ACHTUNG"
   
   'Lieferantentabelle
   With Sheets("Tabelle 1 Lieferantenliste")
      lngL = .Cells(.Rows.Count, 3).End(xlUp).Row
      Lieferanten = .Range("C6:C" & lngL)
   End With
   
   'Suchtabelle
   With Sheets("Tabelle 2 Zieltabelle")
      lngSuche = .Cells(.Rows.Count, 3).End(xlUp).Row
      suchFeld = .Range("C4:E" & lngSuche)
      For i = 1 To lngSuche - 3
         For j = 1 To lngL - 5
            If InStr(1, UCase(Replace(Replace(suchFeld(i, 1), " ", ""), ".", "")), UCase(Replace(Replace(Lieferanten(j, 1), " ", ""), ".", ""))) Then
               suchFeld(i, 3) = Lieferanten(j, 1)  'Bei Fund wird die Bezeichnung aus Lieferantenliste zurückgegeben
               Exit For
            Else
               suchFeld(i, 3) = strgWarnung
            End If
         Next j
      Next i
      .Range("E4:E" & lngSuche).ClearContents   'Bereich zum schreiben löschen
      .Range("E4:E" & lngSuche) = (Application.Index(suchFeld, 0, 3))   'Ergebnisse schreiben
   End With
End Sub
Gruß Atilla
Antworten Top
#17
Hallo Atilla,

VBA hat super funktioniert! Allerdings bekomme ich es nicht ganz auf meine eigentliche Excel Tabelle hin...
Ich habe es geschafft eine weitere Spalte zu erstellen die alle Lieferanten auswirft. Allerdings in unterschiedlicher Schreibweise (z.B.: Müller GmbH, MÜLLER GMBH, Müller, Müller GMBH, usw.) 
Zusätzlich habe ich eine Lieferantenliste mit den Originalnamen der Lieferanten (z.B.: Müller GmbH, Maier AG, etc.) 
kann ich die beiden Spalten nun gegeneinander "Matchen" lassen und ein eindeutiger Lieferant erscheint in einer neuen Spalte?

BSP:
Spalte A              Spalte B (Lieferantenliste)        Spalte C (Ziel)
Müller GMBH        Müller GmbH                          Müller GmbH
Müller                  Müller GmbH                          Müller GmbH
Maier ag              Maier AG                                Maier AG
Maier                   Maier AG                                Maier Ag
MAIER AG            Maier AG                                Maier AG

Danke für deine Mühen!!!!
LG
Antworten Top
#18
Hallo,

das wird mit dem Code herausgearbeitet:

Arbeitsblatt mit dem Namen 'Tabelle 2 Zieltabelle'
 CDE
3Lieferanten Ziel
4HuberAG Huber AG
5Huber AG Huber AG
6Müller GmbH Müller GmbH
7Huber AG Huber AG
8CPD LUL ACHTUNG
9Mustermann KG Mustermann KG
10Müller GmbH Müller GmbH
11Ich AG Ich AG
12Maier GmbH & Co. KG Maier GmbH & Co. KG
13CPD LUL ACHTUNG
14Huber ag Huber AG
15Müller GmbH Müller GmbH
16Mustermann KG Mustermann KG
17Müller GMBH Müller GmbH
18Maier GmbH & Co. KG Maier GmbH & Co. KG
19Mustermann KG Mustermann KG
20Maier GMBH & CO KG Maier GmbH & Co. KG
21Ich AG Ich AG
22müller Müller GmbH
23müller gmb Müller GmbH
24müllerg Müller GmbH
25müllberg ACHTUNG
26Müller GmbH Müller GmbH
27MÜLLER GMBH Müller GmbH
28Müller Müller GmbH
29Müller GMBH Müller GmbH
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

dzu brauchte es im vorigen Code nur zwei Zeilen Code.
Das ist der gesamte Code:

Code:
Sub prüfen()
  Dim i As Long, j As Long, n As Long
  Dim lngSuche As Long, lngL
  Dim suchFeld
  Dim Lieferanten
  Dim strgWarnung As String
 
  strgWarnung = "ACHTUNG"
 
  'Lieferantentabelle
  With Sheets("Tabelle 1 Lieferantenliste")
      lngL = .Cells(.Rows.Count, 3).End(xlUp).Row
      Lieferanten = .Range("C6:C" & lngL)
  End With
 
  'Suchtabelle
  With Sheets("Tabelle 2 Zieltabelle")
      lngSuche = .Cells(.Rows.Count, 3).End(xlUp).Row
      suchFeld = .Range("C4:E" & lngSuche)
      For i = 1 To lngSuche - 3
        For j = 1 To lngL - 5
            If InStr(1, UCase(Replace(Replace(suchFeld(i, 1), " ", ""), ".", "")), UCase(Replace(Replace(Lieferanten(j, 1), " ", ""), ".", ""))) Then
              suchFeld(i, 3) = Lieferanten(j, 1)  'Bei Fund wird die Bezeichnung aus Lieferantenliste zurückgegeben
              Exit For
            ElseIf InStr(1, UCase(Replace(Replace(Lieferanten(j, 1), " ", ""), ".", "")), UCase(Replace(Replace(suchFeld(i, 1), " ", ""), ".", ""))) Then
              suchFeld(i, 3) = Lieferanten(j, 1)  'Bei Fund wird die Bezeichnung aus Lieferantenliste zurückgegeben
              Exit For
            Else
              suchFeld(i, 3) = strgWarnung
            End If
        Next j
      Next i
      .Range("E4:E" & lngSuche).ClearContents  'Bereich zum schreiben löschen
      .Range("E4:E" & lngSuche) = (Application.Index(suchFeld, 0, 3))  'Ergebnisse schreiben
  End With
End Sub
Gruß Atilla
Antworten Top
#19
Hallo atilla,

nochmals vielen vielen Dank! Das ist genau das was ich brauche und womit mein Problem auch gelöst wird. 
Ich habe nur noch Schwierigkeiten bei der Übertragung auf meine Originaldatei. 
Ich habe eigentliche alle Namen, Bezeichnungen und auch Bereiche (also die Zellen und Spalten) entsprechend abgeändert.

Nun kommt der Fehlertext: Laufzeitfehler 9 "Index außerhalb des gültigen Bereichs"

Vielleicht kannst du aus dem Stegreif schreiben, wo mein Fehler ist?

(bitte Entschuldige meine Inkompetenz hierbei...  :22: )

Nochmals Danke !!!!!!

VG
ABC_15
Antworten Top
#20
Hallo,

im Code sind zwei Tabellennamen aufgeführt:


"Tabelle 1 Lieferantenliste"
"Tabelle 2 Zieltabelle"


Diese Tabellenblätter müssen auch in der Datei existieren, so wie in Deiner Beispieldatei.
Dann müssen dei Spalten und Zeilen der Daten genau an den Stellen sein, wie in der Beispieldatei.

Sonst musst Du eine Beispieldatei hochladen, die dem Original entspricht. Die Zellinhalte können anders sein.
Gruß Atilla
Antworten Top


Gehe zu:


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