Contar valores excel

Columna A1 nombres de personas, columnas B1:AH1 números del 1 al 31 representando los días del mes. Con esto hacemos un cuadrante mensual de turnos trabajados que podemos ir contando por filas =CONTAR. SI(B1:AH1;"T"), entendiendo "T" por turno de tarde, "M" mañana, "M/T" mañana y tarde, "T1" tarde con una hora nocturna, "T2" tarde con dos horas nocturnas. Bien llegados hasta aquí mi problema es el siguiente:
Necesito contar los turnos trabajados que coinciden con días festivos en cada fila excluyendo aquellos que coincidan con turnos de vacaciones "V" o turnos de libranza "L". Para realizar la fórmula además tendría que indicar en que columna/columnas se encuentra el día/s festivo/s.
Es la primera vez que me conecto a Todoexpertos y no tengo muy claro si lo estoy haciendo de forma adecuada, en cualquier caso agradezco que mantengan abierto este foro y la ayuda que me puedan prestar.
1

1 respuesta

Respuesta
1
Eso es sencillo con una macro, tan solo elegimos la celda donde poner el resultado.
Puedes poner una columna al final para cada turno por ejemplo AG=M;AH=M/T;AI=T;AJ=T;AK=T1;AL=T2;AM=V;AN=L;AO=F
Bien pues la macro que te hace la cuenta en cada columna indicada es esta:
Private Sub Cuadrante()
Range("A2").Select
cel = Range("A2").Address
Range("AG1").Select
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-31]:RC[-1],""M"")"
Range("AH1").Select
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-32]:RC[-2],""M/T"")"
Range("AI1").Select
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-33]:RC[-3],""T"")"
Range("AJ1").Select
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-34]:RC[-4],""T1"")"
Range("AK1").Select
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-35]:RC[-5],""T2"")"
Range("AL1").Select
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-36]:RC[-6],""V"")"
Range("AM1").Select
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-37]:RC[-7],""L"")"
Range("AN1").Select
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-38]:RC[-8],""F"")"
Range(cel).Select
ActiveCell.Offset(1, 0).Select
cel = ActiveCell.Address
Do While ActiveCell <> ""
Range("AG1").Select
ActiveCell.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-31]:RC[-1],""M"")"
Range("AH1").Select
ActiveCell.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-32]:RC[-2],""M/T"")"
Range("AI1").Select
ActiveCell.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-33]:RC[-3],""T"")"
Range("AJ1").Select
ActiveCell.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-34]:RC[-4],""T1"")"
Range("AK1").Select
ActiveCell.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-35]:RC[-5],""T2"")"
Range("AL1").Select
ActiveCell.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-36]:RC[-6],""V"")"
Range("AM1").Select
ActiveCell.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-37]:RC[-7],""L"")"
Range("AN1").Select
ActiveCell.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-38]:RC[-8],""F"")"
Range(cel).Select
ActiveCell.Offset(1, 0).Select
cel = ActiveCell.Address
Loop
End Sub
Ojo esta pensada para estas columnas si tu quieres ponerlas en otra te explico, supone que estamos en la columna AI (la celda da igual) la fórmula coge el rango desde esa celda hacia la izquierda 33 columnas como inicio del rango hasta 3 columnas hacia la izquierda como final del rango.
Si necesitas alguna aclaración me la pides, si te ha servido puntúa y finaliza la pregunta
>Un saludo
>Julio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas