Registriert seit: 27.01.2023
Version(en): Office 365
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

Candalfo
Registriert seit: 12.04.2014
Version(en): Office 365
Wir sehen uns!
... Detlef
Meine Beiträge können Ironie oder Sarkasmus enthalten.
Registriert seit: 27.01.2023
Version(en): Office 365
Moin Detlef,
You made my day!

Vielen Dank und einen schönen Sonntag noch,
Candalfo
Registriert seit: 28.08.2022
Version(en): 365
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
Registriert seit: 27.01.2023
Version(en): Office 365
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...
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
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)
Registriert seit: 21.12.2017
Version(en): MS 365 Family (6 User x 5 Geräte für jeden) Insider-Beta
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:1 Nutzer sagt Danke an LCohen für diesen Beitrag 28
• Candalfo
Registriert seit: 27.01.2023
Version(en): Office 365
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.
Registriert seit: 28.08.2022
Version(en): 365
25.09.2023, 17:35
(Dieser Beitrag wurde zuletzt bearbeitet: 25.09.2023, 17:38 von HKindler.)
Hi,
Und wieso willst du dann Zahlen haben?

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:1 Nutzer sagt Danke an HKindler für diesen Beitrag 28
• Candalfo
Registriert seit: 27.01.2023
Version(en): Office 365
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.

In einem neuen Projekt werde ich sie ausprobieren.

Viele Grüße
Candalfo