Tengo una hoja de cálculo de Excel, que es mi horario. esto significa que tengo algunas tareas, que casi siempre es una celda conectada, a veces conecto 20 celdas, a veces solo dos.Ejemplo
Como cada célula dura una hora, quería contar el recuento de células pesadas. Esto significa: si tengo una celda que tiene solo una celda, cuenta como una, si tengo 3 conectadas contará como 3. Entonces, en la imagen de ejemplo, el recuento de celdas será S1: 3, S2: 4, S3: 2, T4:6
He estado buscando durante mucho tiempo, pero no encontré ninguna función que resuelva el problema. Lo mejor que he encontrado es =countif(B4:H19, "Subject1")
, pero aquí una celda basada en tres celdas conectadas cuenta como una. ¿Podrías ayudarme a resolver este problema?
¡Gracias por tu respuesta de antemano!
Respuesta1
En realidad, la captura de pantalla que compartió con nosotros tiene celdas fusionadas y no fusionadas, por lo tanto, en lugar de cualquier fórmula, este problema necesita una macro VBA.
Function MergedCellCount(ByRef Rng As Range, ByVal Criteria As Variant)
Dim c As Long
Dim Cell As Range
Dim n As Long
Dim r As Long
Application.Volatile
For c = 1 To Rng.Columns.Count
For r = 1 To Rng.Rows.Count
Set Cell = Rng.Cells(r, c)
If Cell.MergeCells = True And (Rng.Columns(c).Column = Cell.MergeArea.Column) Then
If Cell = Criteria Then
n = n + Cell.MergeArea.Count
r = r + (Cell.MergeArea.Rows.Count - 1)
End If
End If
Next r
Next c
MergedCellCount = n
End Function
Function unMergedCellCount(ByRef Rng As Range, ByVal Criteria As Variant)
Dim c As Long
Dim Cell As Range
Dim n As Long
Dim r As Long
Application.Volatile
For c = 1 To Rng.Columns.Count
For r = 1 To Rng.Rows.Count
Set Cell = Rng.Cells(r, c)
If Cell.MergeCells <> True And (Rng.Columns(c).Column = Cell.MergeArea.Column) Then
If Cell = Criteria Then
n = n + Cell.MergeArea.Count
r = r + (Cell.MergeArea.Rows.Count - 1)
End If
End If
Next r
Next c
unMergedCellCount = n
End Function
Cómo funciona:
O presioneAlt+F11o seleccione la TAB y luegoRhaga clic derecho y desde el menú presioneVVer código.
Ccopiar yPAGGuarde estas macros de VBA.
PrensaAlt+Qpara volver a la Hoja.
Ahora guarde el libro de trabajo como archivo habilitado para macros
*.xlsm
.Ingrese esta fórmula en la celda
K2
y complétela.=MergedCellCount(H$2:H$17,J2)+unMergedCellCount(H$2:H$17,J2)
Ajuste las referencias de celda según sea necesario.