Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Spezielle benutzerdefiniertes Zahlenformat
#1
Hallo liebe Gemeinde,

ich muss gerade eine Liste von Brandschutzklappen erstellen. Eine Brandschutzklappe (BSK) hat folgende Bezeichnung: 03.9.02. Wenn ich die Zellen als Text formatiere, geht das einigermaßen. Excel gibt eine Warnung aus, Zahl als Text erkannt. Da ich diese Bezeichnungen weiter verarbeite, möchte ich auf Textformatierung verzichten. Ich habe es mit benutzerdefinierter Formatierung versucht: 00.0.00, da ich die führenden Nullen zwingend benötige. Leider kommt da nichts vernünftiges dabei raus: 37.502.
Schaue ich mir meine selbst erstellt Formatierung an, hat Excel ohne Rückfrage das daraus gemacht: 00.000

Jetzt bin ich mit meinem Latein am Ende...

Vielen Dank für Eure Anregungen Smile

Candalfo
Antworten Top
#2
Moin

Versuche mal:
Code:
00"."0"."00
Wir sehen uns!
... Detlef

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

[-] Folgende(r) 1 Nutzer sagt Danke an shift-del für diesen Beitrag:
  • Candalfo
Antworten Top
#3
Moin Detlef,

You made my day! Smile

Vielen Dank und einen schönen Sonntag noch,
Candalfo
Antworten Top
#4
Hi,

mal ne doof Frage: Wie willst du 03.9.02 als Zahl weiter verarbeiten? Macht es Sinn die BSK 03.09.02 mit der BSK 03.09.03 zu addieren, so dass BSK 06.18.05 raus kommt? Ich denke eher nicht. Also ich würde die Dinger schon als Text formatieren.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#5
Moin,

das ist schriftlich jetzt nicht so einfach zu erklären. Die Quelle der Daten rekrutiert sich aus Zahlen, was da Etage, Anlagennummer und laufende Nummer sind. Dazu die Herausforderung mit den führenden Nullen, da der Kennzeichnungsschlüssel für jedes Element feste Anzahl an Zeichen hat.
Es geht nicht ums addieren, aber die Strings muss ich mehrfach verwenden. Dazu werden sie zerlegt oder mit anderen Sachen kombiniert. Die Tabelle (Datenquelle) habe ich leider nicht von Grund auf selbst erstellt, sonst hätte ich hier schon ein System implementiert. So wusel ich mich jetzt durch das Formatierungs-Wirrwarr und versuche das gewünschte Ergebnis zu bekommen. Übermorgen muss das funktionieren...
Antworten Top
#6
Noch ne doofe Frage bzw. ein doofer Vorschlag:
geht es Dir "nur" um das Einsparen der Punkte, weil Du schnell per Ziffernblock in eine als Text formatierte Zelle eingeben willst?
Dann ginge per VBA folgendes:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo EventsTrue
Application.EnableEvents = False
Target = Format(Target, "@@.@.@@")
EventsTrue: Application.EnableEvents = True
End Sub

08703
ergibt dann
08.7.03

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#7
Ein Grund pro Zahl könnte Speicherbedarfunterschied sein. Eine Zahl benötigt in Excel mWn 15 Byte. Bei Text ist es immer mehr. Spielt heute nicht mehr die Rolle. Außerdem: Die Formatierung wird gleich mitgegeben; beim Text müsste man die Punkte ja selbst setzen. Ist ein erheblicher Punkt.
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • Candalfo
Antworten Top
#8
Moin Ralf,

nein, um eine komfortable Eingabe geht es nicht. Es entsteht Programmcode und ca. 30 Zeichen lange Kennzeichnungsschlüssel aus verschiedenen Angaben. Hier muss ich in den Quelldaten teilweise Teile von Strings erst zerlegen und wieder neu kombinieren. Da macht sich eine Mischung aus Text und Zahlen nicht gut.
Antworten Top
#9
Hi,

Und wieso willst du dann Zahlen haben? Huh

Wenn du deine Zahl in Etage, Anlage, laufende Nr. zerlegen willst, dann brauchst du so etwas wie
Etage: =GANZZAHL(A1/1000)
Anlage: =GANZZAHL(REST(A1;1000)/100)
lfd.Nr.: =REST(A1;100)

Bei einem Text wäre es:
Etage: =LINKS(A1;2)
Anlage: =TEIL(A1;4;1)
lfd.Nr.: =RECHTS(A1;2)

Bei Text und aktuellem Excel (oder mit dem CSE-Addin) für alle drei Angaben nebeneinander: =TEXTTEILEN(A1;".")
bzw. einzeln:
Etage: =SPALTENWAHL(TEXTTEILEN(A1;".");1)
Anlage: =SPALTENWAHL(TEXTTEILEN(A1;".");2)
lfd.Nr.: =SPALTENWAHL(TEXTTEILEN(A1;".");3)

Per VBA wäre es in allen Excel-Versionen
Array_Etage_Anlage_lfdNr = Split(Cells(1, 1), ".")
Etage = Split(Cells(1, 1, ".")(0)
Anlage = Split(Cells(1, 1, ".")(1)
lfdNr = Split(Cells(1, 1, ".")(2)


Die Varianten für das aktuelle Excel bzw. VBA haben den Charme, dass man eben nicht unbedingt an die führenden Nullen oder die einstellige Anlage gebunden ist, sondern einfach nur an die Punkte.

Also ich würde eindeutig Textangaben bevorzugen.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
[-] Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:
  • Candalfo
Antworten Top
#10
Hallo,

ja, Du magst Recht haben...alles auf Text basierend auszuführen, wäre wahrscheinlich der bessere Weg. Das ganze Ding ist gewachsen und die Datenquelle stammt nicht von mir und war in den verschiedensten Formaten (Excel als Tabellenschreibmaschine verwendet).
Ich musste ein wenig probieren, da ich Probleme mit den Punkten und den führenden Nullen hatte. Vielleicht hatte ich auch einen Fehler dazwischen. Auf jeden Fall Zeitdruck, heute hat ja keiner mehr Zeit... Deine Hinweise sind sehr spannend, vielen Dank dafür. Smile In einem neuen Projekt werde ich sie ausprobieren.  Thumps_up

Viele Grüße
Candalfo
Antworten Top


Gehe zu:


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