Excel no recalcula correctamente los valores

Excel no recalcula correctamente los valores

Tengo una hoja de Excel con valores (esta hoja se genera mediante un script Perl personalizado, pero no creo que ahí esté el problema). En él tengo una fórmula:

=sum(indirect(concatenate(address(6,column()),":",address(17,column()))))

El propósito de esta fórmula es darme el SUM()número de celdas en la columna actual, entre las filas 6 y 17. EnHoja de cálculo numérica, tan pronto como abro el archivo, esto funciona. Pero en Excel (ambos de 2003y2007), al abrir el archivo se obtienen #VALUE!errores en los campos con esta fórmula, indicando que la INDIRECTllamada con los valores $B$6:$B$17dará como resultado un error.

Aquí está el problema del asunto. Si edito el campo (a través de F2) y hagoNocambia, y presiona enter, los valores se actualizan. Además, parece que si guardo el archivo como .xlsx (formato Excel 2007), los valores se actualizan al abrirlo. Desafortunadamente, no estoy seguro de que crear un xlsxsea posible con los módulos que estoy usando, y muchos de nuestros clientes probablemente no podrían usarlo de todos modos.

¿Alguna sugerencia? Editar más de 200 archivos cada mes para cada cliente no será factible, así que si me falta algo, hágamelo saber.

Respuesta1

Si inserta una función Suma básica, ¿funciona? Es decir, ¿se puede atribuir el problema a un componente de la combinación indirecta/dirección?

¿Has intentado usar OFFSET para crear el rango que se va a sumar? Por ejemplo:

=SUM(OFFSET(B6,0,0,12,1))

Respuesta2

Puede que te estés agarrando a un clavo ardiendo, pero puedes probar la referencia de estilo R1C1

=SUM(INDIRECT("R["&7-ROW()&"]C:R["&17-ROW()&"]C",FALSE))

O si las fórmulas siempre están en la fila 19, establezca el estilo de referencia en R1C1

Application.ReferenceStyle = xlR1C1

Luego puedes insertar la fórmula como

=SUM(R[-13]C:R[-2]C)

Actualizar:

Puedes evitar la necesidad de configurar ReferenceStyle usando

<YourCellReference>.FormulaR1C1 = "=SUM(R[-13]C:R[-2]C)"

Respuesta3

Tal vez podrías forzar un nuevo cálculo de toda la hoja de cálculo con esto:

http://msdn.microsoft.com/en-us/library/bb687891.aspx

Cambiar el nombre de una macro y luego cambiar nuevamente el nombre de la hoja de cálculo debería funcionar bien. ¿Quizás podrías ejecutarlo al final del guión perlado? Realmente no sé mucho sobre Pearl, lo siento.

O use la tecla de acceso rápido CTRL+ALT+F9 y si funciona use VBA con esta función:Aplicación.CalcularCompleto

Respuesta4

En Excel Tools | Calculationspuede configurar el modo de cálculo. Si se establece en "Automático", Excel debería actualizar los resultados de la fórmula de todos los campos automáticamente, también al abrir el archivo.

La configuración de cálculo también se puede establecer para hojas de trabajo individuales, por lo que tal vez sea posible que el script Perl establezca el modo de actualización manual.

información relacionada