Número total de instancias de números de un solo dígito con números de dos dígitos con la misma celda.

0

Nuestro sistema de nómina heredado informa cada día del mes, es decir, del 1 al 31, en una sola fila de celdas, por ejemplo, A1: AE1. Debajo de cada día, se informa una celda vacía o un número de dos dígitos. Una celda vacía significa que el empleado no estuvo en el trabajo en todo ese día. Como operamos en dos turnos consecutivos, el sistema informa números de dos dígitos. El número de dos dígitos, no separado por un espacio, no tiene significado en su conjunto; cada dígito debe interpretarse por separado. Cada dígito está limitado a los números del 0 al 5; y puede verse como 22, 33, 50, 32 o 40. El rango de 0 a 5 se utiliza para codificar las tasas de pago por hora. Un 2 significa $ 14 / hora, mientras que un 3 significa $ 16 / hora. Es la suma de todas las instancias de cada tasa de pago, de 0 a 5, lo que estoy tratando de contar pero no he podido. El punto de hacer esto es averiguar cuántos turnos, no días, un empleado trabajaba a una determinada tarifa por hora. Estos recuentos se informarían a la derecha de la columna AE.

COUNTIF (A1: AE1, " 2 ") suma 2 para {..., 50, 23, 32, ...} - Cuenta deseada

COUNTIF (A1: AE1, " 2 ") suma 3 para {..., 22, 23, 32, ...} - Esperando obtener un 4

He intentado jugar con SUMPRODUCT pero no he tenido mucho éxito.

En la imagen a continuación (no se permite publicar porque soy un novato), hay 2 instancias de tarifa por hora 2 y 8 instancias de tarifa por hora 3 entre el 14 y el 18 de noviembre de 2013, es decir, {23, 33, 33, 33, 23}. Aunque la fórmula COUNTIF utilizada también informa 2 instancias de tarifa por hora 2, solo informa 5 instancias de tarifa por hora 3.


fuente
¿Qué tal usar dos columnas auxiliares para dividir los números de dos dígitos en dígitos y contarlos?

Respuestas:

1

Intente usar SUBSTITUTEpara contar dentro de celdas individuales y luego sumarlas con SUMPRODUCT:

=SUMPRODUCT((LEN(A1:AE1)-LEN(SUBSTITUTE(A1:AE1,"2",""))))

Lo anterior es contar el 2. Puede cambiar el 2 a 3 para contar los 3s:

=SUMPRODUCT((LEN(A1:AE1)-LEN(SUBSTITUTE(A1:AE1,"3",""))))
                                                ^

LEN(A1:AE1)-LEN(SUBSTITUTE(A1:AE1,"3",""))da el número de cada uno 3en cada celda particular.

La lógica es restar la longitud de la celda sin 3 de la longitud de la celda.

alemán
fuente
0

Cree una UDF (función definida por el usuario) y úsela para hacer el recuento. En lugar de poner = COUNTIF (A1: AE1, "2") en una celda, en lugar de poner = TALLYPAYRATES (A1: AE1, "2")

Presione Ver / Macros / Ver Macros

En Nombre de macro, escriba TALLYPAYRATES y presione Crear.
Reemplace ambas líneas con lo siguiente:

Function TALLYPAYRATES(rng As Range, sRate As String) As Long

    Dim nOccurs As Long
    Dim aCell As Range
    Dim sCellRate As String

    nOccurs = 0
    For Each aCell In rng
        sCellRate = Format(aCell, "00")

        If Left(sCellRate, 1) = sRate Then
            nOccurs = nOccurs + 1
        End If

        If Right(sCellRate, 1) = sRate Then
            nOccurs = nOccurs + 1
        End If

    Next aCell

    TALLYPAYRATES = nOccurs

End Function

Luego agregue algo como lo siguiente en algunas celdas

= TALLYPAYRATES (A1: F1, "2")

= TALLYPAYRATES (A1: F1, "3")

Los siguientes datos ------- dan estos resultados

22 33 50 32 40 cuentas 3 3

50 23 32 00 00 cuenta 2 2

22 23 32 00 00 cuenta 4 2

23 33 33 33 23 cuenta 2 8


fuente