Saltar al contenido

Problema con fórmula


Recommended Posts

publicado

Buenas noches

Necesito vuestra ayuda en una fórmula que tengo que hacer en una celda y, tras muchos intentos, no consigo hacerla ?; tengo que hacer una fórmula que calcule la cantidad de dinero a conceder a una persona en función de su número de miembros y sus ingresos. Hasta aquí ningún problema (fáci); pero hay una dificultad añadida y es que hay aplicar un índice corrector a los ingresos totales según la edad de los miembros. Os paso a describir (a ver si me explico):

_ Máximo ingresos en función del número de miembros:

  • 1 miembro (máximo  de ingresos 869 euros);
  • 2 miembros ; máximo 1158 (*)
  • 3 miembros: máximo 1448 (*)
  • 4 miembros o más: máximo 1737 (*)

         (*) Índice corrector: miembros de la unidad familiar con menores a cargo hasta 18 años hasta el máximo de 5 menores:

  • De 0 a 3 años: incremento de 100 euros / menor.
  • Mäs de 3 años a 6 años: incremento de 70 euros / menorLibro 1.xlsm
  • Mäs de 6 años hasta 18 años: incremento de 50 euros / menor.

        Por ejemplo: si tenemos una unidad familiar formada por tres miembros (un adulto, un menor de 3 años y un menor de 10 años), a los ingresos máximos que corresponden por número de miembros total (3) que serían 1448 euros, habría que aplicar el indice corrector que serían en este caso concreto: 1598 ingresos máximos (1448+100+50). Precisamente es este punto donde no sé cómo hacer la fórmula para que  a los ingresos de la unidad familiar me aplique el índice corrector 

_ Por otra parte, hay que calcular el porcentaje y cuantía a conceder según en el tramo en el que se encuentre los ingresos una vez aplicado el índice corrector 

         100% : tramo de ingresos de 0 a 39% del límite de ingresos establecidos (arriba indicados).

          80%: tramo de ingresos de 40% a 59% del límite de ingresos establecido

          50%: tramo de ingresos del 60%  a 100% del límite de ingresos establecido.

Estas dos cosas tambien las he sacado (fácil).

No se si he conseguido explicarme. Os adjunto una hoja de excel para que sea más claro.

Agradeceria mucho vuestra ayuda!!!!

 

publicado

Hola,

Te adjunto un archivo simplificado al máximo con una forma de solucionar tu petición; espero que no tengas problemas en adaptar las fórmulas a tu situación particular.

No debes introducir datos en las celdas con fondo amarillo: son fórmulas.

La última parte de tu petición (porcentaje y cuantía a conceder según tramos........), no la veo clara, así que no he hecho nada, pero supongo que no importa porque dices que ya las has sacado.

Si te queda alguna duda o falta algún planteamiento, vuelve a esta consulta...

Saludos,

Ayudas.xlsx

publicado
En 15/7/2022 at 15:24 , Victor7 dijo:

Hola,

Te adjunto un archivo simplificado al máximo con una forma de solucionar tu petición; espero que no tengas problemas en adaptar las fórmulas a tu situación particular.

No debes introducir datos en las celdas con fondo amarillo: son fórmulas.

La última parte de tu petición (porcentaje y cuantía a conceder según tramos........), no la veo clara, así que no he hecho nada, pero supongo que no importa porque dices que ya las has sacado.

Si te queda alguna duda o falta algún planteamiento, vuelve a esta consulta...

Saludos,

Ayudas.xlsx 9.58 kB · 2 descargas

Muchas gracias por tu ayuda. Me ha sido de gran utilidad!!!

Archivado

Este tema está ahora archivado y 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.