
Ich habe eine Tabelle mit Daten, die aus anderen Tabellen stammen. Die Formeln in den Zellen meiner Tabelle sind recht einfach (Verweis auf eine Zelle in einem anderen Arbeitsblatt).
In meiner Tabelle habe ich „Titel“-Zeilen (in diesem Fall Zeilen 57 und 64), die nur einen Textwert enthalten, den ich in benachbarte Zellen überlaufen lassen möchte, da die benachbarten Zellen in diesen Zeilen immer leer bleiben.
Wenn die Werte in der Tabelle manuell eingegeben würden, gäbe es kein Problem und die Zelle würde genauso aussehen, wie ich es möchte, wie im Bild unten.
Der Wert der ersten Zelle in Zeile 57 läuft nicht über, da die angrenzende Zelle eine Formel enthält (die Formel lautet im Wesentlichen „=OtherCell“, wobei OtherCell keinen Wert enthält (genauer gesagt einen Wert von „“)).
Es ist wichtig zu beachten, dass sich die Position der Zeile „Titel“ ändert und in vielen Zeilen der Tabelle vorkommt, da die Daten automatisch aus einer Datenbank extrahiert werden.
Wie kann ich das erreichen...
- Ohne manuelles Eingreifen (das sind automatisierte Berichte, ich kann keine Formeln löschen, da der nächste generierte Bericht fehlerhaft wäre)
- VBA kann verwendet werden, jedoch nicht auf eine Weise, die die Tabelle „irreversibel“ ändert (so dass bei der nächsten Berechnung des Blattes die Daten fehlerhaft sind), aus demselben Grund wie bei einem manuellen Eingriff.
Ich verwende Excel 2013, aber ich glaube, diese Frage gilt für Excel-Versionen ab 2007.
Antwort1
Die kurze Antwort lautet: Das können Sie nicht.
Die ausführliche Antwort lautet, dass nur in wirklich leeren Zellen Text aus der nächsten Zelle links hineinlaufen und in dieser Zelle angezeigt werden kann.
So funktioniert Excel.
Wenn Sie speziellausschließenmanuelles Eingreifen, Löschen von Formeln sowie VBA, es bleibt eigentlich nichts anderes übrig, als die Vorgabe zu akzeptieren, d.h. dass eine Formel in einer Zelle rechts verhindert, dass Text nach rechts überläuft.
Erschießen Sie nicht den Überbringer der schlechten Nachricht.
Antwort2
Wenn Sie das wirklich tun möchten, könnten Sie eine komplizierte Formel für die Zelle ganz links erstellen, die das handhaben soll. Dadurch könnten die Daten der Tabelle nicht direkt in weiteren Berechnungen verwendet werden, und die zweite und dritte Spalte würden nicht wirklich verwendet, was einen Benutzer stören könnte. Aber es würde funktionieren, die Daten UND den vollständigen Eintrag in der ersten Spalte anzuzeigen. Man könnte sie entfernen, was es für Benutzer angenehmer machen könnte.
Da es in der ersten Spalte explizit numerische und alphanumerische Einträge gibt, aber KEINE alphanumerischen Einträge, könnte man dies zunächst mit ISTEXT(). If NOT, then one has the current formula for that column AND the formulas for the second and third columns. One would need to
TEXT() testen, indem man jeden umbricht und bei Bedarf Leerzeichen für das Erscheinungsbild hinzufügt, aber das Aussehen könnte erreicht werden, allerdings mit einigem Aufwand.
Wenn der Test erfolgreich ist, enthält die Zelle einfach das aktuelle Textergebnis, ohne dass die zweite und dritte Spalte gelesen werden, da diese, so wie ich es verstehe, nichts enthalten.
Würde man zwischen der ersten/zweiten Spalte eine bestimmte Anzahl von Leerzeichen verwenden und zwischen der zweiten/dritten Spalte eine andere Anzahl, könnte das eine verlässliche Grundlage dafür sein, die Daten aus der Tabelle zu ziehen und anderswo zu verwenden.
Wenn man sie jedoch an anderer Stelle verwendet, kann man auch einfach die Formeln verwenden, die zum direkten Ausfüllen dieser Tabelle verwendet werden, ohne etwas in der Tabelle nachzuschlagen, sondern die Suche auf erster Ebene in den Quelldaten durchzuführen. Also eine direkte Suche statt einer Suche in bereits nachgeschlagenem Material. In gewisser Weise etwas „sauberer“.
Antwort3
Mit VBA können Sie Zellen ungültig machen, die eine Formel enthalten, die nichts ergibt:
Private Sub CommandButton21_Click()
For Each c In Worksheets("yourworksheet").Range("yourrange")
If c.Text = "" Then c.Select: Selection.ClearContents
Next
End Sub
Somit können benachbarte Zellen über leere Zellen hinausragen.
Antwort4
Um das gewünschte Erscheinungsbild zu erhalten, müssen Sie Ihre Quelldaten neu strukturieren. Anstatt solche Abschnittsüberschriften zu verwenden, nehmen Sie den Wert dieser Abschnittsüberschriften und fügen Sie ihn in eine neue Spalte in jeder Zeile ein, die mit diesem Abschnitt verknüpft ist. Das würde folgendermaßen aussehen:
Wenn Sie Ihre Quelldaten nicht auf diese Weise nativ anordnen können, können Sie dies selbst tun, indem Sie SVERWEIS und/oder INDEX/VERGLEICH kreativ einsetzen, um Zeilen zu finden, bei denen Spalte B in den Quelldaten leer ist.
Anschließend können Sie diese Daten verwenden und eine PivotTable erstellen, die sie zusammenfasst und die Sie dann in das Layout bringen können, das Sie ursprünglich wollten. Hier ist ein Modell davon (ich habe die Felder „Seite“, „Umsatz“ und „Beschreibung“ so eingestellt, dass sie das tabellarische Layout verwenden, alle Summen deaktiviert und die Anzeige der Schaltflächen zum Erweitern/Reduzieren deaktiviert):