Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Binärzahl in Spalten trennen

Binärzahl in Spalten trennen
22.01.2016 09:40:19
Peter
Liebe VBAler,
ich hab mal wieder ein Problem das ich selbst nicht in den Griff bekomme..
Ich hab eine Datei zum auswerten bekommen. Diese enthält Fehlercodes als Dezimalzahl. Die müsste ich in eine Binärzahl umwandeln (hab 16 Bits) damit ich die Fehler zuordnen kann. Jetzt würde ich gerne jeden Bit in eine extra Spalte schreiben. Dadruch könnte ich dann die Codes mit einer Tabelle viel leichter auswerten. Hat da jemand ne Idee oder könnt mir weiterhelfen? Ich benutze ne Function um die Dezimalzahlen in Binärzahlen umzuwandeln. Da ich eben ca. 100 Zeilen habe muss ich das auf jede Zeile einzeln beziehen.. Gibts da evtl. einfach ein Makro das das gleiche macht, dann wär der VBA-Code etwas übersichtlicher?
Noch zum Aufbau der Datei:
Spalte A : Date
Spalte B: Time
Spalte C: Pump
Spalte D: Dezimalzahl
Spalte E: Binärzahl
Für jede Hilfe bin ich sehr dankbar :)
Peter

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: eine Beispieldatei könnte hilfreich sein ...
22.01.2016 09:52:24
...
Hallo Peter,
... in der Du aufzeigst was Du hast, und was Du erzielen möchtest.
Gruß Werner
.. , - ...

AW: eine Beispieldatei könnte hilfreich sein ...
22.01.2016 10:04:53
Peter
Hallo Werner,
danke für deine Aussage. Aber irgendwie kann ich damit nicht richtig was anfangen. Ich füge dir mal eine Beispieldatei bei, das kann dann hoffe ich mal für Klarheit sorgen.
https://www.herber.de/bbs/user/102954.xlsx
Zu meinem Ziel:
Ich würde gerne ein Ecxelfile haben in dem ich die Binärzahl hab. Die einzelnen Bits sollten in je einer Spalte stehen. Dann könnte ich ne Auswertetabelle entwerfen und alle Wissen welcher Fehler vorliegt. So war mal der Plan. Nur dafür finde ich selbst keine Möglichkeit. Wenn du ne andere Idee hättest ewär ich für jede Anregung dankbar.
Hoffe das hilft dir weiter :)

Anzeige
AW: eine Beispieldatei könnte hilfreich sein ...
22.01.2016 10:10:21
Rudi
Hallo,
G2: =TEIL(TEXT($F2;"0000000000000000");SPALTE(A1);1)
und bis V kopieren..
Gruß
Rudi

AW: Binärzahl in Spalten trennen
22.01.2016 12:17:51
Daniel
Hi
wenn du die Dezimalzahl in eine Binärzahl wandeln willst, kannst du die Funktion DEZINBIN verwenden.
diese kann aber maximal 9 Binärstellen (+Vorzeichen) verarbeiten.
maximal 16 bits hast, geht's aber so mit folgender Formel in F2:
=DEZINBIN(GANZZAHL($E2/256);8)&DEZINBIN(REST($E2;256);8)
damit bekommst du die 16-stellige Binärzahl (dh das kleinste Bit steht rechts).
wenn du dann die einzelnen Bits davon auslesen willst, kannst du die TEIL-Funktion verwenden.
dh folgende Formel in G2 (bis V2)
=TEIL($F2;SPALTE(A1);1)
dann kannst du die Formeln soweit wie benötigt runterziehen.
Gruß Daniel

Anzeige
Habe mal Daniels Fmln zusammengelegt, ...
22.01.2016 16:25:24
Luc:-?
…Peter,
denn die sind insgesamt kürzer als meine. Das sähe dann so aus:
 EFGHIJKLMNOPQRSTU
1Alarm 1Alarm 1 Binär
21280000000010000000
3 0000000000000000
45120000001000000000
51280000000010000000
611320000010001101100
7 0000000000000000
81280000000010000000
91280000000010000000
10 0000000000000000
11640000000001000000
1222640000100011011000
13F2[:U12]:=--TEIL(DEZINBIN(GANZZAHL($E2/256);8)&DEZINBIN(REST($E2;256);8);SPALTE(A1);1)
Fml immer schön von links nach rechts und oben nach unten ziehen.
Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Habe mal Daniels Fmln zusammengelegt, ...
25.01.2016 11:22:51
Peter
OK wow, danke für die Hilfe.
Luc genau das war was ich gebraucht habe. Perfekt danke :)

Bitte sehr, gern (Grdlage war Daniel)! owT
28.01.2016 01:46:26
Luc:-?
:-?
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Binärzahlen in Excel aufteilen


Schritt-für-Schritt-Anleitung

Um in Excel eine Dezimalzahl in eine 16-stellige Binärzahl aufzuteilen und diese in separate Spalten zu schreiben, folge diesen Schritten:

  1. Dezimalzahl in Binärzahl umwandeln:

    • Verwende die Funktion DEZINBIN, um die Dezimalzahl in eine Binärzahl umzuwandeln. Wenn du beispielsweise in Zelle E2 die Dezimalzahl hast, schreibe in Zelle F2 die folgende Formel:
      =DEZINBIN(GANZZAHL($E2/256);8)&DEZINBIN(REST($E2;256);8)
    • Diese Formel wandelt die Dezimalzahl in eine 16-stellige Binärzahl um.
  2. Bits in Spalten aufteilen:

    • Um jedes Bit in eine separate Spalte zu schreiben, verwende die TEIL-Funktion. Setze in Zelle G2 die folgende Formel ein:
      =TEIL($F2;SPALTE(A1);1)
    • Ziehe die Formel von G2 bis V2, um alle 16 Bits in die Spalten zu übertragen.
  3. Formeln nach unten kopieren:

    • Kopiere die Formeln in den Zellen F2 bis V2 nach unten, um die Umwandlung für alle 100 Zeilen zu wiederholen.

Häufige Fehler und Lösungen

  • Fehler: #WERT! in DEZINBIN-Funktion:

    • Stelle sicher, dass die Eingabe für DEZINBIN im richtigen Bereich liegt. Die Funktion kann nur Werte bis 511 verarbeiten, wenn du die Standardversion verwendest. Bei größeren Zahlen solltest du die oben genannte Methode mit GANZZAHL und REST verwenden.
  • Problem mit der Bitanzahl:

    • Wenn du mehr als 16 Bits benötigst, kannst du die Formel in Zelle F2 anpassen, um mehr Bits zu erzeugen oder eine benutzerdefinierte VBA-Funktion schreiben.

Alternative Methoden

  • VBA-Makro für die Umwandlung: Du kannst auch ein VBA-Makro erstellen, das die Umwandlung der Dezimalzahlen in Binärzahlen automatisiert. Hier ein einfaches Beispiel:
    Sub ConvertToBinary()
      Dim rng As Range
      Dim cell As Range
      Dim binaryStr As String
      Set rng = Range("E2:E100") ' Bereich anpassen
      For Each cell In rng
          binaryStr = WorksheetFunction.Dec2Bin(cell.Value, 16)
          ' Bits in Spalten aufteilen
          For i = 1 To 16
              cell.Offset(0, i).Value = Mid(binaryStr, i, 1)
          Next i
      Next cell
    End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die Umwandlung nutzen kannst:

  • Beispiel 1: Wenn du die Dezimalzahl 256 in Zelle E2 hast, wird die Binärzahl in Zelle F2 0000000100000000 sein, und die Bits werden in den Zellen G2 bis V2 verteilt.

  • Beispiel 2: Eine Dezimalzahl wie 512 wird in der Binärzahl 0000001000000000 dargestellt.


Tipps für Profis

  • Komplexere Binärzahlen: Wenn du mit Binärzahlen arbeitest, die größer als 16 Bits sind, nutze die DEZINBIN Funktion für größere Werte oder schreibe eine benutzerdefinierte Funktion in VBA.

  • Formatierung: Du kannst die Zellen für die Binärzahlen formatieren, um sicherzustellen, dass sie immer 16 Stellen anzeigen (z.B. durch Verwendung von TEXT-Funktion).


FAQ: Häufige Fragen

1. Wie kann ich eine Dezimalzahl größer als 512 in Binärzahlen umwandeln?
Verwende die angegebene Formel in F2, die GANZZAHL und REST kombiniert, um die Umwandlung in 16 Bits zu ermöglichen.

2. Gibt es eine Möglichkeit, die Binärzahlen automatisch zu aktualisieren?
Ja, du kannst ein VBA-Makro verwenden, um alle Dezimalzahlen in deinem Arbeitsblatt automatisch in Binärzahlen umzuwandeln und die Bits in separate Spalten zu schreiben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige