Excel trouve les cellules en formatant?

3

le countif function a un argument de critères - comment spécifier un critère basé sur le formatage des cellules?

J'ai une liste de questions de devoirs de mathématiques contenant par page les numéros de questions (par exemple, sur la ligne de la page 12, les lignes 17 à 32, chacune dans sa propre cellule), et je souhaite marquer des significations spéciales à l'aide du formatage: Les questions difficiles seront audacieuses, les questions obligatoires auront un fond jaune et, bien sûr, les cellules contenant le nombre de questions difficiles et obligatoires seront en gras avec un fond jaune.

Maintenant, je veux compter les questions et leurs classes: Dites 16 questions sur cette page, dont 5 sont dures mais facultatives, 3 sont obligatoires mais simples et 2 sont obligatoires et dures?

Bien sûr, je pourrais ajouter trois lignes supplémentaires par page: l’une servirait de drapeau «dur» et l’autre de drapeau «obligatoire». Le troisième serait 1 si les drapeaux dur et obligatoire sont activés. Mais je veux que la feuille de calcul Excel soit visuellement agréable, sans fouillis, et ajouter trois rangées de plus par page de devoirs est une tâche laide et non intuitive.

Merci! Avi

P.S. Des méthodes alternatives pour résoudre ce problème seront formidables. Peut-être que j'aboie sur le mauvais arbre ..

Avi
la source

Réponses:

2

Pour autant que je sache, COUNTIF accepte uniquement les références de cellules, les nombres, les chaînes et les caractères génériques (tout ce qui concerne les valeurs à l'intérieur des cellules, pas les formats). Voici quelques choses que vous pouvez essayer cependant.

Option 1: filtre de données & amp; TOTAL

Vous pouvez utiliser Filtres de données de même que TOTAL , comme dans l'exemple ci-dessous. Cependant, cela ne fonctionne qu'avec les couleurs d'arrière-plan et non les poids de police. Au lieu d'utiliser des caractères gras pour les questions difficiles, vous pouvez peut-être utiliser des nuances de jaune et de rouge. En revanche, vous devez appliquer manuellement le filtre chaque fois que vous souhaitez compter vos questions.

enter image description here


Option 2: fonction personnalisée

Public Function COUNTF(w As Boolean, h As Boolean, rng As Range) As Integer

Dim cHard, cMand, cBoth As Integer

For Each c In rng
    If c.Font.Bold Then cHard = cHard + 1
    If c.Interior.Color = RGB(255, 255, 0) Then cMand = cMand + 1
    If c.Font.Bold And c.Interior.Color = RGB(255, 255, 0) Then cBoth = cBoth + 1
Next c

If w And Not (h) Then
    COUNTF = cHard
ElseIf Not (w) And h Then
    COUNTF = cMand
ElseIf w And h Then
    COUNTF = cBoth
Else
    COUNTF = rng.Count - (cHard + cMand - cBoth)
End If

End Function

Utiliser:

=COUNTF(a, b, B5:B13)

où:
a & amp; b peut être soit TRUE ou FALSE ( 1 ou 0 )
B5:B13 contient les questions

Exemple:
Pour compter toutes les questions difficiles: =COUNTF(1, 0, questions)
Pour compter toutes les questions obligatoires: =COUNTF(0, 1, questions)
Pour compter les questions difficiles non obligatoires: =COUNTF(1, 0, questions)-COUNTF(1, 1, questions)

Ellesa
la source
Génial. Merci. Je vais essayer le code façon. Bizarrement, j'ai pensé créer un programme autonome, mais je n'ai pas pensé à le faire dans Excel. J'espère que ce code fonctionnera en 2011.
Avi