Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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
Anzeige

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
Anzeige
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
Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige