/ / Excel: aplicar la función a cada celda dentro de la fórmula: Excel, rango, fórmula

Excel: aplicar la función a cada celda dentro de la fórmula - sobresalir, rango, fórmula

Estoy tratando de diseñar una función de Excel que no sea vbaque verifica cada celda en múltiples rangos para diferentes parámetros y luego devuelve el número de ocurrencias aplicables. Mi problema específico ocurre al aplicar la función HORA a un rango de celdas de fecha y contar cuántas de estas celdas son iguales a una hora determinada.

Para aclarar, en VBA escribiría algo como (suponga que la columna A contiene fechas):

Sub tester33()
Dim r As Range
Dim c
Dim a As Integer
Set r = Range("A1:A10")
a = 0
For Each c In r
If (Hour(c) = 5) Then "time is 5 am, other if conditions are omitted
a = a + 1
End If
Next c
MsgBox (a)
End Sub

Lo que me gustaría tener trabajando es

=COUNTIF(HOUR(A:A);"=5")

Mi búsqueda hasta ahora no ha devuelto nada. Tenga en cuenta que encontré respuestas a esta pregunta aquí y aquí, que desafortunadamente no funcionará para funciones Excel no matemáticas. Espero que este no sea un problema completamente trivial, ya que soy nuevo en las fórmulas en hoja.

Respuestas

0 para la respuesta № 1

Una fórmula alternativa (sin matriz) es usar

=SUMPRODUCT(--(HOUR(A:A)=5))

que no requiere comprometer la fórmula usando Ctrl+Cambio+Entrar. En última instancia, es una cuestión de preferencia.

Además, si sus datos no estiran la longitud completa de la columna A, considere usar solo el rango ocupado por los datos (p. Ej. A1:A50 en lugar de A:A), ya que Excel no tiene que iterar a través de celdas en blanco, lo que puede agrupar las cosas.


0 para la respuesta № 2

Utilizar

=SUM((HOUR(A1:A50)=5)*1)

o

=SUM(--(HOUR(A1:A50)=5))

Ambas son fórmulas de matriz, así que confírmalas presionando Ctrl+Cambio+Entrar. Cambio A1:A50 a su rango de datos.