Office: Array so befüllen, dass die gefundene Werte nur einmal vorkommen

Helfe beim Thema Array so befüllen, dass die gefundene Werte nur einmal vorkommen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Zusammen, Wie kann man den Array so befüllen, das die Werte nur einmal vorkommen (Leere Bereiche müssen auch übersprungen werden) [ATTACH]... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Natalie-25, 9. Februar 2020.

  1. Array so befüllen, dass die gefundene Werte nur einmal vorkommen


    Hallo Zusammen,
    Wie kann man den Array so befüllen, das die Werte nur einmal vorkommen (Leere Bereiche müssen auch übersprungen werden)


    Array so befüllen, dass die gefundene Werte nur einmal vorkommen fjly3z4k.jpg

    Wenn eine Schleife merkt das der Wert (z.B. Apfel) schon einmal vorhanden ist ignoriert andere „Apfel“ und trägt nur die Werte ein die noch nicht eingetragen sind.

    So werden alle Daten eingetragen.

    PHP:
             Sub liste()

    Dim ObstSuche() As String
    Dim Counter 
    As Integer
    Dim i 
    As Integer

    For Counter 1 To Worksheets("Garten").UsedRange.Rows.Count
    ReDim Preserve ObstSuche
    (i)
    ObstSuche(i) = Worksheets("Garten").Range("A" Counter)
    1
    Next
    End Sub
    :)
     
    Natalie-25, 9. Februar 2020
    #1
  2. Hajo_Zi
    Hajo_Zi Erfahrener User
    benutze
    If WorksheetFunction.CountIf(Range("a1:a" & x), Cells(x, 1)) > 1 Then

    Du bist im falschen Forum. Bildbearbeitung ist ein anderes.
    Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.

    Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
    Bilder statt Datei | Excel ist sexy!
    Eine hochgeladene Arbeitsmappe erhöht die Wahrscheinlichkeit, dass Du eine Lösung für Dein Problem erhältst.

    Erstelle folglich bitte eine Demomappe, aus der deine Aufgabenstellung klar erkennbar ist und lade diese Mappe mit einem
    http://www.ms-office-forum.net/forum...72&postcount=3
    Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
    http://www.ms-office-forum.de/forum/...d.php?t=322895
    änderrn.
    Falls Du den Download des Forums nicht benutzen möchtest beachte bitte: von unsicheren Servern file-upload lade ich keine Datei herunter (lt. Einschätzung meines Virenprogramms).

    Der Name einer hochgeladenen Mappe wird im Beitrag automatisch angezeigt, sodass es bei Verwendung von aussagekräftigen Namen leichter fällt, sie später im Ablageordner wiederzufinden und sie gedanklich einem bestimmten Thema zuzuordnen. Namen wie Muster*, Test*, Mappe*, Beispiel*, Fehler*, Kalender*, UserForm*, Forum* usw. sind so allgemein, dass eine Zuordnung zu einem Thema unmöglich gemacht wird.
    Es sollte ein aussagekräftiger Name sein.

    Das ist nur meine Meinung zu dem Thema.
    Bitte berücksichtige das Themen die Erledigt sind als Erledigt markiert werden können. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst.
    Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen.





    Meine Homepage Homeseite - Hajo's Excelseiten
     
    Hajo_Zi, 10. Februar 2020
    #2
  3. Array so befüllen, dass die gefundene Werte nur einmal vorkommen

    Effizient sollte auch der Weg sein, erst direkt im Excelblatt die Duplikate zu beseitigen (=> LMGTFY) und dann das Ergebnis in ein Array zu übernehmen. Damit könnte man auch gleich den gesamten Bereich im Stück übernehmen statt Schleifen über Einzelwerte zu laufen.
     
  4. In neuem Excel gibt es jetzt =EINDEUTIG().
     
  5. …zu viele Funktionen, die keiner braucht?
    *biggrin.gif*
     
    EarlFred, 10. Februar 2020
    #6
  6. hm,
    schauen wir mal mit Laune:

    Code:
    And the winner is:
    RemoveDuplicate:=0,1015625s
    TestB_Dictionary:=0,1992188s
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
  7. Array so befüllen, dass die gefundene Werte nur einmal vorkommen

    \@Mase
    Code:
    Magst Du den Test ohne angezogene Handbremse wiederholen?

    Edit:
    Bei meinem Versuch:
    0,164 sec für RemoveDuplicates
    0,102 sec für das Dictionary mit Late Binding
    0,066 sec für das Dictionary mit Early Binding
     
    EarlFred, 11. Februar 2020
    #8
  8. na, Glückwunsch zum neuen PC ^^

    Vorliegende Daten:
    A1:= "Header"
    A2:= "Test"
    A3:= "Test1"
    A4:= "Test2"
    A5:= "Test3"
    A6:= "Test4"
    A7:= "Test5"
    ... sich ab A2 wiederholend
     
  9. ich brauch keinen neuen PC. Mir genügt zu wissen, wie es richtig geht, um schneller zu sein *wink.gif*
     
    EarlFred, 11. Februar 2020
    #10
  10. Du haieiei *wink.gif*

    Verglichen sein wollte die For-Schleife mit .RemoveDuplicates ... kein Schummeln erlaubt.
     
  11. Ich wollte nur das Nachdenken anregen, um die Fixierung auf vorgegebene Codes - was recht oft Nachahmen der Denkrichtung bedeutet - aufzubrechen.

    Dazu dann zur Verkomplizierung noch weitere Gedanken:

    - Es gibt noch weitere Methoden, Duplikate auszublenden. Es gibt da auch Datenbankmethoden bzw. etwas neuer auch Power Query.

    - Die Duplikatausblendung war nur die erste Teilaufgabe. Das Befüllen des gewünschten Arrays wäre nicht zu vernachlässigen. Dabei würde man in eine eigentliche Überlegung einbeziehen sollen, was mit dem Array in Nachfolge passieren soll (Aufgabe?), da es ja auch nur ein Zwischenschritt hin zu einer sichtbaren Lösung sein kann. Vielleicht ist es selber als solcher Zwischenschritt nicht das Optimum, und ein ganz anderer Weg wäre denkbar.

    - Was passiert, wenn man die Duplikatsidentifizierung an mehr als einem Feld festmacht und im Ergebnis Inhalte in zusätzlichen Spalten mitführen möchte?

    - Ich selber komme aus der Datenbankecke. Da orientiere ich mich primär an Duplikatsvermeidung. Damit verliert die Thematik Performance bei Duplikatsaufhebung an Gewicht, weil sie nur neu zugeführte Daten betreffen würde. Da "genügen" Methoden, die nicht so langsam sind, aber einfach, lesbar, gut pflegbar, gut einbettbar in den Gesamtprozess usw.

    Also könnte man Natalie zu Wort kommen lassen, verbunden mit der Zusatzfrage, was sie EIGENTLICH machen will.
     
  12. Array so befüllen, dass die gefundene Werte nur einmal vorkommen

    Die Duplikate werden für die weitere Auswertungen benötigt, also beseitigen wäre keine optimale Lösung. Denn die Tabelle bestehet aus mehreren Query Tabellen und wird ständig aktualisiert
    Könnte man die Schleifen so verschachteln, dass die Eintragungen nur dann erfolgen, wenn die bereits eingetragene Arraywerte keine Übereinstimmung aufweisen?
    Hmm.. ich habe die Sache vieleinfacher vorgestellt *eek.gif*

    P.S. Apfel und Melone sind nur Beispielwerte und soll nur das Prinzip verdeutlichen *wink.gif*
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    Natalie-25, 11. Februar 2020
    #13
  13. \@Mase
    dann schreib doch einfach, was du eigentlich meintest: Du willst also eine eingebaute Methode mit dem zellenweisen Abklappern von Tabellenblättern vergleichen und nennst dieses Verfahren "Dictionary". Das ist sehr irreführend.

    Ich nenne es Verwendung geeigneter Verfahren.

    @TE
    ...und das bitte so exakt und konkret formuliert, am besten mit einer Mustermappe, wenn Wort nicht ausreichen, so dass man eine geeignete Methode empfehlen kann.

    Benötigst du die DUPLIKATE oder die Liste, die um Duplikate bereinigt wurde? Das meine ich mit "exakter" Formulierung.
    Wenn zweiteres: Das schreit irgendwie nach (wie teilweise schon genannt) Pivot-Tabelle, PowerQuery, Spezialfilter....

    Codes, wie du mit VBA weiterkommst (ob das nun der direkte Weg ist oder nicht) stehen hier ja mittlerweile auch einige.
     
    EarlFred, 11. Februar 2020
    #14
  14. Die Vorschläge sind nachvollziehbar solche auf genau das genannte Beispiel und somit gleichartig als Prinzipdarstellungen zu verstehen. Das "Hochkonvertieren" vom eigenen Modell auf die Realität ist eigenes Brot.

    Selbstverständlich kann man Verschachteln, Vertiefen, Verkomplizieren.
    Etwas Vermögen, neben übersichtlichen Aufgaben dann auch noch richtige Aufgabenstellungen zu lösen, sollte man sich aber bewahren und sich bis dahin einer Einfachheit und Übersichtlichkeit bedienen.

    An Inhalte unbekannter Adresse im Array kommt man nur durch Suchen per Schleife. Daher ist hier ein massenhaftes Eintragen auf diesem Weg problematisch hinsichtlich des übertriebenen Aufwandes.
    Daher wäre es nicht so verkehrt, sich gedanklich auf gemachte Vorschläge einzulassen. Alternativ kannst Du natürlich auf einen Helfer warten, dessen Gedankenwelt Deine Gedankenwelt ist oder er eine masochistische Ader bedienen will.
    Man könnte ja den verwendeten einzigartigen Verarbeitungsmodus geringfügig im eigenen Sinne abwandeln oder eine parallele zielgenaue Herleitung einer benötigten und sofort gebrauchsfähigen Datenstruktur vornehmen.
     
Thema:

Array so befüllen, dass die gefundene Werte nur einmal vorkommen

Die Seite wird geladen...
  1. Array so befüllen, dass die gefundene Werte nur einmal vorkommen - Similar Threads - Array befüllen gefundene

  2. VBA Daten in Array durch inputbox befüllen lassen

    in Microsoft Excel Hilfe
    VBA Daten in Array durch inputbox befüllen lassen: Hi zusammen, Ich hab mal wieder eine Excel VBA Frage. Kurz zur Erklärung: Ich erhalte von einem Kunden eine Datei mit wiederum seinen Kunden, die ein bestimmtes Produkt gekauft haben(den Sinn...
  3. Listbox mit Array befüllen,bearbeiten &zurückschreiben

    in Microsoft Excel Hilfe
    Listbox mit Array befüllen,bearbeiten &zurückschreiben: Guten Abend Ich bin ein Laie und habe mich in letzter Zeit mit einem Projekt ins VBA eingearbeitet. Nun scheitere ich aber an den Arrays in Kombination mit dynamischen Tabellen (.listobjects)...
  4. Array mit Range aus InputBox befüllen geht nicht

    in Microsoft Excel Hilfe
    Array mit Range aus InputBox befüllen geht nicht: hallo folgender Code macht einen Fehler. Warum? Code: Sub Versuch() Dim meinArray() As Variant 'Fehler, weil "Typen unverträglich". Warum? meinArray = Application.InputBox("Bitte wähle...
  5. Array befüllen und durchsuchen

    in Microsoft Excel Hilfe
    Array befüllen und durchsuchen: Hallo Leute, stehe vor einem kleinen Problem, bei dem ich nicht weiterweiß. Ich habe eine Tabelle, in der in der ersten Spalte jeweils Benutzer eingetragen werden. Diese kommen jedoch häufiger...
  6. ComboBox mit Array befüllen

    in Microsoft Excel Hilfe
    ComboBox mit Array befüllen: Hallo Allerseits :), Und zwar habe ich folgendes Problem: Ich erstelle ein neues Sheet, erstelle eine ComboBox und möchte sie mit einem vordefinierten Array befüllen (Alles in VBA). Im Moment...
  7. VBA Excel Array nicht gleich Array?

    in Microsoft Excel Hilfe
    VBA Excel Array nicht gleich Array?: Hallo zusammen. Ich habe heute eine für mich eigenartige Situation kennenlernen müssen. Ein Array scheint nicht gleich einem Array zu sein. Wenn ich ein Array aus einem Zellbereich einlese und...
  8. VBA: Array aus allen Tabellenblättern befüllen

    in Microsoft Excel Hilfe
    VBA: Array aus allen Tabellenblättern befüllen: Hallo, liebe VBA-Freaks, ich hab mal eine Frage zu Arrays und deren Befüllung. Wenn ich ein Array mit einer Range befülle, kann ich meinArray = Range("A1:F30") nehmen. Wie muss mein...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden