Calcular veces que se repite 0 desde el ultimo valor

Hola, necesito calcular los dias sin inventario partiendo desde la ultima vez que hubo. Por ejemplo: 1200056008700000 asumiendo que cada numero esta en una celda que cuente solo los ceros luego del 7 es decir la ultima celda con un valor mayor a cero.

Muchas gracias de antemano por su ayuda.

2 respuestas

Respuesta
1

Para emplearlo en columnas debe ser:

Function ceros(rango As Range)
c = 0
i = rango.Cells(1, 1).Column
f = rango.Columns.Count + i - 1
col = rango.Row
For j = f To i Step -1
If Cells(col, j) = 0 Then
c = c + 1
Else
Exit For
End If
Next
ceros= c
End Function

Respuesta
1

¿Esto aplica solamente para una celda?

¿El resultado que esperas es 5 ceros ó "00000" ó simplemente 5?

¿Y dónde quieres el resultado?

Y en cuál celda tienes esto: "1200056008700000"

Es simplemente 5, cada  numero esta en una celda diferente es decir 1200056008700000 

A1, a2, etc... el resultado es en una celda aparte que es el calculo de los dias que van ya en inventario 0

Sigue las Instrucciones para una Función

1. Abre tu libro de excel

2. Para abrir VBa y poder pegar la función, Presiona Alt + F11

3. En el menú elige Insertar / Módulo

4. En el panel del lado derecho copia la función

5. En cualquier celda utiliza la función, como cualquier otra función de excel

Function ceros(celda As Range)
'Por.Dante Amor
    num = celda.Text
    c = 0
    For i = Len(num) To 1 Step -1
        If Mid(num, i, 1) = 0 Then
            c = c + 1
        Else
            Exit For
        End If
    Next
    ceros = c
End Function

Ejemplo, suponiendo que tus datos están en la columna A, en la celda B1 pon la función =ceros(A1), como se muestra en el ejemplo:

Copia o arrastra la fórmula hasta la última fila con datos.

Muchas Gracias,  pero esta funcion calcula los ceros dentro de una cantidad yo necesito contar las celdas a 0 luego de la ultima con valor mayor a 0 es decir si a1=0, b1=3, c1=0, d1=0 que cuente solo c1 y d1 por que son los ceros luego del ultimo valor que es 3.

Saludos

Puedes explicarlo con ejemplos o con imágenes, ya que te pregunte si solamente querías el 5 y contestaste que sí.

Procura poner ejemplos reales para que puedas explicarlos, utiliza las celdas que tienes en tu hoja de excel.

También puedes armar un cuadro y me dices en dónde quieres el resultado:

            A                     B                  C                  D                  E

1 Título Título Título Título Resultado

2 dato dato dato dato x

3 dato dato dato dato y

4 dato dato dato dato z

Ya entendí

Cambia el código de la función por esta

Function ceros(rango As Range)
'Por.DAM
    c = 0
    i = rango.Cells(1, 1).Row
    f = rango.Rows.Count + i - 1
    col = rango.Column
    For j = f To i Step -1
        If Cells(j, col) = 0 Then
            c = c + 1
        Else
            Exit For
        End If
    Next
    ceros = c
End Function

Ahora debe quedar así, debes poner la función =ceros(A2:A9) 

Dentro de los paréntesis debes poner el rango de celdas a evaluar. Ver ejemplo:

Cambia A9 por el último valor que tengas con 0.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas