Tabelle mit Kopfzeile: leere Spalten inkl. Kopfzeile eliminieren
#1
Moin.

Ich habe eine sehr umfangreiche Tabelle (Export einer Kontaktsammlung) mit vielen Spalten, viele davon sind leer.

Da die Tabelle 900 Zeilen hat, lässt sich nicht mit einem Blick erkennen, welche Spalte leer ist.

Die leeren Spalten liegen auch nicht alle nebeneinander.

Die Tabelle möchte ich "normalisieren", muss also die leeren Spalten löschen.

Es gibt die Funktion "Menüband Start > Suchen und auswählen > Inhalte > (x) Leere.

Diese Funktion nützt mir nix, da sie alle leeren Zellen markiert.

Die Herausforderung der Aufgabe liegt wohl darin, dass die Spalten, die ich löschen möchte eine Kopfzeile mit einem Label haben.

Beispieldatei hängt an.

Tabelle 1 zeigt den Ist-Zustand, Tabelle 2 den Soll-Zustand.

Wie kann man die Aufgabe elegant lösen? Danke für euren Rat.

.xlsx   leere-spalten-loeschen.xlsx (Größe: 9,44 KB / Downloads: 10)
VG Andreas

--
Genutzte Version: MS Office 365 für Mac

Antworten Top
#2
Moin

Lösche Spalte B.
Lösche Spalte C.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#3
(18.12.2022, 17:33)shift-del schrieb: Lösche Spalte B.
Lösche Spalte C.

Das war ein Minimal-Beispiel um zu demonstrieren, worum es geht.

Die richtige Tabelle ist sehr umfangreich. Manuelles Löschen ist keine Option, sonst hätte ich hier doch nie gefragt.

Denkst Du denn ernsthaft, ich könne keine 2 Spalten löschen? ; )
VG Andreas

--
Genutzte Version: MS Office 365 für Mac

Antworten Top
#4
hallo
ich würde eine Zeile einfügen und dort auf LEER prüfen:
zB. A1 zum kopieren nach rechts : =(ANZAHL2(A2:A1000)<>0)*SPALTE()

In den Optionen zum Sortieren kannst du "spalte sortieren" wählen entsprechend die leeren Spalten weg bekommen.

Gruß Holger
[-] Folgende(r) 1 Nutzer sagt Danke an echo für diesen Beitrag:
  • ibu
Antworten Top
#5
Hallo,

bezugnehmend auf Echo's Vorschlag könnte man es so ausführen...



Zitat:Denkst Du denn ernsthaft, ich könne keine 2 Spalten löschen? ; )


Du kennst das Sprichwort mit dem Wald und den Bäumen?


Angehängte Dateien
.xlsx   leere-spalten-loeschen.xlsx (Größe: 15 KB / Downloads: 7)
[-] Folgende(r) 1 Nutzer sagt Danke an rate mit für diesen Beitrag:
  • ibu
Antworten Top
#6
Code:
Sub LeereSpaltenDel()
Dim dls As Long, dlz As Long, sp As Long, dsp As Long
    dlz = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    dls = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
    dsp = 0
    For sp = 1 To dls
        If Cells(Rows.Count, sp).End(xlUp).Row < 2 Then
            Columns(sp).Delete
            sp = sp - 1
        Else
        End If
        dsp = dsp + 1
        If dsp = dls Then Exit Sub
    Next sp
End Sub
Gruß Dirk
---------------
100  - Wenn du nicht weißt, wo du hin willst, ist es egal, welchen Weg du einschlägst.

[-] Folgende(r) 1 Nutzer sagt Danke an DIZA für diesen Beitrag:
  • ibu
Antworten Top
#7
(18.12.2022, 19:47)rate mit schrieb: bezugnehmend auf Echo's Vorschlag könnte man es so ausführen...

Funktioniert perfekt. Ganz herzlichen Dank! Und natürlich auch an echo.
: )

Hallo Dirk,

vielen Dank für den Code.

Kann man auch bei MS365 für macOS solchen Code als Makro speichern und ausführen?

Gruß, Andreas
VG Andreas

--
Genutzte Version: MS Office 365 für Mac

Antworten Top
#8
Hi,

es gibt zwar einige Unterschiede zwischen Excel für Windows und Excel für MacOS (Dateizugriff, Userformen etc.), aber die excel-internen Dinge sind davon nicht betroffen.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
[-] Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:
  • ibu
Antworten Top
#9
Wenn du MS Office 365 hast, dann kannst du auch die Funktion FILTER verwenden...


Code:
=WENN(FILTER(Tabelle1!$A$2:$E$20;Tabelle1!$A$1:$E$1=1;"")=0;"";FILTER(Tabelle1!$A$2:$E$20;Tabelle1!$A$1:$E$1=1;""))
[-] Folgende(r) 1 Nutzer sagt Danke an rate mit für diesen Beitrag:
  • ibu
Antworten Top
#10
(19.12.2022, 19:52)rate mit schrieb: Wenn du MS Office 365 hast, dann kannst du auch die Funktion FILTER verwenden...
Erst dachte ich, dass die vorgeschlagene Funktion FILTER alle Spalten, die nicht leer sind, auf Tabellenblatt 2 ausgeben kann.

Aber dagegen spricht die "0" und die "1", die Du im Ergebnis verwendest.

https://support.microsoft.com/de-de/offi...77ad80c759

Mir ist die Intention noch nicht ganz klar. Schreibst Du bitte nochmal kurz, was Du Dir vorstellst.
VG Andreas

--
Genutzte Version: MS Office 365 für Mac

Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste