Obtener el rango de los valores

Hola Snaki,
Necesito tu ayuda, para obtener el rango entre una serie de datos.
Tengo una columna donde aparecen las ordenes de entrega de cada pedido y en la otra columna el numero de pedido, tengo una macro con la que filtro y pego los datos a un reporte por pedido, el problema es que un pedido puede llegar a tener hasta 400 órdenes de y el reporte es de una sola hoja, actualmente lo hago de forma manual y es algo laborioso, mi pregunta es puede generarse una fórmula o macro para que lo haga de forma automática,
Ejemplo: (ya esta aplicado el filtro para el pedido 233)
Pedido Ordenes de Entrega
233 5031
233 5032
233 5033
233 5034
233 5035
233 5036
233 5149
233 5150
233 5151
233 5191
233 5192
233 5193
233 5194
233 5195
233 5201
233 5202
Total 16 órdenes de entrega para el pedido 233
Y lo que se requiere es que me agrupe y quede de la siguiente manera
Resultado:
No. De pedido 233
Órdenes de Entrega: 16
de la a la o.e.
5031 5036 6
5149 5151 3
5191 5195 5
5201 5202 2
Espero y puedas ayudarme

2 Respuestas

Respuesta
1
Prueba esto y me dices si es lo que buscas... copia y pega tu tabla de ejemplo en A1, dejando los títulos en A1 y A2 y debajo los datos.
En G8 escribe la condición de orden, 233 por ejemplo... contar. Si. Conjunto permite varios criterios a la vez y varios rangos para validar esas condiciones.
En este ejemplo en E10 escribes 5031(que es desde) y en f10 5036 (es hasta), la fórmula encontrará que tienes 2 coincidencias, de acuerdo a los datos que escribiste.
=CONTAR.SI.CONJUNTO$B$2:$B$17;">="&E10;B1:B16;"<="&F10;$A$2:$A$17;"="&$G$8)
Por otra parte para construir una tabla con rangos, relativamente automática a base de tu filtro, yo usaría subtotales con max y el min, y definiendo intervalos, por ejemplo de 10 en 10, es decir desde 5031 hasta 5040.
La otra opción que tu piensas con filtro y rango variable, te puedo dar este ejemplo de uso para que la analices  =SUBTOTALES(2;F8:DESREF(E8;CONTARA($B$8:$B$500)-2;0)) pero ojo que con esto último no veo todavía como llegarías al resultado con intervalos, me parece mejor opción el contar.si.conjunto.
Me cuentas como te va.
Respuesta
1
Lomas factible es que agregues una tabla dinámica al filtro
Y cuando apliques el filtro, actualices la tabla dinámica.
Lo había intentado con filtros, la idea es que no fuera el trabajo de forma manual,
Gracias por tu tiempo, ya me dieron una solución,
  For Each DATO In Range("A:A").Rows
        ActiveCell.Offset(RowOffset:=1, ColumnOffset:=0).Activate
        FILA_DATO = FILA_DATO + 1
        If ActiveCell.Value = "" Then Exit For
        If ActiveCell.Value <> PEDIDO Then
            PEDIDO = ActiveCell.Value
            CUENTA_ORDEN = 0: TOTAL_RANGOS = TOTAL_RANGOS + 1
            ActiveCell.Offset(RowOffset:=-(FILA_DATO - TOTAL_RANGOS), ColumnOffset:=7).Activate
            ActiveCell.FormulaR1C1 = "=R[" & (FILA_DATO - TOTAL_RANGOS) & "]C[-6]"
            ORDEN = ActiveCell.Value
            ActiveCell.Offset(RowOffset:=0, ColumnOffset:=2).Activate
            ActiveCell.FormulaR1C1 = "=1+RC[-1]-RC[-2]"
            ActiveCell.Offset(RowOffset:=(FILA_DATO - TOTAL_RANGOS), ColumnOffset:=-9).Activate

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas