Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1524to1528
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

Zelleninhalt

Zelleninhalt
25.11.2016 14:05:16
Mario
Es geht um folgendes:
ich arbeite an einem Wörterbuch und habe eine ganze Menge Daten die ich sortieren muss. Alle Daten befinden sich in zwei Spalten (A und B). In der Spalte A (z.B. A1) befindet sich das gesuchte Wort und in der Spalte B, in der gleichen Zeile die Übersetzung. (B1). Es gibt aber die gesuchten Worte die sich wiederholen, (z.B. der Inhalt der Zelle A2 und A3 sind identisch) wobei die Übersetzungen in den Zeilen B2 und B3 unterschiedlich sind. Ich möchte aus zwei Zeilen eine machen und zwar so dass die Inhalte der beiden Zellen (B2 und B3) verbunden werden und dabei ein Zeilenumbruch dazwischen eingefügt wird. Der Inhalt in der Zeller A2 bleibt und der Inhalt aus der Zelle A3 ist „nicht interessant“ da dieser mit dem Inhalt der Zelle A2 identisch ist.
Eine Beispieldatei befindet sich auf dem Server unter
https://www.herber.de/bbs/user/109712.xlsx
Wie kann man dies automatisieren?
Vielen Dank im Voraus
M.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelleninhalt
25.11.2016 15:10:41
Michael
Hallo Mario!
Auf Basis Deiner Beispiel-Datei, Makro a im allgemeinen Modul 1 gibt Dir eine neue Lösung im Blatt "Lösung 2" aus. Schau's Dir an... https://www.herber.de/bbs/user/109717.xlsm
Meintest Du das so?
LG
Michael
mit einem "Wörterbuch"
25.11.2016 15:14:49
Michael
Hi Mario,
zu gut Denglisch einem "dictionary": das wirft Doppelte raus.
Der Code:
Option Explicit
Sub machen()
Dim shQ$, shZ$, tZ$  ' $ = as String; Quell- und Zielblatt, Trennzeichen
Dim o As Object, oW As Variant, a As Variant, i&, z& ' & = as long
shQ = "Aufgabe": shZ = "Lösung"
tZ = Chr(10) 'Das ist der Zeilenumbruch
' tZ = "; " ' das ist mir persönlich lieber, weil
' die Zeilenhöhe sich nicht ändert.
With Sheets(shQ)
a = Intersect(.UsedRange, .Range("A:B"))
End With
Set o = CreateObject("scripting.dictionary")
For i = 1 To UBound(a)
If a(i, 1)  "" And a(i, 2)  "" Then
If o.exists(a(i, 1)) Then
o(a(i, 1)) = o(a(i, 1)) & tZ & a(i, 2)
Else
o(a(i, 1)) = a(i, 2)
End If
End If
Next
' damit sind alle mehrfachen Begriffe eindeutig erfaßt und stecken in o (Dict. )
' a ist damit erledigt und kann für die Ausgabe verwendet werden:
ReDim a(1 To o.Count, 1 To 2)
z = 0
For Each oW In o.keys
z = z + 1
a(z, 1) = oW
a(z, 2) = o(oW)
Next
Sheets(shZ).Range("A1").Resize(z, 2) = a
End Sub
Die Datei: https://www.herber.de/bbs/user/109718.xlsm
Schöne Grüße,
Michael
Anzeige
Ah geh, war mein Bsp so schlecht ;-), schönes WE!
25.11.2016 15:22:01
Michael
@M(m): ach was!
25.11.2016 15:48:48
Michael
Hi Michael,
ich hatte gar nicht gesehen, daß schon ne Antwort von Dir da war...
Dir auch ein schönes Wochenende, gell,
& schöne Grüße,
Michael
AW: @M(m): ach was!
25.11.2016 18:14:21
Mario
Vielen, vielen Dank. Das ist die Lösung!
Mit Formeln könnte man das so lösen, ...
26.11.2016 04:06:07
Luc:-?
…Mario (& Michaels):
1.Variante: 2 separate Fmln für A & B
D2[:D9]:=WENN(A2=A1;"";A2)
E2[:E9]:=WENN(A2=A1;"";VJoin(INDEX(B2:B6;1):INDEX(B2:B6;ZÄHLENWENN(A2:A6;A2));ZEICHEN(10)))
2.Variante: 1 plurale MatrixFml über je 2 Zellen
D2:E2[;D3:E9]: {=WENN(A2=A1;"";WAHL(SPALTE(A2:B2);A2;VJoin(INDEX(B2:B6;1):INDEX(B2:B6;ZÄHLENWENN(A2:A6;A2));ZEICHEN(10))))}
Der Einfachheit halber wurde hierbei die UDF VJoin aus dem Archiv benutzt.
Die Leerzeilen können dann manuell gelöscht wdn.
Morrn, Luc :-?
Besser informiert mit …
Anzeige
AW: Mit Formeln könnte man das so lösen, ...
28.11.2016 10:26:15
Mario
Vielen Dank, auch eine klasse Lösung!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige