Seleccionar y asignar precio

Tengo un listado extenso de existencias y tengo que identificar el precio de la ultima compra. Para ello, primero debo ordenar los productos por fecha y en función de ésta crear un nuevo archivo donde detalle el producto y la ultima fecha de compra
Para hacerlo más claro, cree un ejemplo con 3 productos y cada uno tiene 3 compras. Necesito identificar el precio de la ultima compra por producto
Artículo Fecha Precio
DVD 06-09-2007 580
Televisor 01-05-2007 120
Radio 11-03-2007 240
Televisor 05-03-2007 130
Televisor 21-07-2007 111
Radio 23-04-2007 201
DVD 14-06-2007 620
Radio 30-04-2007 233
DVD 22-09-2007 640
El resultado debería ser el siguiente:
Articulo Fecha Precio
DVD 22-09-2007 640
Radio 30-04-2007 233
Televisor 21-07-2007 111
De lo poco que se de macros creo que esto podría hacerse con una, por eso necesito tu ayuda
Te agradeceré si me puedes ayudar ya que lo necesito urgente para mi trabajo
Mucha gracias

3 respuestas

Respuesta
1
Creo que no sea necesario hacerlo con macros, hay unas funciones de base de datos que te pueden ayudar con eso, la primera sería para sacar la fecha de la última venta por artículo.
Mi base de prueba estaba en A1:C10,
En F1:H1 escribí:
Artículo Fecha Precio
DVD
Entonces en G2 pones =BDMAX($A$1:$C$10,$B$1,F1:F2) esto calcula la fecha de la última venta para los DVD
Y en H2 pones:
=BDPROMEDIO($A$1:$C$10,$C$1,F1:G2)
Eso calcula el precio promedio de venta (espero que todos sean iguales en una misma fecha, puse promedio por si había varias ventas) de los DVD para la fecha obtenida con la fórmula anterior, después copias esas fórmulas y sus encabezados en otras celdas y cambias DVD por televisor, radio, etc y te va dando los valores que necesitas.
Espero haber atendido tu consulta, si no es clara por favor me avisas para explicarme mejor, de lo contrario te pido el favor de valorar la respuesta de acuerdo a la oportunidad y utilidad de la misma.
Cordialmente,
cmera
Gracias por tu respuesta
Pero existirá una forma de que me informe los productos en una lista (como la que indico en el ejemplo), ya que son millones de productos y crear un resumen por cada uno es demasiado
Quedo a la espera de tu respuesta
No me imaginé que fueran tantos productos.
OK, entonces lo que podemos hacer es una tabla dinámica que calcule la última fecha de venta de cada artículo (con Max de Fecha), y después calculamos el valor de venta de ese día, insisto, todo va a fallar si se da el caso en que el último día se venda el artículo con dos o más precios diferentes, en ese caso la fórmula arrojará el promedio de dichos precios.
Bueno, lo que hice fue nombrar los rangos de cada cosa para que la fórmula fuera más legible, entonces suponiendo que los resultados de la tabla dinámica están distribuidos así:
Máx de Fecha
Artículo Total
DVD 22/09/2007
Radio 30/04/2007
Televisor 21/07/2007
y que DVD y 22/09/2007 están en A21 y B21 respectivamente, entonces la fórmula sería:
=SUMAPRODUCTO((Articulos=A21)*(fechas=B21)*precios)/SUMAPRODUCTO((Articulos=A21)*(fechas=B21))
Si estás seguro de que sólo habrá una venta por artículo en la última fecha puedes eliminar la parte que va desde el "/" en adelante que lo que hace es dividir la suma por la cantidad de registros encontrados con esos dos criterios.
Espero haber atendido tu consulta, si no es clara por favor me avisas para explicarme mejor, de lo contrario te pido el favor de valorar la respuesta de acuerdo a la oportunidad y utilidad de la misma.
Cordialmente,
cmera
Cree la tabla dinámica sin problema, pero no me funciona la fórmula
No sé si me puedes ayudar y me podrías enviar un archivo excel
mail: [email protected]
Gracias por tu atención
Carolina
OK te envío en un minuto el archivo de prueba que hice, si no te funciona envíame el tuyo y lo reviso a ver que es lo que ocurre.
Cordialmente,
cmera
Respuesta
1
Primero debieras ordenar la tabla por: Prod (ascendente) y fecha (descendente)
Esto te dará una tabla donde el primer registro de cada producto es el de la última fecha.
Ahora sí para obtener un resumen utilizarás la siguiente macro. El resumen se grabará en la hoja 2 a partir de A2 (colocar a la col B formato fecha)
La rutina cópiala en un módulo y podes llamarla desde el menú herramientas:
Sub UltimoPrecio()
' Macro grabada el 09/07/2007 por Elsamatilde
'
Dim prod As String
Dim fila As Integer
ActiveSheet.Range("A2").Select
prod = ActiveCell.Value
fila = 2
'guardo en hoja2 el primer prod
Sheets("Hoja2").Cells(fila, 1).Value = ActiveCell.Value
Sheets("Hoja2").Cells(fila, 2).Value = ActiveCell.Offset(0, 1)
Sheets("Hoja2").Cells(fila, 3).Value = ActiveCell.Offset(0, 2)
prod = ActiveCell.Value
fila = fila + 1
ActiveCell.Offset(1, 0).Select
'pasa a fila sgte y recorre toda la tabla
While ActiveCell.Value <> ""
'compara si se trata del mismo prod
If ActiveCell.Value <> prod Then
'grabo sgte prod
Sheets("Hoja2").Cells(fila, 1).Value = ActiveCell.Value
Sheets("Hoja2").Cells(fila, 2).Value = ActiveCell.Offset(0, 1)
Sheets("Hoja2").Cells(fila, 3).Value = ActiveCell.Offset(0, 2)
prod = ActiveCell.Value
fila = fila + 1
End If
ActiveCell.Offset(1, 0).Select
Wend
End Sub
Saludos y no olvides finalizar.
Elsa
**Para aprender macros necesitas el manual 400Macros explicadas en español. Podés descargar la demo desde:
Sabes que no me funciona la macro, me entrega la misma información que la original
El resultado que me debe entregar es el siguiente
Articulo Fecha Precio
DVD 22-09-2007 640
Radio 30-04-2007 233
Televisor 21-07-2007 111
Podrías ayudarme a que la macro genere este resultado. Que implica filtrar por fecha y en función de esta arrojar el ultimo valor
Gracias
Si quieres te puedo mandar el archivo excel
En todo caso mi correo es [email protected]
Creo que no leíste bien la respuesta y te faltó ordenar previamente la tabla.
Te envié el ejemplo a tu correo.
Saludos y comentame si lo resolviste.
Muchas gracias por la información... te pasaste
Te envíe una nueva consulta a tu e-mail podrías revisarla...
Muy agradecida por tu ayuda
REspuesta enviada al correo.
Respuesta
1
Pásame una dirección de mail...
Otra forma "fácil" es hacerlo con Tablas dinámicas. Selecciona la base, andá al menú Datos y seleccioná Informe de tablas y gráficos... a partir de allí creo que te puedes guiar pero cualquier cosa repregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas