Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1636to1640
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Duplikate aus 2-dimensionalem Array entfernen

Duplikate aus 2-dimensionalem Array entfernen
13.08.2018 12:07:32
Johannes
Hallo VBA-Profis,
das Problem ist relativ schnell beschrieben:
Ich müsste aus einem 2-dimensionalen Array in der Form Array(0 to 2, 0 to recount) alle Duplikate entfernen, sodass sich in den ersten zwei Ebenen der ersten Dimension, also 0 to 1 ausschließlich Werte befinden, die einmal vorkommen. Die letzte Ebene - also 2 - darf Duplikate enthalten. Die Variable recount variiert, da das Array aus einer Access Abfrage/Recordset mit Werten gefüllt wird. Ich habe im Internet bereits recherchiert und rausgefunden, dass hier öfter mit scripting.dictionary gearbeitet wird. Die allgemeine Funktionsweise von dictionaries ist mir zwar bekannt, allerdings weiß ich in diesem Fall nichts damit anzufangen.
Wäre super, wenn jemand von Euch eine Lösung hierzu hätte. Vielen, lieben Dank.
Gruß Johannes

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Duplikate aus 2-dimensionalem Array entfernen
13.08.2018 13:13:01
ChrisL
Hi Johannes
Wie sieht die Abfrage aus resp. kann man die Duplikate nicht bereits in der Abfrage berücksichtigen?
cu
Chris
AW: Duplikate aus 2-dimensionalem Array entfernen
13.08.2018 13:41:05
Johannes
Hi Chris,
leider nicht, jedenfalls habe ich keine Möglichkeit gefunden, die Daten bereits in Access weiter aufzubereiten. Die Tabellen in Access kommen aus einem externen Programm, in denen die Ausgangsdaten gepflegt werden. Vielleicht noch zur Ergänzung. Die Duplikate sind bereits in Access sortiert, sodass diese nicht wild durcheinander in einer Spalte stehen, sondern schön untereinander der Größe nach aufgelistet werden. Im Allgemeinen handelt es sich bei den Tabellen in Access um Daten, welche innerhalb des Drittprogramms als Kreuztabellen gepflegt werden. Das heißt in der ersten Dimension des Arrays (0 to 2) befinden sich aktuell in der Ebene 0 die Spaltenüberschriften, in Ebene 1 die Zeilenüberschriften und in Ebene 2 die Werte der Kreuztabellen. Also sehen die Daten in Access in etwa so aus:
Spalte: Zeilen: Werte:
25 DIM1 .
25 DIM2 .
25 DIM3 .
25 DIM4
25 DIM5
25 DIM6
25 DIM7
50 DIM1
50 DIM2
50 DIM3
50 DIM4
50 DIM5
50 DIM6
50 DIM7
. .
. .
. .
Am Schluss sollen die Tabellen in Excel wieder als Kreuztabelle dargestellt werden. Ich hoffe, ich habe es verständlich erklärt :-) Danke nochmal
Anzeige
AW: Duplikate aus 2-dimensionalem Array entfernen
13.08.2018 13:55:58
ChrisL
Hi
Ganz klar ist es mir nicht, aber vorerst egal.
Spalte: Zeilen: Werte:
25 DIM1 .
25 DIM2 .
25 DIM3 .
25 DIM4
25 DIM5
25 DIM6
25 DIM7
50 DIM1
50 DIM2
50 DIM3
50 DIM4
50 DIM5
50 DIM6
50 DIM7
Wie soll nun das Ergebnis aussehen? Werte summieren?
cu
Chris
AW: Duplikate aus 2-dimensionalem Array entfernen
13.08.2018 14:38:00
Johannes
Hi Chris,
basierend auf meinem Beispiel aus 2 Spalten und 7 Zeilen inkl. den Werten dazwischen, also eine ganz banale Kreuztabelle
Zeile/Spalte 25 50
DIM1 1,97 27,44
DIM2 3,56 36,09
DIM3 145,91 45,27
DIM4 118,60 30,80
DIM5 7,04 99,95
DIM6 54,17 33,89
DIM7 10,42 116,38
Die Werte sollen nicht aufsummiert, sondern schlicht ausgegeben werden.
Anzeige
AW: Duplikate aus 2-dimensionalem Array entfernen
13.08.2018 16:00:25
ChrisL
Hi Johannes
Etwa so könnte die Abfrage in Access aussehen:

TRANSFORM Sum(Tabelle1.feldWert) AS SummevonfeldWert
SELECT Tabelle1.feldZeile, Sum(Tabelle1.feldWert) AS [Gesamtsumme von feldWert]
FROM Tabelle1
GROUP BY Tabelle1.feldZeile
PIVOT Tabelle1.feldSpalte;
cu
Chris
Kreuztabelle erstellen
13.08.2018 18:26:04
ChrisL
Übrigens mit Duplikaten hat es nur am Rande zu tun. Die Suche verläuft vermutlich erfolgreicher, wenn du die im Titel erwähnten Stichworte verwendest z.B.
https://www.herber.de/forum/archiv/1236to1240/1239718_Hilfe_beim_erstellen_eines_Arrays_mit_variabler.html
Ein SQL-Statement (siehe vorherige Antwort) bzw. eine Abfrage/Query, wäre m.E. der einfachste und performanteste Weg.
Die Rohdaten kannst du nicht beeinflussen, aber in Access eine neue Abfrage auf die Rohdaten machen. Oder du machst eine Abfrage aus Excel nach Access und integrierst den SQL-String. Oder du importierst die Rohdaten und machst die Abfrage innerhalb Excel.
Falls du es nicht innerhalb Access lösen kannst, dann siehe auch Stichworte "PowerQuery" oder "ADODB".
cu
Chris
Anzeige

71 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige