Saltar al contenido

Suma dependiendo de varios datos


gacg1310

Recommended Posts

publicado

Buenas Tardes:

1. Columna llamada "COD PROD", en esta se tiene COD PROD repetidos 3, 4 o mas veces y van de 1 hasta 273 y ha futuro seran mas.

2. Columna llamada "TIPO ESTANDAR", en esta se tiene EL NUMERO 1 Y 2.

3. Columna llamada "TIEMPO", en esta se tienen varios tiempos para cada uno.

4. Columna llamada "REQUIERE", en esta se tiene S o N.

Necesito una macro que haga lo siguiente:

El COD PROD con el numero 1 aparece 4 veces, con el TIPO ESTANDAR 1, y el REQUIERE aparece una S y tres N.

Entonces cuando el COD PROD sea 1 TIPO STANDAR 1 y REQUIERE S vaya a la columna "REQ. TAML S TIPO STAND 1" y en cada celda de esta columna me sume la columna el dato de la columna "TIEMPO" y que sea REQUIERE S, osea me de 0.000012 en las 4 celdas de la columna "REQ. TAML S TIPO STAND 1".

Y si, COD PROD sea 1 TIPO STANDAR 1 y REQUIERE N vaya a la columna "REQ. TAML N TIPO STAND 1" y en cada celda de esta columna me sume la columna el dato de la columna "TIEMPO" y que sea REQUIERE N, osea me sume 1.5+18+8 en las 4 celdas de la columna "REQ. TAML N TIPO STAND 1".

[TABLE=width: 91]

[TR]

[TD=class: xl65, width: 91][/TD]

[/TR]

[/TABLE]

Lo mismo seria si COD PROD sea 1 TIPO STANDAR 2 y REQUIERE N o REQUIERE S pero en las columnas correspondientes.

GRacias

TIEMPOS.xls

publicado

Hola Gabriel, si entendi bien puedes hacerlo con formulas:

En E2: =SUMAPRODUCTO((A$2:A$1008=A2)*(B$2:B$1008=B2)*(D$2:D$1008="s")*C$2:C$1008)
En F2: =SUMAPRODUCTO((A$2:A$1008=A2)*(B$2:B$1008=B2)*(D$2:D$1008="n")*C$2:C$1008)[/CODE]

En EXCEL 2007+ puedes usar sumarsi conjunto que es mas eficiente que sumaproducto.

Si enciendes la grabadora, aplicas la formula(s) a todo el rango, tendras la macro, seria algo asi para E:

[CODE]Sub Macro1()
Range("E2").Select
Application.Goto Reference:="R2C6:R1008C6"
Selection.FormulaR1C1 = _
"=SUMPRODUCT((R2C[-5]:R1008C[-5]=RC[-5])*(R2C[-4]:R1008C[-4]=RC[-4])*(R2C[-2]:R1008C[-2]=""S"")*R2C[-3]:R1008C[-3])"
End Sub
Sub Depurado()
Range("E2:E1008").Formula = "=SUMPRODUCT((A$2:A$1008=A2)*(B$2:B$1008=B2)*(D$2:D$1008=""S"")*C$2:C$1008)"
End Sub

[/CODE]

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • 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.