Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

wenn???





Frage

Ich habe eine Tabelle in Excel 2000 mit 2 Spalten. In der ersten Spalte stehen Bezeichnungen wie z.B Baz0123.txt in der zweiten Spalte die gleichen Bezeichnung jedoch mit den Endungen .tx0 (Die Bezeichnungen sind nicht immer gleich lang, doch die Endungen sind immer gleich!!) Das Problem nun ist, das ab und zu Bezeichnungen der ersten Spalte in der Spalte 2 fehlen und umgekehrt auch Bezeichnungen der Spalte 2 in der ersten Spalte fehlen. Ich suche nun nach einer Möglichkeit, mit der ich so einfach wie möglich (ohne VBA wenn es geht!) die Tabelle so anordnen kann, dass die Begriffe immer gegenüber stehen, dh falls ein Begriff in der zweiten Spalte fehlt, dort eine leere Zelle steht und nicht schon der nächste Begriff. Das gleiche soll mit der ersten Spalte geschehen. Kommt eine Bezeichnung der zweiten Spalte in der ersten nicht vor, soll diese Zelle leer bleiben und der Rest der Spalte nach unten verschoben werden. Schlussendlich sollen immer die zwei gleichen Begriffe gegenüberstehen, einmal mit .txt einmal mit tx0. uff.. ich hoffe ich habe das Problem einigermassen verständlich geschildert

Antwort 1 von RedSonja

schreibe in die 3. Spalte folgende formel:


=WENN(LINKS(A2;LÄNGE(A2)-3)=LINKS(B2;LÄNGE(B2)-3);"Ja";"Nein")


dann sortierst du die spalten einzel und siehst wo ungleichheiten bestehen. Dort brauchst du nur noch eine zelle einfügen und den rest nach unten verschieben und schon hast du es.

Live long and prosper
RedSonja

Antwort 2 von Severine

besten Dank RedSonja
Deine Formel ist schon mal ein Ansatz. Doch werde ich damit praktisch in allen 500 Zeilen ein Nein haben, da die zwei Spalten nach dem ersten Fehlen eines Eintrages in einer Spalte nirgens mehr übereinstimmen. Ich habe eigentlich eher an eine Lösung gedacht, bei der die Anordnung dann auch irgendwie automatisch (oder auch über Hilfsspalten) gestaltet wird. ist sowas überhaupt ohne Makro lösbar??

Antwort 3 von want2cu

@severine,

ich habe deine Frage anders verstanden als RedSOnja.
Daher zur Klarstellung: In Spalte A und in Spalte B stehen jeweils untereinander die entsprechenden Einträge, leere Zellen gibt es dazwischen nicht. Die EINträge in Spalte A und B mit den unterscheidlicen Endungen stehen also nicht (wie von RedSOnja angenommen) bereits nebeneinander.
Die "neue" Tabelle soll aber diese zueinander passenden EInträge nebeneinander haben und wenn ein EIntrag nur einmal vorkommt, in der Nachbarspalte jeweils keine Eintragung.

Kläre uns bitte mal auf, ob das so gemeint ist, dann wird sich auch eine Lösung finden.

CU
want2cu

Antwort 4 von want2cu

:-(((

da hab ich schon wieder zu langsamn getippt.

Aber wenigstens habe ich es dann doch richtig verstanden ;-)))

Na dann mal an die Arbeit und nach einer LÖsung gesucht...grübel...

Bis bald
want2cu

Antwort 5 von RedSonja

wenn die tabelle so steht, wie ich es beschriben habe, ist klar, dass in fast jeder zeile ein nein steht. deshalb muss man danach die NEINs finden und in der spalte A oder B zellen einfügen, bis das nein weg ist.

Live long and prosper
RedSonja

Antwort 6 von Severine

ja das war mir schon klar RedSonja aber die Tabelle besteht aus mehreren Hundert Zeilen, und ich suche eigentlich nach einer Möglichkeit, die das ganze automatisch erledigt.
Besten Dank trotzdem für die Bemühungen.

Antwort 7 von Guenter

Hallo,

ich hab's mal mit einem Makro probiert.
Du solltest Deine Tabelle zunächst mal sichern, dann erst das Makro ausprobieren.


Option Explicit

Sub makro()
Dim i, j
i = Cells(Rows.Count, 1).End(xlUp).Row
j = Cells(Rows.Count, 2).End(xlUp).Row
Range(Cells(2, 2), Cells(j, 2)).Select
    Selection.Cut
    Cells(i + 1, 1).Select
    ActiveSheet.Paste
    Columns("A:A").Select
    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Dim n
Dim First, Second
For n = 2 To Cells(Rows.Count, 1).End(xlUp).Row - 1
  First = Left(Cells(n, 1).Value, Len(Cells(n, 1)) - 4)
  Second = Left(Cells(n + 1, 1).Value, Len(Cells(n + 1, 1).Value) - 4)
  If First = Second Then
    Cells(n, 1).Select
    Selection.Cut
    Cells(n + 1, 2).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    n = n + 1
  End If
 Next
For n = 2 To Cells(Rows.Count, 1).End(xlUp).Row
  If Right(Cells(n, 1).Value, 3) = "tx0" Then
    Cells(n, 1).Select
    Selection.Cut
    Cells(n, 2).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
  End If
Next
End Sub


Wenn ich es recht verstanden habe, sollte es funktionieren.

Gruß
Günter

Antwort 8 von Severine

Hallo Günter

Besten Dank für dein Makro. Eigentlich suchte ich ja nach einer Möglichkeit VBA zu umgehen, aber wird wohl nicht gehen. Ich werde dein Makro testen, sobald ich dazu komme ;-)

nochmals lieben Dank an alle für Eure Beiträge, finde es Super wie das klappt hier im Supportnet.. Merci



Antwort 9 von want2cu

Hallo Severine,

ich habe die Vermutung, dass es wohl nicht ohne Makro gehen wird, Dennoch möchte ich einig "Formel"-Ansätze für eine alternative Lösung anbieten.

Angenommen, die Tabelle ist wie folgt aufgebaut

Spalte A: namen mit Endung ".doc"
Spalte B: umgewandelte Namen aus SPalte A ohne die Extension und den Punkt
Spalte C: namen mit Endung ".txt"
Spalte D: umgewandelte Namen aus Spalte C ohne die Extension und den Punkt

Formel in Spalte B: =LINKS(A1;FINDEN(".";A1)-1)
Formel in Spalte D: =LINKS(C1;FINDEN(".";C1)-1)
Damit habe ich dann zumindest schon mal die Namen um die Dateierweiterungen bereinigt und kann dann diese Hilfsspalten vergleichen.

In Spalte F könnte dies z.B. mit der Funktion SVERWEIS wie folgt aussehen:
=SVERWEIS(B1;$D$1:$D$7;1;FALSCH)

In Spalte G im Prinzip dasselbe bezogen auf den umgekehrten Vergleich der EInträge:
=SVERWEIS(D1;$B$1:$B$7;1;FALSCH)

Gibt es in den beiden bereinigten Hilfsspalten identische EInträge (abgesehen von der Extension) wird dieser Wert im KLartext angezeigt, ansonsten die Fehlermeldung #NV.

Bis dahin bin ich gekommen. Jetzt müßte man nur noch erreichn, dass über Hilfsspalten entsprechende freie Zellen erzeugt werden, so dass die Einträge, die nicht übereinstimmen, mit einer leeren Zelle in der Nachbarspalte angezeigt werden.
Das könnte vielleicht mit INDEX, KKLEINSTE oder VERGLEICH oder etwas ähnlichem gehen. Ich habe es aber noch nicht hinbekommen.

Vielleicht hilft ja einem anderen aus der Formel-Fraktion mein Lösungsansatz -;-)))

CU
want2cu

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: