web-dev-qa-db-fra.com

Excel: Puis-je créer une formule conditionnelle basée sur la couleur d'une cellule?

Je suis un débutant et j'essaie de créer une formule qui modifie le contenu de la cellule A1 en fonction de la couleur de la cellule dans B2;

Si la cellule B2 = [la couleur rouge], affichez FQS.

Si la cellule B2 = [la couleur jaune], affichez SM.

Ceci est conditionnel en fonction de la couleur de remplissage de la cellule.

20
Jay 0

Malheureusement, il n'y a pas de moyen direct de le faire avec une seule formule. Cependant, il existe une solution de contournement assez simple.

Sur le ruban Excel, allez dans "Formules" et cliquez sur "Gestionnaire de noms". Sélectionnez "Nouveau" puis entrez "CellColor" comme "Nom". Passez à la partie "Fait référence à" et entrez les informations suivantes:

=GET.CELL(63,OFFSET(INDIRECT("RC",FALSE),1,1))

Cliquez sur OK puis fermez la fenêtre "Gestionnaire de noms".

Maintenant, dans la cellule A1, entrez ce qui suit:

=IF(CellColor=3,"FQS",IF(CellColor=6,"SM",""))

Cela retournera FQS pour le rouge et SM pour le jaune. Pour toute autre couleur, la cellule restera vide.

*** Si la valeur de A1 ne se met pas à jour, appuyez sur la touche "F9" de votre clavier pour obliger Excel à mettre à jour les calculs à tout moment (ou si la couleur de B2 change un jour).

Vous trouverez ci-dessous une référence pour une liste de couleurs de remplissage de cellules (il en existe 56) si vous souhaitez développer des éléments: http://www.smixe.com/Excel-color-pallette.html

À votre santé.

:: Éditer ::

La formule utilisée dans Name Manager peut être davantage simplifiée si elle vous aide à comprendre son fonctionnement (la version que j'ai incluse ci-dessus est beaucoup plus souple et plus facile à utiliser pour vérifier plusieurs références de cellule lors de la copie car elle utilise sa propre cellule. adresse en tant que point de référence au lieu de cibler spécifiquement la cellule B2).

Quoi qu'il en soit, si vous souhaitez simplifier les choses, vous pouvez utiliser cette formule dans le gestionnaire de noms:

=GET.CELL(63,Sheet1!B2)
19
Derrik

Vous pouvez utiliser cette fonction (je l'ai trouvée ici: http://excelribbon.tips.net/T010780_Colors_in_an_IF_Function.html ):

Function GetFillColor(Rng As Range) As Long
    GetFillColor = Rng.Interior.ColorIndex
End Function

Voici une explication sur la manière de créer des fonctions définies par l'utilisateur: http://www.wikihow.com/Create-a-User-Defined-Function-inMicrosoft-Excel

Dans votre feuille de calcul, vous pouvez utiliser les éléments suivants: =GetFillColor(B5)

9
astef