Seite 1 von 1

=wert() ichbrauche Hilfe..

Verfasst: Mo, 05.02.2007 17:31
von arttur
hallo,

Ich habe in einer Tabelle Daten (Zahlen, die leider als Text formatiert sind) es sind zb:

26,59 - sechsundzwanzig usw

1,255,555 - eine Million usw…



also kleinere Zahlen aber auch große;ich versuchte die dann mit =wert() umzuwandeln leider geht das nur bei Zeilen wo Komma nur 1 mal vorkommt (zb 26,59) .ich habe dann alle Komma mit Punkt ersetzt dann hat die Umwandlung nur bei 1,255,555 funktioniert .

Wie kriege ich es hin damit ich alle „Zahlen als Text“ in richtige Zahlen umwandeln kann?



Hat einer eine Idee..

Verfasst: Mo, 05.02.2007 19:00
von komma4
Mehrere Ideen :-)

a) Markiere die Zellen, dann: "Standardformatierung"; Tastenkombi.: Strg+Umschalt+Leertaste, der erste Menüpunkt im "Format"

b) wenn "leider als Text formatiert" bedeutet, dass ein Apostroph vor den Zahlen steht, gibt's zwei Möglichkeiten: Suchen&Ersettzen manuell, oder mittels Makro (falls die Aufgabe öfter mal anfällt.

b1) geht mit S&E: suche nach "^." ('Dach'-Punkt; also ohne die Gänsefüsschen), ersetze durch: "&" (kaufm. Und, ebenfalls ohne "); "Mehr Optionen" aufklappen, markiere: Reguärer Ausdruck, ersetze alle (in der Selektion?).


b2) ist dann genau dieses als Makro:

Code: Alles auswählen

Sub calc_Txt2Num
' changing cells with aphostroph to number formatted cells

sModulName = "calc_Txt2Num "
sModulVersion = "2005-08-18"

' get document reference
oDok = ThisComponent

' check if document is spreadsheet
If Not oDok.supportsService(_
	"com.sun.star.sheet.SpreadsheetDocument" ) Then
	MsgBox _
		"Makro wurde nicht von einem Calc-Dokument aufgerufen." & CHR(10) _
		& CHR(10) & "Erklärung:" _
		& CHR(10) & "Dieses Makro entfernt aus den markierten Zellen alle" _
		& CHR(10) & "vorangestellten Apostrophen, so dass die Zellen " _
		& CHR(10) & "nummerisch formatiert sind." _
		& CHR(10) _
		& CHR(10) & "Makro " & sModulName & " wird nun beendet." _
		, 48 , sModulName & sModulVersion
	Exit Sub
End If

' get selection
oSel = oDok.getCurrentSelection

' selection of cells?
If Not oSel.supportsService(_
	"com.sun.star.table.CellProperties" ) Then
	MsgBox _
		"Keine Auswahl getroffen." & CHR(10) _
		& CHR(10) & "Erklärung:" _
		& CHR(10) & "Ohne die Auswahl einer Zelle oder eines Zellbereichs" _
		& CHR(10) & "kann dieses Makro nicht arbeiten." _
		& CHR(10) & "Die momentane Auswahl ist kein Zellbereich." _
		& CHR(10) _
		& CHR(10) & "Makro " & sModulName & " wird nun beendet." _
		, 48 , sModulName & sModulVersion
	Exit Sub
end if


oErsetzen = oSel.createReplaceDescriptor()
oErsetzen.SearchString = "^."
oErsetzen.ReplaceString = "&"
oErsetzen.SearchRegularExpression = True
oSel.ReplaceAll( oErsetzen ) 

End Sub
Klappt für Werte, die (nach Ländereinstellung) richtig formatiert sind: Deine 1,255,555 ist keine Million,ebbes, sondern verbleibt als Zeichenkette (linksbündig) in der Zelle.

Probier's mal (wie immer) mit einer Sicherungskopie...
Hilft das?