Saltar al contenido

Usar sumar.si con varias columnas


clipp

Recommended Posts

publicado

Estimados

Tengo que realizar una suma de acuerdo a solo un criterio, por eso decidí utilizar sumar.si, pero el rango lo necesito con varias columnas (También filas) y cuando suma solo considera la primera columna.

Espero entiendan lo que necesito.

Saludos.

Prueba.zip

publicado

Hola,

Cambia la primera fórmula del conteo, referencia absoluta, para que sea constante en todo el rango.

=CONTAR.SI($E$4:$I$33,N10)[/HTML]

[b][i][color=#ff0000]Gabriel[/color][/i][/b]

publicado

Gracias Gabriel, aunque esa columna la tengo solo de referencia, para ver la cantidad de actividades de cada uno. Necesito saber como lo hago para que la formula sumar.si me considere las demas columnas, ya que toma y suma solo la primera.

Atte, Claudio

publicado

La columna normal seria E4:E33, pero el rango lo tengo entre E4:I33, si te fijas en los resultados, solo RP tiene suma, mientras que los que estan en la misma fila FB y MM no suma nada porque estan en la columna 3 y 5. yo realice la prueba de poner estos nombres en la primera columna y los sumo de inmediato, mientras los que estan en las columnas siguientes, no los suma.

SI(P10>0;SUMAR.SI(E$4:I$33;N10;D$4:D$33);SI(P10=0;"Sin act";""))[/PHP]

Atte, Claudio

publicado

Hola

Estaba viendo esta planilla, la encuentro media rara, pero traté de ver que podía hacer.

Entiendo que es por día y a las personas les pagan por sus participaciones ese día en algo, porque entonces si es por día no colocas una tarifa diaria en una sola celda para ese día, y para ver cuanto se les va a pagar haces una formula como:

=CONTAR.SI($E$4:$I$18;$N12)*D4[/CODE]

(la puse en la celda Q12)

así tendrías el pago por día de cada uno, después sería una suma mensual por cada persona y listo.

Saludos.

publicado
Hola Chicos;

A ver esto que tal.

Gabriel

si me da el resultado que necesito, pero esto lo debo traspasar a la planilla original y no se insertar las {}, por lo menos con CTRL+MAYÚS+ENTRAR no me resulta.

Gracias por responder, saludos cordiales

Claudio P.

- - - - - Mensaje combinado - - - - -

Hola

Estaba viendo esta planilla, la encuentro media rara, pero traté de ver que podía hacer.

Entiendo que es por día y a las personas les pagan por sus participaciones ese día en algo, porque entonces si es por día no colocas una tarifa diaria en una sola celda para ese día, y para ver cuanto se les va a pagar haces una formula como:

=CONTAR.SI($E$4:$I$18;$N12)*D4[/CODE]

(la puse en la celda Q12)

así tendrías el pago por día de cada uno, después sería una suma mensual por cada persona y listo.

Saludos.

Hola Rodrigo, no es que sea un antojo hacerla así, lo que pasa es que los precios son distintos todos los días y para cada actividad es un valor diferente, ademas las personas que participan también son distintas cada día y para cada actividad.

Gracias por responder.

Saludos, Claudio P

[color=blue]- - - - - Mensaje combinado - - - - -[/color]

Ya lo logre, tenia que tener la formula abierta para poder incorporar la matriz. Tendre que interiorizarme en este tipo de formulas.

Supongo que en definitiva no se puede utilizar sumar.si.

Muchas Gracias a Todos.

publicado
si me da el resultado que necesito, pero esto lo debo traspasar a la planilla original y no se insertar las {}, por lo menos con CTRL+MAYÚS+ENTRAR no me resulta.

Gracias por responder, saludos cordiales

Claudio P.

- - - - - Mensaje combinado - - - - -

Hola Rodrigo, no es que sea un antojo hacerla así, lo que pasa es que los precios son distintos todos los días y para cada actividad es un valor diferente, ademas las personas que participan también son distintas cada día y para cada actividad.

Gracias por responder.

Saludos, Claudio P

- - - - - Mensaje combinado - - - - -

Ya lo logre, tenia que tener la formula abierta para poder incorporar la matriz. Tendre que interiorizarme en este tipo de formulas.

Supongo que en definitiva no se puede utilizar sumar.si.

Muchas Gracias a Todos.

A todo esto eres Claudio o Claudia? porque la info en tu perfil dice que eres mujer :P

publicado
A todo esto eres Claudio o Claudia? porque la info en tu perfil dice que eres mujer :P

JAJAJAJ Soy Claudio y sin problemas de genero... ya esta cambiado en el perfil.

Alguien me puede explicar como funciona lo de las matrices??

Gracias.

publicado
JAJAJAJ Soy Claudio y sin problemas de genero... ya esta cambiado en el perfil.

Alguien me puede explicar como funciona lo de las matrices??

Gracias.

La verdad es que a mi no me gustan mucho las matrices, ocupan mucha memoria del equipo y es un lío actualizarlas, lo digo porque en una planilla enorme hace un tiempo las usaban, y el pc se me quedaba pegado cuando tenía que actualizar, al final cambié esas matrices por otras fórmulas y quedó mucho mejor.

No se si poner el link aqui, pero gogleé esta frase "formulas como matrices en excel" y aparecen explicaciones de como funcionan, aunque insisto en que no me gustan. Debe haber alguien que te lo explique bien por aqui.

Saludos.

publicado
La verdad es que a mi no me gustan mucho las matrices, ocupan mucha memoria del equipo y es un lío actualizarlas, lo digo porque en una planilla enorme hace un tiempo las usaban, y el pc se me quedaba pegado cuando tenía que actualizar, al final cambié esas matrices por otras fórmulas y quedó mucho mejor.

No se si poner el link aqui, pero gogleé esta frase "formulas como matrices en excel" y aparecen explicaciones de como funcionan, aunque insisto en que no me gustan. Debe haber alguien que te lo explique bien por aqui.

Saludos.

Yo se que la opción que me dieron resulta, pero entonces no habrá otra opción mas simple?, lo digo por lo que comentas. Otra duda, eso significa que no se actualiza solo??

Saludos.

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.