Jump to content

Formula en columna de "cálculo automático"


gogua

Recommended Posts

Hola , 

A ver si soy capaz de explicarme. 

Estoy intentando hacer un inventario "sencillo" para la gestión de EPIs y Vestuario Laboral de mi empresa.Más o menos tengo lo que necesito aunque poco a poco iré añadiendo cosas

Una libro excel con 2 hojas (ARTICULOS  , ENTRADAS Y SALIDAS).

En ARTICULOS introduzco los productos con un codigo maestro y me sirve para ver el stock actual de todos los productos.

En ENTRADAS Y SALIDAS voy introduciendo los articulos utilizando el CODIGO de forma manual o utilizando la "lupa" que hay encima de la columna Ent./Sal. En la columna Existencia actual lo que pretendo es ven en cada momento , haya entrada o salida de artículo, como estába el inventario en ese momento (fecha). Para ello utilizo la formula. 

=SUMAR.SI.CONJUNTO($J$7:J7;$C$7:C7;[@CODIGO])

y este código se replica en toda la columna de forma automática.

 

image.thumb.png.0396d8b45aee379a8ea5978e285a0810.png

Pero me ocurre, que cuando inserto un nuevo registro, ya sea manual o con la lupa, esa formula me la cambia y me hace el sumatorio de toda la columna  para el CODIGO en concreto en la posición-fila anterior y ya no me va haciendo lo que pretendo, sino que me hace el inventario total.

 

image.thumb.png.f7922750eff031c17ead0d804a3f57fd.png

 

Os dejo el fichero, que quizás se pueda ver mejor lo que quiero explicar y su funcionamiento.

 

gracias

 

 

Inventario_01 - copia.xlsm

Edited by gogua
Link to comment
Share on other sites

¡Hola, @gogua!

El tema de los rangos expandibles en tabla tienen un comportamiento "peculiar" cuando llegan al final de la misma.  Entonces, una opción para trabajar con ellos es "jugar" con las referencias estructuradas.  Tu fórmula, al tener un solo criterio, puede usarse con la función SUMAR.SI de la siguiente forma:

=SUMAR.SI(C$7:[@CODIGO];[@CODIGO];J$7:[@[Ent./Sal.]])

¡Pruébala y comentas! ¡Bendiciones!

Link to comment
Share on other sites

Hace 17 minutos , gogua dijo:

@John Jairo V @Gerson Pineda

Gracias a los 2 por la respuesta, cada día me sorprendo más de lo poco que se de excel, la verdad.

Aunque sigo sin entender el comportamiento erratico de mi "formula" 😭

 

gracias 

El resultado no es errático, solo que depende del resultado que buscas

Las tablas, hacen referencias al rango completo de la misma, aquí ya no existe referencias relativas nativamente, por lo tanto la función lo toma como tal

Pero afortunadamente siempre encontraremos métodos y formas de resolver problemas en Excel

Algo mas, el formato tabla tiene mas ventajas respecto a rangos normales, comenzando pe: con el rango dinámico de sus filas 

 

Saludos 

Link to comment
Share on other sites

  • Crear macros Excel

  • Posts

    • =ELEGIR(F20,7500,5000,5000,3500,3500,3500,2500,2500,2500,2500,2500,1500) Espero te sirva  
    • ya te di acceso,me parecio raro que no pudieras entrar pero ya deberias entrar,hace mucho que me suscribi a esta pagina y simpre pude subir mi archivo de ejemplo,pero ahora me doy cuenta que si no pago una tarifa de membresia no podre subir ejemplos para que puedan prestar su ayuda 
    • ya te di acceso,me parecio raro que no pudieras entrar pero ya deberias entrar
    • Coloca esta subrutina y el resultado lo pondrá en la Hoja Principal "E15" hacia abajo... Saludos   Sub concatena()     Set DATOS = Worksheets("Verificar Matriz")     Sheets("principal").Select     Range("E15:E5000").ClearContents     rt = 5     RD = 6     RS = 15     Do While DATOS.Cells(RD, 4) <> ""         pasa = 0         For C = 5 To 22             If DATOS.Cells(RD, C) <> "0" Then                 pasa = pasa + 1             End If         Next         If pasa > 0 Then             CADENA = ""             For C = 5 To 22                 If DATOS.Cells(RD, C) > 0 Then                     If Len(CADENA) > 0 Then                         CADENA = CADENA & ","                     End If                     CADENA = CADENA & C - 4 & "-" & DATOS.Cells(rt, C) & "=" & Chr(34) & DATOS.Cells(RD, C) & Chr(34)                 End If             Next             Cells(RS, "E") = CADENA             RS = RS + 1         End If         RD = RD + 1     Loop End Sub  
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy