excel von binär ins dezimalsystem

...komplette Frage anzeigen

6 Antworten

Neben dem, was ich zu dkilli geschrieben hab, jetzt noch meine BinToDez-Rückumwandlungs-{Matrixformel} (Binärzahl in A1):

{=SUMME(TEIL(A1;ZEILE(INDIREKT("1:"&LÄNGE(A1)));1)*WAHL(20-LÄNGE(A1)+ZEILE(INDIREKT("1:"&LÄNGE(A1)));2^19;2^18;2^17;2^16;2^15;2^14;2^13;2^12;2^11;2^10;2^9;2^8;2^7;2^6;2^5;2^4;2^3;2^2;2^1;2^0))}

Achtung: Dies ist eine Matrixformel!
Die geschweiften {Klammern} NICHT miteingeben, sondern die Formel anstatt mit einfachem Enter mit der Kombination Strg+Shift+Enter abschließen (nach jeder Neubearbeitung wieder!). Die {Klammern} entstehen dann automatisch.
Schreibtechnisch nimmst Du am besten die rechte Strg- und Umschalttaste, dann gehts mit einer Hand und lässt sich auch leichter merken!
(komischerweise hab ich das mit Summenprodukt nicht richtig hingekriegt!)

ich hab die Formel für bis zu 11111111111111111111 ==> 1048575=2^20-1 ausgearbeitet (xlsx hat 2^20 Zeilen). Das geht aber nur, wenn die Binärzahl als Text vorliegt. Ab 15 Stellen lassen sich wegen der xl-Genauigkeitsbegrenzung bei Zahlen nur noch Nullen hinzufügen:
11111111111111100000 = 1048544.
Es ist also sinnvoll, um nicht plötzlich eine unangenehme Überraschung zu erleben, generell mit Binär-Texten zu arbeiten.

Der Auswertebereich ließe sich leicht auf bis ca.2^47 erweitern, ab dann reduziert sich die Genauigkeit des Ergebnisses. Braucht man aber nur die Größenordnung, liesse sich die Zahl der Argumente vom WAHL bis zu -ich glaube- 255 steigern, das wären dann schätzungsweise gut 10^75, also schon nahe der größt-anzunehmenden Zahl Googol (10^100)
Mit Sicherheit ließe sich analog auch eine mächtigere Formel für DezInBin() finden, aber mir reicht es jetzt erst mal!
(wenn Du übrigens nur RGB-Werte umrechnen willst, dann reichtt auch DezInBin, es gibt aber auch die Makrofunktion RGB, die die drei Teilstücke verarbeitet, was ja ebenfalls bei (255,255,255) (Basis 0; alsBasis 1 ausgedrückt: 256;256;256) eine 2^24 ergibt(daher die 1Mio Farben), aber da müsste man tricksen und den Binärstring in drei Abschnitte zerlegen und getrennt auswerten:
000000000000000011111111;000000001111111100000000;111111110000000000000000, die ließen sich mit den Faktoren 1, 256=2^8 und 256^2=2^16 wieder verknüpfen, aber das nur am Rande)

In Excel 2010 kann man BININDEZ verwenden. Ich weiß nicht, ob es das auch schon in 2002 gibt. Falls nicht, schreibe ich dir noch ein VBA-Makro...

Suboptimierer 11.06.2014, 17:37

Achja, die VBA-Funktion:

Public Function Bin2Dez(rBinZahl As Range)
  Dim i As Integer
  Dim sBinZahl As String

  Bin2Dez = 0
  sBinZahl = CStr(rBinZahl.Value)
  For i = 1 To Len(sBinZahl)
    If Mid(sBinZahl, Len(sBinZahl) - i + 1, 1) = "1" Then _
      Bin2Dez = Bin2Dez + 2 ^ (i - 1)
  Next
End Function
0

Du musst auf Extras-> Add-Ins->Analyse-Funktionen ein Häkchen machen. Ist bei 2003 so

Aber warum verwendest du noch so eine Version von MS Office? Es gibt bessere und kostenlose Programme.

Eine sehr stark abgespeckte Version von MS Word (Kostet ca. 100 €) in der einfachsten Version. Daher lade dir eine kostenlose Alternative runter.

OpenOffice und Libre Office gibts auch als Portable Version. Die kann man überall mitnehmen. Nur man muss die Verknüpfungen mit den Dateiendungen selber machen. Da OpenOffice mehr kann, als Word, so immer die Dateien im OpenOffice-Format abspeichern! Bei einfachen Texten, teilweise mit Bildern, kann man die Datei auch als Doc oder Docx abspeichern. OpenOffice ersetzt vollständig Word, Excel, Powerpoint, Access und kostet nichts.

Schau hier:

http://www.welt.de/wirtschaft/webwelt/article119203800/OpenOffice-4-kann-locker-mit-MS-Office-mithalten.html.

oder hier:

schuloffice.de/vergleich-microsoft-office-und-open-office.html

Da Gute Frage nur einen Link erlaubt, so die vorhergehende Adresse kopieren und im Browser einfügen!

Libre Office, kann auch z.B. DOCx lesen und schreiben.

gutefrage.net/frage/alternativen-zu-excel

Andere alternativen sind Abiword und Scribus

Office ab 2010 ist in Details besser als Libre Office. Ob du aber dafür bereit bist soviel Geld auszugeben???

Iamiam 11.06.2014, 22:34

Die LO-Funktion heisst Basis(), wenn ich mich recht erinnere und geht bis 2^47(48?). Die xlfunktion DezInBin() macht dagegen schon bei 2^9 Schluss! (511 geht noch, 512 nicht mehr! wie auch umgekehrt bei BinInDez(512)=>-1)
Die Rückumwandlungsformel in LO hab ich noch nicht gefunden .

0
Iamiam 12.06.2014, 00:15
@Iamiam

Rückumwandlung scheint es wirklich nicht zu geben, hab da mal eine Riesenformel bis 2^28 geschrieben (xlsx hat 2^20 Zeilen),
V O R S I C H T , nicht erschlagen lassen, ich hatte in den letzten Tagen einige Formelmonster zu zähmen...):

=WENN(LÄNGE(A1)<1;0;2^0*RECHTS(A1;1))+WENN(LÄNGE(A1)<2;0;2^1*LINKS(RECHTS(A1;2);1))+WENN(LÄNGE(A1)<3;0;2^2*LINKS(RECHTS(A1;3);1))+WENN(LÄNGE(A1)<4;0;2^3*LINKS(RECHTS(A1;4);1))+WENN(LÄNGE(A1)<5;0;2^4*LINKS(RECHTS(A1;5);1))+WENN(LÄNGE(A1)<6;0;2^5*LINKS(RECHTS(A1;6);1))+WENN(LÄNGE(A1)<7;0;2^6*LINKS(RECHTS(A1;7);1))+WENN(LÄNGE(A1)<8;0;2^7*LINKS(RECHTS(A1;8);1))+WENN(LÄNGE(A1)<9;0;2^8*LINKS(RECHTS(A1;9);1))+WENN(LÄNGE(A1)<10;0;2^9*LINKS(RECHTS(A1;10);1))+WENN(LÄNGE(A1)<11;0;2^10*LINKS(RECHTS(A1;11);1))+WENN(LÄNGE(A1)<12;0;2^11*LINKS(RECHTS(A1;12);1))+WENN(LÄNGE(A1)<13;0;2^12*LINKS(RECHTS(A1;13);1))+WENN(LÄNGE(A1)<14;0;2^13*LINKS(RECHTS(A1;14);1))+WENN(LÄNGE(A1)<15;0;2^14*LINKS(RECHTS(A1;15);1))+WENN(LÄNGE(A1)<16;0;2^15*LINKS(RECHTS(A1;16);1))+WENN(LÄNGE(A1)<17;0;2^16*LINKS(RECHTS(A1;17);1))+WENN(LÄNGE(A1)<18;0;2^17*LINKS(RECHTS(A1;18);1))+WENN(LÄNGE(A1)<19;0;2^18*LINKS(RECHTS(A1;19);1))+WENN(LÄNGE(A1)<20;0;2^19*LINKS(RECHTS(A1;20);1))+WENN(LÄNGE(A1)<21;0;2^20*LINKS(RECHTS(A1;21);1))+WENN(LÄNGE(A1)<22;0;2^21*LINKS(RECHTS(A1;22);1))+WENN(LÄNGE(A1)<23;0;2^22*LINKS(RECHTS(A1;23);1))+WENN(LÄNGE(A1)<24;0;2^23*LINKS(RECHTS(A1;24);1))+WENN(LÄNGE(A1)<25;0;2^24*LINKS(RECHTS(A1;25);1))+WENN(LÄNGE(A1)<26;0;2^25*LINKS(RECHTS(A1;26);1))+WENN(LÄNGE(A1)<27;0;2^26*LINKS(RECHTS(A1;27);1))+WENN(LÄNGE(A1)<28;0;2^27*LINKS(RECHTS(A1;28);1))+WENN(LÄNGE(A1)<29;0;2^28*LINKS(RECHTS(A1;29);1))

Die Formel funktioniert sowohl in xl wie in LO/OO.
Für xl dürfte allerdings die µ-Funktion einfacher sein! ( in LO kann ich noch nicht programmieren)
Vllt ginge ja da auch eine Matrixformel, hab ich noch nicht überlegt, (sollte eigentlich gehen, aber ich mag heute nicht mehr!)

0
Iamiam 14.06.2014, 14:44
@Iamiam

Hab die {Matrix}formel in eine eigene AW gefasst, geht!

0
dkilli 30.06.2014, 17:28
@Iamiam

Ob wir von dem Fragesteller(in) jemals eine Antwort bekommen?

:-) Dieter

0

Ohne Lösungsansatz wirst du hier keine Hilfe erwarten können. Du musst es in VBA programmieren? Was meinst du mit Programm?

Was möchtest Du wissen?