En Excel como hago para sumar progresivamente

Tengo una columna donde quiero que se vaya asignando un numero de manera progresiva (1,2,3,), imagino que debe utilizarse una fórmula que diga algo así como que al valor de la celda anterior se le sume 1 para que las celdas sucesivas vayan ascendiendo paulatinamente (espero haber podido explicarme). Muchas gracias! POSDATA: es como para arrojar un numero de reporte cada vez que se genere una nueva información

1 respuesta

Respuesta
1

.19/10/16

Buenos días, Ana

Efectivamente, si quieres que una fórmula agregue números consecutivos en una columna, digamos desde A2, puedes colocar en esa celda la siguiente fórmula:

=A1+1

Si, eventualmente quisieras condicionar que tal número aparezca sólo si hay algún dato en la celda adyacente a ella (a la derecha), puedes usar esta variante (siempre en A2):

=SI(LARGO(B2)>0;A1+1;"")

[Considera si usas comas o punto y coma para separar argumentos de las funciones. Yo usé ";"]

.

.

Buenas, de nuevo

Si, eventualmente quisieras que esa numeración se hiciera automáticamente, sin necesidad de fórmula alguna, puedes recurrir a una rutina autojecutable, como la que te comparto a continuación.

Para que funcione, activa el editor de Visual Basic (presiona Alt+F11) y en el panel de la izquierda busca la hoja donde quieres que esto ocurra. Da doble click sobre ella. (Otra forma de llegar a este punto es hacer click derecho sobre la solapa de esta hoja y elegir la opción "Ver Código)

Allí pega el siguiente procedimiento:

Private Sub Worksheet_Change(ByVal Target As Range)
'---- Variables modificables:
'=== ANA, modifica estos datos de acuerdo a tu proyecto:
Col = "B" ' Columna donde ingresas los reportes
'---- fin Variables
'
'---- inicio de rutina:  
Col = Range(Col & "1").Column
If Target.Column = Col Then Target.Offset(0, -1).Value = Target.Offset(-1, -1) + 1
End Sub

Entonces cada vez que ingreses un dato en la columna B, colocará un número consecutivo a su izquierda (en la columna A)

Desde luego, deben estar desactivada la protección de macros para que esto funcione.

Es sólo una alternativa más sofisticada que la respuesta anterior.

Saludos

Fer

.

MIL GRACIAS por tu tiempo! esas opciones me funcionarían si la trabajo en una tabla pero lo que estoy intentando es que desde un formulario cuando ingrese los datos me arroje el numero de reporte. (si voy por el reporte Nª4, al capturar los datos y abrir un nuevo reporte me arroje automáticamente el reporte Nª5)

.

Ok, Ana

Como no mencionaste que se trataba de un formulario, pensé que era sobre una hoja de MS Excel

Haría falta saber, dónde aloja el número consecutivo anterior, pero voy a suponer que es en una columna de tu planilla, por ejemplo: "A" . Luego podrás cambiar la columna en la variable que te dejo en el siguiente código:

'... otras lineas de tu código 
'  
Col = "A" ' o la columna donde está la serie de números de reporte
UltFila = Range(Col & Rows.Count).End(xlUp).Row
ElRango = Range(Col & "1", Col & UltFila)
'calcula siguiente:
Siguiente = Application.WorksheetFunction.Max(ElRango) + 1
'Para dejar el valor siguiente al final del rango anterior:  
Range(Col & UltFila + 1).Value = Siguiente
'... sigue tu código

Desde luego, deberás incorporar estas líneas a la rutina que tengas desarrollada para tu formulario, seleccionando -además- en qué hoja debe ejecutarse.

Espero que te haya sido "util"

Saludos

Fernando

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas