Leon, hasta que valores pueden tomar tus numeros decimales? Se me ocurre que lo que podes hacer es que si es mayor a 512 le reste 512 y convierta a binario el resto y despues le sumas en binario los 512 convertidos, me explico?
Esta es la ayuda de la funcion
DEC.A.BIN(número;caracteres)
Número es el número entero decimal que se desea convertir. Si el número es negativo, los valores de los caracteres se pasan por alto y DEC.A.BIN devuelve un número binario de 10 caracteres (10 bits) donde el bit más significativo es el bit de signo. Los 9 bits restantes son bits de magnitud. Los números negativos se representan usando la notación complementaria de 2.
Caracteres es el número de caracteres que se va a utilizar. Si el argumento caracteres se omite, DEC.A.BIN usa el mínimo número de caracteres requerido. El argumento caracteres es útil para completar el valor devuelto con ceros (0) a la derecha.
Observaciones
Si el argumento número < -512 o si número > 511, DEC.A.BIN devuelve el valor de error #¡NUM!
Si el argumento número es un valor no numérico, DEC.A.BIN devuelve el valor de error #¡VALOR!
Si DEC.A.BIN requiere más caracteres para el argumento caracteres, devuelve el valor de error #¡NUM!
Si el argumento caracteres no es un número entero, se trunca.
Si el argumento caracteres es un valor no numérico, DEC.A.BIN devuelve el valor de error #¡VALOR!
Si el argumento caracteres es cero o un número negativo, DEC.A.BIN devuelve el valor de error #¡NUM!