Format conditionnel par jour de la semaine

21

Comment mettre en forme conditionnellement des cellules dans des feuilles de calcul Google contenant des dates pour avoir un arrière-plan différent selon le jour de la semaine, par exemple mettre en surbrillance les samedis et dimanches dans une colonne contenant les jours du mois?

Mike Ellis
la source

Réponses:

13

Cela faisait longtemps que je me débattais avec ça, mais j'ai finalement craqué:

Utilisez une mise en forme conditionnelle sur la colonne avec les dates et tapez ce qui suit comme formule personnalisée:

=or(WEEKDAY(A1)=1,WEEKDAY(A1)=7)

A1est la première date de la colonne.

Cela appliquera la mise en forme conditionnelle à tous les jours de la semaine avec une valeur de 1 (dimanche) et 7 (samedi).

aej
la source
2
C'est une bonne solution, merci. Je l'accepte. Pour mon usage, je l'ai adapté pour exclure les cellules vides: =and(not(isblank(A1)), or(WEEKDAY(A1)=1,WEEKDAY(A1)=7))
Mike Ellis
Bel ajout avec le non isblank. Je l'avais utilisé d'une manière où je ne l'ai utilisé que pour la plage contenant les dates, par exemple A1: A31. Je l'ai également changé en utilisant> et <en = comme vous l'avez fait. C'est un peu plus simple de cette façon. Je suppose que j'ai commencé par espérer que la numérotation des jours de semaine ressemble davantage à celle de mon pays où le lundi serait 1 et le dimanche serait 7. Je ne sais pas si c'est le cas si le paramètre de pays est modifié.
aej
15

Facile (mais un peu fastidieux!) Dans les nouvelles feuilles de calcul Google. Pour la mise en forme conditionnelle, une nouvelle règle est approximativement requise pour chaque couleur. (Une couleur peut généralement être ignorée des règles et appliquée à la place avec une mise en forme normale - qui serait remplacée lorsque l'une des conditions pour CF s'applique.) Donc, attendez-vous à répéter les bases des éléments suivants au moins cinq fois.

Supposons que la colonne de dates soit A. Sélectionnez-la, Format> Formatage conditionnel ..., la formule personnalisée est et entrez:

=weekday(A1)=1  

Choisissez la mise en forme requise.

La finale 1ci-dessus est pour le dimanche, les autres jours suivent dans l'ordre numérique.

Répétez l'opération pour les autres formats requis, en ajustant le 1si nécessaire.

Étant donné que ces règles n'entrent pas en conflit (chaque date n'est qu'un jour spécifique de la semaine), l'ordre dans lequel les règles sont ajoutées (avec " + Ajouter une autre règle ") n'a pas d'importance.

pnuts
la source
4
En s'appuyant sur cela, une manière plus simple serait de le faire =WEEKDAY(A1,2)>5- Cela frappera le samedi et le dimanche et ne nécessitera qu'une seule règle
FuriousGeorge
1
Cela a fait l'affaire. Merci!
Joshua Dance
5

Si les dates sont dans la colonne A, sélectionnez-les, puis faites: Format > Formatage conditionnel ... > Formater les cellules si ... > Formule personnalisée et mettre

=and(isblank(A:A)=false, or(weekday(A:A)=1, weekday(A:A)=7))

Quelques explications:

weekday(A:A)renvoie 1-7 , pour le jour de la semaine, et or(weekday(A:A)=1, weekday(A:A)=7)renvoie vrai , si c'est dimanche ( 1 ) ou samedi ( 7 ).

Cela fonctionnerait de lui-même, mais pour une raison quelconque, en semaine () sur une cellule vide renvoie 7 , donc isblank(A:A)=falsevérifie également si la cellule est vide. Maintenant, il colore une cellule si elle est à la fois (non vide) et (soleil ou assis)

Je mets également A:A, comme A1donnerait des résultats de décalage si la plage de format ne commençait pas en haut (par exemple A5:A100au lieu de A1:A100)

Crédits aux pnuts!

Emerson Peters
la source
4

C'est possible avec un script. Allez dans OutilsÉditeur de script ... et collez ce script:

function onEdit(e) {
  var cell = e.range.getCell(1, 1);
  var val = cell.getValue();
  if ((val instanceof Date) && (val.getDay() == 0 || val.getDay() == 6)) {
    cell.setBackground("red");
  } else {
    cell.setBackground("white");
  }
}

Enregistrez le script (donnez un nom au projet) et revenez à votre feuille de calcul.

Maintenant, chaque fois que vous modifiez une cellule, ce script vérifie si vous avez entré une date et si la date que vous avez entrée est un dimanche ou un samedi. Si c'est le cas, l'arrière-plan de la cellule devient rouge. Si ce n'est pas une date ou ce n'est pas le week-end, l'arrière-plan passera au blanc.

Il y a d' autres noms de couleurs que vous pouvez utiliser, ou vous pouvez utiliser un code hexadécimal pour spécifier une couleur différente.

William Jackson
la source
Merci, William. Bien que le code semble raisonnable, pour une raison quelconque, il ne fonctionne pas tout à fait comme prévu. Il devient rouge les jours pairs et les jours impairs blancs.
Mike Ellis
J'ai changé le test dans la ifdéclaration pour être plus simple. Ça marche maintenant?
William Jackson