web-dev-qa-db-fra.com

Mettez en surbrillance la valeur minimale dans chaque ligne, en ignorant les zéros et en ignorant les colonnes

J'essaie de mettre en évidence la plus petite valeur dans chaque ligne à l'aide de la mise en forme conditionnelle (CF), tout en ignorant les zéros et les blancs. De plus, je ne veux pas que les plages soient continues (c’est-à-dire que certaines colonnes sont sautées).

Par exemple, donnez la feuille suivante:

   A    B    C     D      E
1 345   0   skip  123  <empty>
2  0   211  skip  234  <empty>

J'aimerais que D1 et C2 soient mis en évidence, indépendamment.

Je peux obtenir une partie du chemin en utilisant un formule personnalisée dans CF: =A1=min({$A1,$B1,$D1,$E1})

Cependant, je rencontre quelques problèmes:

  • Les zéros et les cellules vides sont mis en surbrillance (ce que je ne veux pas)
  • Comment appliquer CF à chaque ligne indépendamment sans créer manuellement CF pour chaque ligne (c'est-à-dire sans avoir à faire =A2=min({$A2,$B2,$D2,$E2}), =A3=min({$A3,$B3,$D3,$E3}), etc.)
4
skube

J'ai trouvé un autre moyen de le faire avec une formule single CF en utilisant ArrayFormula:

=A1=ArrayFormula((MIN(IF({$A1,$B1,$D1,$E1}>0,{A1,$B1,$D1,$E1}))))

La clé consiste également à appliquer à la plage: A1:A,B1:B,D1:D,E1:E

3
skube

Dans votre exemple, l’ensemble de la plage A2: D peut être formaté de la manière spécifiée à l’aide de la formule personnalisée.

=and(column(A2) <> 3, A2 = min(filter({$A2,$B2,$D2}, {$A2,$B2,$D2} > 0)))

Qui est une combinaison de deux conditions:

  • column(A2) <> 3 dit de ne pas formater la colonne C
  • filter({$A2,$B2,$D2}, {$A2,$B2,$D2} > 0) dit d'ignorer les cellules vides et les zéros lors de la recherche du minimum. La valeur de la cellule en cours étant égale au minimum de celles-ci (A2 = min(...)) garantit notamment qu'elle n'est pas nulle ni vierge elle-même.
2
user135384