Saltar al contenido

[SOLUCIONADO] Soy nuevo y necesito ayuda con una formula logica!!!


Recommended Posts

publicado

Hola a todos!!! :):)

soy nuevo aqui y necesito ayuda con una formula logica, explico mi duda...

tengo cuatro columnas que simbolisan las 4 semanas del mes, (semana 1, semana 2...) y en la 5ta columna es un acumulado... lo que necesito es que la columna 5 (acumulado) solo se llene con la ultima celda que tenga valor, osea que si estoy en la semana 2 solo tome los datos de b2, si estoy en la semana 3 tome el valor de c3,

esto es lo que trate de hacer pero solo me funciona con las primeras 2 filas, espero que alguien pueda ayudarme!!!

=SI(D2>=C2,D2,(SI(C2>=B2,C2,(SI(B2>=A2,B2,(SI(A2>=0,A2,D2)))))))

de lo que se trata es que me vaya dando el acumulado de ventas hasta la semana en que este...

Gracias....

publicado

Respuesta: Soy nuevo y necesito ayuda con una formula logica!!!

Hola Luis Fernando.

¿Me podrías explicar porqué utilizas 9E+307 en la búsqueda?

Gracias.

publicado

Respuesta: Soy nuevo y necesito ayuda con una formula logica!!!

Hola Fernando

Se trata de poner en la búsqueda un número que sabes positivamente va a ser imposible de encontrar, así la función te devolverá el valor de la última celda con datos del rango.

En el adjunto tienes otras opciones una general, otra limitad y la análoga de la propuesta por Luis para texto.

Un saludo desde Vitoria

ÚltimoDato_io_fae.zip

publicado

Respuesta: Soy nuevo y necesito ayuda con una formula logica!!!

Gracias Ioyama por la explicación. Sospechaba que era eso, pero me ha despistado la consulta que he realizado a la ayuda de excel ya que pone que:

Si BUSCAR no puede encontrar el valor_buscado, utiliza el mayor valor de la matriz que sea menor o igual al valor_buscado.

Pone el mayor valor, no el último. No termino de verlo claro.

Saludos.

publicado

Respuesta: Soy nuevo y necesito ayuda con una formula logica!!!

Hola Fernando

Textual de mi ayuda de excel (v11)

BUSCAR

Devuelve un valor procedente de un rango de una fila o columna o de una matriz (matriz: utilizada para crear fórmulas sencillas que producen varios resultados o que funcionan en un grupo de argumentos que se organizan en filas y columnas. Un rango de matriz comparte una fórmula común; una constante de matriz es un grupo de constantes utilizadas como un argumento.). La función BUSCAR tiene dos formas de sintaxis: vectorial y matricial. La forma vectorial de BUSCAR busca en un rango de una fila o de una columna un valor (vector) y devuelve un valor desde la misma posición en un segundo rango de una fila o de una columna. La forma matricial de BUSCAR busca el valor especificado en la primera fila o en la primera columna de la matriz y devuelve un valor desde la misma posición en la última fila o columna de la matriz.

No me coincide con lo que comentas (sólo lo digo como curiosidad)

Un saludo desde Vitoria

publicado

Respuesta: Soy nuevo y necesito ayuda con una formula logica!!!

Vale yo miraba el desarrollo de la ayuda y no la descripción inicial donde efectivamente pone (más resumido) lo que me indicas.

A partir de ahora leeré con más atención las descripciones además de los desarrollos.

Gracias y un cordial saludo.

publicado

Respuesta: Soy nuevo y necesito ayuda con una formula logica!!!

Mira el anexo he usado algo muy diferente a lo que propones, es así:

Muchas Gracias Luis Fernando!!!

Ya con esta ayuda he terminado de formular mi hoja trabajo, me ha sido de mucha ayuda tu apoyo, ademas de que fue muy rapido...

muchas gracias :):)

No puedo subir el archivo por que no tengo compresor en zip, pero ya quedo

muchas gracias!!!!

publicado

Respuesta: Soy nuevo y necesito ayuda con una formula logica!!!

Hola Fernando

Se trata de poner en la búsqueda un número que sabes positivamente va a ser imposible de encontrar, así la función te devolverá el valor de la última celda con datos del rango.

En el adjunto tienes otras opciones una general, otra limitad y la análoga de la propuesta por Luis para texto.

Un saludo desde Vitoria

Muchas Gracias Ioyama!!!

Tambien tu ejemplo me ha sido de mucha ayuda, no para el archivo en el que estaba trabajando pero si para otros mas, ademas de aprenderlo para otras ocaciones...

Gracias

saludos de

Caborca Sonora, Mexico

publicado

Respuesta: Soy nuevo y necesito ayuda con una formula logica!!!

Este tema ha sido resuelto, pero no se si aqui es donde se reporta el rema como resuelto!!!

Si no es aqui agradeceria su ayuda...:mad::confused:

Invitado
Este tema está cerrado a más respuestas.
  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      188
    • Comentarios
      98
    • Revisiones
      29

    Más información sobre "Cambios en el Control Horario"
    Última descarga
    Por pegones1

    4    1

  • Crear macros Excel

  • Mensajes

    • Hola, veo que tienes 365, así que esta forma funcionará   Almacen.xlsx
    • Buenos días  @LeandroA espero estes bien Tengo un caso idéntico al planteado en la siguiente pregunta: Sin embargo, a diferencia de quien planteo originalmente la pregunta al correr el código no obtengo ningún resultado podrían ayudarme a resolver este inconveniente y que al hacer click en el Botón Guardar (CommandButton3) del Formulario RCS (frmrcs) el archivo pdf quede configurado con orientación vertical, márgenes superior, inferior, derecho e izquierdo = 1 y en página tamaño carta. Si acaso influye uso Microsoft Excel LTSC MSO (versión 2209 Compilación16.0.1.15629.20200) de 64 bits Mucho le sabre agradecer la ayuda que me pueda dar  RCS PRUEBA - copia.xlsm
    • @JSDJSDCon gusto mi estimado Para la opción 1: Sub Surtirhastadondealcanse() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 4 Dim filaFin As Integer: filaFin = 7 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Else solicitudes(i) = 0 End If surtido(i) = "POR FALTA STOCK" Next i ' Surtir de acuerdo al inventario disponible For i = 1 To numClientes If solicitudes(i) > 0 Then If inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) ElseIf inventario > 0 Then surtido(i) = inventario totalSurtido = totalSurtido + inventario inventario = 0 Else surtido(i) = "POR FALTA STOCK" End If End If Next i ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = "POR FALTA STOCK" Then .Value = surtido(i) .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Para la opción 2:   Sub surtirenpartesiguales() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 13 Dim filaFin As Integer: filaFin = 16 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 Dim totalPedido As Double: totalPedido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) totalPedido = totalPedido + solicitudes(i) Else solicitudes(i) = 0 End If surtido(i) = 0 Next i ' Si hay suficiente inventario, surtir lo que el cliente pide If inventario >= totalPedido Then For i = 1 To numClientes If solicitudes(i) > 0 And inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) End If Next i Else ' Reparto base igualitario Dim baseSurtido As Long baseSurtido = Int(inventario / numClientes) For i = 1 To numClientes If solicitudes(i) > 0 Then If solicitudes(i) <= baseSurtido Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) Else surtido(i) = baseSurtido inventario = inventario - baseSurtido totalSurtido = totalSurtido + baseSurtido End If End If Next i ' Repartir sobrante restante uno por uno, respetando lo pedido Do While inventario > 0 For i = 1 To numClientes If surtido(i) < solicitudes(i) Then surtido(i) = surtido(i) + 1 totalSurtido = totalSurtido + 1 inventario = inventario - 1 If inventario = 0 Then Exit For End If Next i Loop End If ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = 0 Then .Value = "POR FALTA STOCK" .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Saludos, Diego
    • Buenos dias.  Estoy trabajando en una hoja para poder llevar un control de un pequeño almacén.  Tengo un pedido con varias líneas y "lotes" y necesito sacar las ubicaciones que coincidan con la referencia y lote que pone en el pedido. El problema viene cuando tengo la misma referencia y mismo lote en ubicaciones diferentes y necesito sacar la información en columnas diferentes. No se si  me he explicado bien, pero creo que con el ejemplo adjunto se entiende mejor. Agradecería mucho si me pudieran ayudar  Libro1.xlsx
    • Exelente solución mil gracias 
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.