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

    • Muchas Gracias Janlui. Funciona perfecto, veras que he añadido a la macro una última línea que es la que crea el fichero final TXT en una ubicación concreta. Lo que no se es porque una vez generado el TXT la última parte la vuelve a entrecomillar (en la hoja 5 del fichero que adjunto veras un pantallazo del TXT que genera) Repito, muchas gracias por la ayuda Saludos       Ejemplo3.xlsm
    • Observé un pequeño error, espero ya esté bien. Sub genera_txt()     Set datos = Worksheets("Hoja1")     Sheets("hoja2").Select     Dim cadena As String     Range("a27:a5000").ClearComments     rd = 2     rs = 27     xc = Chr(34)     Do While datos.Cells(rd, 1) <> ""         cadena = xc & Left(datos.Cells(rd, 3), Len(datos.Cells(rd, 3)) - 6) & xc & "," & xc         For i = 7 To 11             cadena = cadena & datos.Cells(rd, i)         Next         cadena = cadena & xc & "," & xc         For i = 12 To 56             cadena = cadena & datos.Cells(rd, i)         Next         cadena = cadena & xc & "," & xc & datos.Cells(rd, 1) & xc         Cells(rs, 1) = cadena         rs = rs + 1         rd = rd + 1     Loop End Sub  
    • Disculpa que no te lo regrese en el archivo, pero mi nivel de membresía no me permite completar al 100% el apoyo que solicitan.
    • Copia la macro y el resultado lo pondrá en la Hoja2... Saludos Sub genera_txt()     Set datos = Worksheets("Hoja1")     Sheets("hoja2").Select     Dim cadena As String     Range("a27:a5000").ClearComments     rd = 2     rs = 27     xc = Chr(34)     Do While datos.Cells(rd, 1) <> ""         cadena = xc & Left(datos.Cells(rd, 3), Len(datos.Cells(rd, 3)) - 6) & xc & "," & xc         For i = 6 To 10             cadena = cadena & datos.Cells(rd, i)         Next         cadena = cadena & xc & "," & xc         For i = 11 To 56             cadena = cadena & datos.Cells(rd, i)         Next         cadena = cadena & xc & "," & xc & datos.Cells(rd, 1) & xc         Cells(rs, 1) = cadena         rs = rs + 1         rd = rd + 1     Loop End Sub  
    • Todas tus celdas deberán tener formato numérico.
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy