Excel 2007 konvertiert CSV-Felder in Formeln

5963
dlux

Ich habe ein Problem mit einer CSV-Datei, deren Telefonnummern in ihrem internationalisierten Format (+ 1-800-555-1234) gespeichert sind. Beim Öffnen dieser CSV in Excel 2007 werden diese Daten in eine Formel konvertiert und das Ergebnis angezeigt (= 1-800-555-1234; resultiert in -2588).

Wie kann ich Excel anweisen, dieses Feld als Zeichenfolge zu behandeln?

Hier ist ein Beispiel - speichern Sie es in einer CSV-Datei und öffnen Sie es in Excel, um das Problem zu reproduzieren:

Number,Name +1-800-555-1234,Bob +1-800-555-1200,Jim 
7

5 Antworten auf die Frage

11
pelms

Öffnen Sie ein leeres Arbeitsblatt und wählen Sie "Daten> Externe Daten holen> Aus Text" (Layout von Excel 2007). Wenn Sie dann Ihre CSV-Datei öffnen, erhalten Sie den 'Textimport-Assistenten', mit dem Sie bestimmte Spalten als Text anstelle des Standard-'Allgemeines' angeben können.
Möglicherweise müssen Sie auf der ersten Seite des Assistenten die entsprechende Dateiursprungscodierung (z. B. Unicode (UTF-8)) angeben, um die führenden "+" - Zeichen zu erhalten.

Wenn Sie die Datei von .csv in .txt umbenennen und in Excel öffnen, erhalten Sie, wie Diago sagt, den Textimport-Assistenten, ohne dass Sie 'Daten> Externe Daten abrufen' aufrufen müssen.

Das machte den Trick, und ich musste UTF-8 angeben, um "+ 1-" am Anfang des Feldes zu behalten. Vielen Dank! dlux vor 14 Jahren 0
+1 für UTF-8. Ich dachte, das Kodieren könnte einen Effekt haben, kratzte es dann aber als schlechte Idee. BinaryMisfit vor 14 Jahren 0
4
BinaryMisfit

Verwenden Sie beim Speichern der Datei eine TXT-Erweiterung anstelle von CSV. Dadurch wird der Textimport-Assistent gestartet, und Sie können hiermit den Text der Spalte erzwingen.

Die einzige Möglichkeit, dies zu erreichen, besteht darin, einen Apostroph vor das Pluszeichen zu setzen. + 1-8000. Beim Importieren bleibt dies jedoch als Teil der Zeichenfolge erhalten.

Aus dieser Erklärung von CSV kann ich nur ableiten, dass dies eine der Einschränkungen bei der Verwendung des CSV-Formats ist.

Ich würde eher den Import und Export in XML als CSV vorschlagen, wenn überhaupt möglich.

Guter Punkt beim Umbenennen in .txt pelms vor 14 Jahren 1
0
JFV

Klicken Sie mit der rechten Maustaste auf die Zelle -> wählen Sie 'Zelle formatieren' -> Wählen Sie unter 'Kategorie:' Text aus.

Oder legen Sie "" die Daten, die als Text in der CSV-Datei angezeigt werden sollen.

-JFV

Ich habe das ausprobiert und es ändert sich einfach das Ergebnis in Text. Die zugrunde liegenden Daten werden weiterhin als Formel ausgewertet. dlux vor 14 Jahren 0
Selbst wenn die Quelldaten in der CSV doppelte Anführungszeichen enthalten (dh: "+ 1-800-555-1234")? JFV vor 14 Jahren 0
0
joe

Verwenden Sie die TEXT()Funktion.

=TEXT(B1,"+1-800-555-1234") 
Ähnlich wie oben formuliert die TEXT-Formel das Ergebnis von B1 als Text, nicht die zugrunde liegende Zeichenfolge, die noch ausgewertet wird. dlux vor 14 Jahren 0
0
Simon East

Wenn Sie die Erstellung der CSV steuern können, versuchen Sie die hier vorgeschlagene Lösung:

Ich weiß, dass Sie versuchen zu helfen, aber die Antworten zum Kopieren und Einfügen und die Antworten "Antworten Sie hierher" sind im Allgemeinen verpönt. Letzteres (diese Antwort zum Beispiel) ist an sich nicht hilfreich. Fühlen Sie sich frei, die gleichen Informationen zu posten, ja, aber passen Sie sie an jede Frage an. DMA57361 vor 12 Jahren 3