Cuando ingresamos una función sin argumentos ni paréntesis (por ejemplo, "=PROMEDIO"), al aceptarla, Excel nos devolverá el error #¿NOMBRE?, ya que interpreta que quisimos introducir un nombre, el cual no está definido.
¿O no?
Hace poco, estuve trabajando en un modelo con fechas en Excel. Como necesitaba calcular el número de días hábiles entre dos fechas, me dispuse a utilizar la función DIAS.LAB. Sin embargo, al comenzar a escribir la fórmula, presioné (accidentalmente) Enter justo después de escribir el nombre de la función (es decir "=DIAS.LAB", Enter). Inesperadamente Excel devolvió:
840368184
De dónde viene este número, a qué se refiere o por qué se obtiene precisamente este número y no otro, es algo que ignoro completamente. Como este comportamiento fue completamente inesperado, quise reproducirlo en otros equipos. Mismo resultado. Me pregunté también si esto ocurriría con otras funciones, así que ingresé =SUMA, =MIN, =DESREF, =DERECHA, =EXTRAE, entre otras. En todos estos casos obtuve el resultado esperado #¿NOMBRE?. Sin embargo, al probar con =CONVERTIR Excel devolvió:
638844971.
Otros resultados fueron:
=DIA.LAB devuelve 1679294519
=FRAC.AÑO devuelve 734789689
Incluso hay resultados negativos. =NUM.DE.SEMANA devuelve -601489317.
Concluí que esto es un comportamiento exclusivo de las funciones del complemento Herramientas para análisis (para una lista completa de sus funciones y resultados, clic aquí).
Al continuar con esta "experimentación", probé ahora con funciones de otros complementos que he descargado de la red. Por ejemplo, con =COUNTDIFF obtuve: 1769668796. Similar comportamiento observé con el resto de las funciones de mis complementos. Posteriormente, traté con algunas funciones personalizadas. En todos los casos el resultado fue #¿NOMBRE?. Así pues, tuve que modificar mi teoría original: Este comportamiento ocurre con cualquier función perteneciente a cualquier complemento (Herramientas para análisis o cualquier otro). No ocurre con funciones nativas de Excel ni con funciones definidas por el usuario (FDU o UDF).
Dado que todo esto me pareció muy extraño, envié un correo a John Walkenbach sobre esto. Este fue mi mensaje original:
That's pretty strange. It doesn't happen in Excel 2007 because the ATP functions are now built-in.
I have Excel 2003 installed, but I didn't install the ATP. I'll see if I can find the original CD and install the ATP to check it out.
Regards,
John
Si algún lector tiene idea de por qué se producen estos números misteriosos, por favor háganoslo saber. Entre tanto, veré que obtengo de las distintas discusiones que surjan sobre esto para comentarlo aquí.
¿O no?
Hace poco, estuve trabajando en un modelo con fechas en Excel. Como necesitaba calcular el número de días hábiles entre dos fechas, me dispuse a utilizar la función DIAS.LAB. Sin embargo, al comenzar a escribir la fórmula, presioné (accidentalmente) Enter justo después de escribir el nombre de la función (es decir "=DIAS.LAB", Enter). Inesperadamente Excel devolvió:
840368184
De dónde viene este número, a qué se refiere o por qué se obtiene precisamente este número y no otro, es algo que ignoro completamente. Como este comportamiento fue completamente inesperado, quise reproducirlo en otros equipos. Mismo resultado. Me pregunté también si esto ocurriría con otras funciones, así que ingresé =SUMA, =MIN, =DESREF, =DERECHA, =EXTRAE, entre otras. En todos estos casos obtuve el resultado esperado #¿NOMBRE?. Sin embargo, al probar con =CONVERTIR Excel devolvió:
638844971.
Otros resultados fueron:
=DIA.LAB devuelve 1679294519
=FRAC.AÑO devuelve 734789689
Incluso hay resultados negativos. =NUM.DE.SEMANA devuelve -601489317.
Concluí que esto es un comportamiento exclusivo de las funciones del complemento Herramientas para análisis (para una lista completa de sus funciones y resultados, clic aquí).
Al continuar con esta "experimentación", probé ahora con funciones de otros complementos que he descargado de la red. Por ejemplo, con =COUNTDIFF obtuve: 1769668796. Similar comportamiento observé con el resto de las funciones de mis complementos. Posteriormente, traté con algunas funciones personalizadas. En todos los casos el resultado fue #¿NOMBRE?. Así pues, tuve que modificar mi teoría original: Este comportamiento ocurre con cualquier función perteneciente a cualquier complemento (Herramientas para análisis o cualquier otro). No ocurre con funciones nativas de Excel ni con funciones definidas por el usuario (FDU o UDF).
Dado que todo esto me pareció muy extraño, envié un correo a John Walkenbach sobre esto. Este fue mi mensaje original:
Hi John:
=CONVERT
Notice that I didn’t put the parenthesis. The cell shows:
638844971
That happens only whit add-in’s functions. With any other Excel built-in function we get #NAME?
Other examples:
=NETWORKDAYS produces 840368184
=WEEKNUM, -601489317
That's pretty strange. It doesn't happen in Excel 2007 because the ATP functions are now built-in.
I have Excel 2003 installed, but I didn't install the ATP. I'll see if I can find the original CD and install the ATP to check it out.
Regards,
John
Si algún lector tiene idea de por qué se producen estos números misteriosos, por favor háganoslo saber. Entre tanto, veré que obtengo de las distintas discusiones que surjan sobre esto para comentarlo aquí.
Hola, me hago llamar ckarlanga, y navegando por los foros di con esta info que me pareció bastante curiosa y sobre todo que alguien la mencionara, siendo un curioso del excel, estuve tratando de abrir la funcion de distribución normal, para ello intenté dar con el complemento que en excel lo contenía y me di la lata de abrir uno por uno los complementos, y por ahí di con el paquete que contiene atpvbes.xla atpvben.xla analisys32.xll funcres.xla y procdb.xla, les saque las claves a estos archivos y en los ATP tanto español como ingles, se encuentra la funcion networkdays y dias.lab, este es el codigo
ResponderBorrarFunction Networkdays(start_date As Variant, end_date As Variant, Optional holidays As Variant) As Variant
Networkdays = Application.Run(GetMacroRegId("NETWORKDAYS"), start_date, end_date, holidays)
End Function
cuando uno ejecuta esa function desde el excel va a esta funcion que ejecuta una funcion base para todas las creadas dentro de este paquete llamada GetMacroRegId
esta a su vez, si logras convertir el archivo xla a xls, tiene una descripcion de cada una de las funciones hechas dentro del xla
Private Function GetMacroRegId(FuncText As String) As String
Debug.Print ("[GetMacroRegId] '" & FuncText & "' <")
For i = LBound(FunctionIDs) To UBound(FunctionIDs)
If (LCase(FunctionIDs(i, 0)) = LCase(FuncText)) Then
If (Not (IsError(FunctionIDs(i, 1)))) Then
GetMacroRegId = FunctionIDs(i, 1)
Debug.Print ("[GetMacroRegId] '" & FuncText & "' -> '" & GetMacroRegId & "' >")
Exit Function
End If
End If
Next i
Debug.Print ("[GetMacroRegId] Error while finding '" & FuncText & "' >")
End Function
dentro del xla covertido a xls tienes esto ...
Function table
Labels VBAname Module Procedure Type text Function text Argument text Macro type Category Shortcut text Help topic Help text Arg1 Arg2 Arg3
HEX2DEC Hex2Dec hex2dec PP# HEX.A.DEC número 1 Ingeniería xlmain10.chm!1929 Convierte un número hexadecimal en decimal es el número hexadecimal que desea convertir
(encabezados)
y estos son los datos
NETWORKDAYS Networkdays networkdays PPPP# DIAS.LAB fecha_inicial;fecha_final;festivos 1 Fecha y hora xlmain10.chm!1963 Devuelve el número total de días laborables entre dos fechas es un número de serie que representa la fecha inicial es un número de serie que representa la fecha final
el codigo al que haces referencia 840368184, es el id de la macro que tiene adentro la formula de calculo de los dias habiles, apenas tenga una respuesta especifica dentro de que archivo se encuentra ( lo mas probable un dll) te lo informo...
un saludo...
perdona lo enredado de la respuestas... pero a esta hora no pienso más...
Gracias por el aporte. Puedes consultar mi lista de resultados obtenidos en la nota:
ResponderBorrarhttp://lqrexceltotal.blogspot.com/2008/10/lista-de-funciones.html
Saludos.