
Beim Erstellen einer Datenbank dürfen die Zellen maximal 250 Zeichen lang sein. Beim Eingeben von Daten möchte ich, dass die erste Zelle maximal 250 Zeichen lang ist. Wenn ich weitere Zeichen eingebe, soll der Inhalt automatisch in die nächste benachbarte Zelle überlaufen, bis wieder 250 Zeichen erreicht sind, und dann wieder in die nächste benachbarte Zelle. Dafür habe ich drei Spalten eingerichtet.
Antwort1
Es gibt eine Möglichkeit, die nichts Besonderes erfordert (keine Makros oder andere nicht... frühlernende... Funktionen): Verwenden Sie zwei Blätter.
Bei Sheet 1
geben Sie die Daten ein, indem Sie sie in Zellen tippen oder einfügen, und bei Sheet 2
haben Sie Formeln, die mit den eingegebenen Daten arbeiten. Die Formeln nehmen einfach die Eingabe an Sheet 1
und teilen sie nach Bedarf auf. Wenn Sie fertig sind, mit einem Stapel oder allem, müssen Sie ein oder zwei Dinge tun. Sie konvertieren die Formeln mit in Werte Paste|Special|Values
und kümmern sich dann um die leeren Zellen, wenn Ihre Datenbank true benötigt, NULL's
wo in Excel „Leerzeichen“ vorhanden sind. Ich gehe davon aus, dass Sie das Zweite benötigen – verwenden Sie andernfalls einfach den Kern der Formeln.
In die Zelle wurden also Sheet1!A2
Daten eingegeben. Die Zellen sollen die aufgeteilten Daten enthalten. Sie werden das vorgeschlagene Ergebnis der Kernformel auf Leerzeichen testen und etwas zurückgeben, das in diesem Fall NIEMALS auftreten könnte. Ich werde in der Formel ein einfaches „PPP“ verwenden, aber Sie könnten höhere Unicode-Zeichen oder vielleicht die alten 128-255-Codes zum Zeichnen von Rändern verwenden.A2:C2
Sheet 2
Spalte A enthält einfach:
=LEFT(Sheet1!A2,250)
Spalte B erhält:
=MID(Sheet1!A2,251,250)
Spalte 3 erhält:
=MID(Sheet1!A2,501,250)
Beachten Sie, dass Spalte 3 nicht verwendet wird RIGHT()
, da die Ermittlung der zu verwendenden Zeichenanzahl komplizierter wäre als der einfache Ansatz hier. Was das funktioniert, ist, dass es MID()
egal ist, ob 501 Zeichen vorhanden sind oder ob danach 250 Zeichen vorhanden sind. Andernfalls erhalten Sie ein Leerzeichen und keinen Fehler. Also halten Sie es einfach, oder?
Jeder muss in einen IF()
Test eingebunden werden, um zu sehen, ob ein Leerzeichen zurückgegeben wird. Wenn dies der Fall ist, muss der eindeutige Wert zugewiesen werden. Wenn nicht, muss das Ergebnis stehen bleiben.) Spalte 1, zum Beispiel:
=IF(LEFT(Sheet1!A2,250)="","PPP",LEFT(Sheet1!A2,250))
Dieselbe Technik für alle drei Spalten. Wenn Sie alles unterhalb der tatsächlich verwendeten Zeilen leer haben möchten (sinnlos für drei leicht zu prüfende Spalten, aber vielleicht machen Sie das irgendwann mit 320 Spalten), dann packen Sie alles in ein anderes, IF()
das prüft, ob die entsprechende Zelle Sheet 1
leer ist oder nicht. Was Sie zurückgeben, könnte kompliziert sein, es gibt viele Möglichkeiten, aber wenn es Ihnen nichts ausmacht, den eindeutigen Wert zurückzugeben, können Sie diese beiden IF()'s
zu einem kombinieren, um eine AND()
der beiden Bedingungen zu testen. Wie bereits erwähnt, könnten auch einige andere nützliche Ansätze verfolgt werden.
So … jetzt haben Sie die Daten aktiviert Sheet 2
und alle schön wie gewünscht aufgeteilt. Copy
Und Paste|Special|Values
um Daten und keine Formeln daraus zu machen, geben Sie Search and Replace
den eindeutigen Wert ein, wobei im Feld buchstäblich nichts angegeben ist, um echte Leerzeichen zu erstellen, sodass Sie nach dem Importieren Replace
„true“ haben .NULL's
Halten Sie die Formeln natürlich irgendwo ( Sheet 3
vielleicht) bereit, um sie bei der nächsten Verwendung wieder an ihren Platz einzufügen.
Führen Sie abschließend Ihren Import durch.
Nur ein paar einfache Formeln, die Werte daraus machen, leer aussehende Zellen in wirklich leere Zellen umwandeln, und schon sind Sie fertig.