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.

Suchen von Daten in Spalte A wenn Bedingung in Spalte B erfüllt
#11
(24.06.2017, 16:21)SamTG schrieb: Ich habe meine Tabellen schon als Datenbanken in Access gespeichert, da ich schon einige andere Abfragen erstellt habe.
Gibt es vielleicht auch eine Funktion wie list.select bei Access?
Power Query lässt sich größtenteils über das UI bedienen, d.h. Coden durck Klicken.

Wenn deine Daten schon als Access-Tabellen vorliegen dann sollte es doch ebenso einfach sein eine entsprechende Abfrage zu erstellen.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#12
(24.06.2017, 16:29)Fennek schrieb: Hallo,

schau mal, ob du damit zurecht kommst:

Einmal kopieren, 6 x paste könnte reichen.

mfg

Danke Fennek, leider ist das bei meiner Menge an Datensätzen sehr anstrengend für meinen kleinen Rechner. Nur ein Lauf über alle Zeilen dauerte fast 30 Minuten.

Bei Access habe ich noch auch noch nicht die richtige Lösung gefunden.
Das wird noch eine harte Nuss...

LG
Sam
Antworten Top
#13
Hallo,

mit VBA könnte es wesentlich schneller gehen. Die Daten müssen, wie in der Datei vorhin, in Cells(3,1) beginnen und mit einer Leerzeile von der Überschrift getrennt sein.

Es kann sein, dass es bei zu vielen Zeilen eine Fehlermeldung gibt, da "transpose" eine max. Anzahl hat.


Code:
Sub Fen()
With CreateObject("scripting.dictionary")
F = Cells(3, 1).CurrentRegion
For i = LBound(F) To UBound(F)
   If F(i, 1) = 3179 Or F(i, 1) = 5012 Then
       If Not .exists(F(i, 2)) Then
           .Add F(i, 2), F(i, 1)
       Else
           .Item(F(i, 2)) = .Item(F(i, 2)) & ", " & F(i, 1)
       End If
   End If
Next i
Cells(5, 5).Resize(.Count, 2) = Application.Transpose(Array(.keys, .Items))
End With
End Sub


Auf einem "vernüftigen" REchner sollte es nicht mehr als 10 Sekunden dauern (geraten, aber auf Basis früherer Ergebnisse)

mfg
Antworten Top
#14
Hallo,

von mir auch eine Variante mit Dictionary:


Code:
Sub mach()
 
  Dim i As Long, n As Long
  Dim lngZ As Long
  Dim feld, schreibFeld
  Dim varStrg
 
  Dim c As Object
  Set c = CreateObject("Scripting.Dictionary")
 
  With Sheets("Tabelle1")
    lngZ = .Cells(.Rows.Count, 1).End(xlUp).Row
    .Range("C3:C" & lngZ).ClearContents
    feld = Range("A3:b" & lngZ)
    schreibFeld = Range("C3:C" & lngZ)
    For i = LBound(feld) To UBound(feld)
      If feld(i, 1) = 3179 Or feld(i, 1) = 5012 Then
        If Not c.exists(feld(i, 2)) Then
          c(feld(i, 2)) = i
        Else
          schreibFeld(c(feld(i, 2)), 1) = n + 1
          schreibFeld(i, 1) = n + 1
          n = n + 1
        End If
      End If
    Next i
    .Range("C3:C" & lngZ) = schreibFeld
  End With

End Sub


Bei 150 Tausend Zeilen dauerte es bei mir ca 3 Minuten.

Bei jeder ID darf ein Artikel immer nur einmal vorkommen.
Gruß Atilla
Antworten Top
#15
Hallo zusammen,

also wie gesagt ich weiß dass es VBA und so gibt, aber ich kenne mich null aus. Wenn ich die Codes im VBA Direktfenster eingebe kommt bei beiden  Fehlermeldung.
Was mache ich falsch? bzw wo muss ich den Code einfügen?

Hab jetzt auch nochmal mit Access probiert, aber auch da bin ich noch nicht weiter. 
Die Kriterien mit einem Und zu verbinden scheint nicht zu funktionieren, da er mir immer 0 rausgibt, was nicht stimmt.

LG
Sam
Antworten Top
#16
Hallöchen,

der Code muss in ein Modul. Wenn Du im VBA-Editor bist, gehst Du über das Menü | Einfügen | Modul. Dann gehst Du mit dem Cursor irgendwo in den Code und startest ihn mit F5

Wenn es einen Fehler gibt, dann teile ihn uns mit, einfach nur ... Fehler ... reicht i.d.R. nicht zum korrigieren Sad
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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