Dans mon exemple, j'aimerais formater de manière conditionnelle les cellules de la colonne B. Ceux marqués avec x doivent être formatés en fonction de la valeur dans la colonne A (dans l'exemple, la valeur est 1
):
A | B
1 | x
2 |
3 |
1 | x
1 | x
4 |
8 |
// x can be any value and is here merely to mark the cell that should be formatted
REMARQUE IMPORTANTE POUR 2014 : mise en forme conditionnelle basée sur une formule pouvant inclure d'autres Les cellules sont maintenant possibles dans Google Sheets et fonctionnent de manière très similaire au fonctionnement des feuilles de calcul Excel. Cette réponse explique son utilisation.
Un formatage conditionnel complexe peut être obtenu dans Google Spreadsheets à l'aide de Google Apps Script. Par exemple, vous pouvez écrire une fonction qui modifie la couleur d'arrière-plan d'une ligne entière en fonction de la valeur de l'une de ses cellules, ce que je ne pense pas possible avec le menu "Modifier la couleur avec des règles". Vous voudrez probablement définir des déclencheurs pour cette fonction, tels que "Sur édition", "Sur ouverture" et "Sur formulaire de soumission".
Documentation sur la fonction setBackgroundRGB ()
UPDATE: Voici un exemple de script Google Apps permettant de modifier la couleur d'arrière-plan d'une ligne entière en fonction de la valeur de la colonne A. Si la valeur est positive, utiliser le vert. Si vide, blanc. Sinon, rouge. Voir les résultats dans ce public Google Spreadsheet . (Vous devrez être connecté pour que le script s'exécute, mais sans vous connecter, vous pouvez toujours voir les résultats).
function colorAll() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;
var endRow = sheet.getLastRow();
for (var r = startRow; r <= endRow; r++) {
colorRow(r);
}
}
function colorRow(r){
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange(r, 1, 1, 3);
var data = dataRange.getValues();
var row = data[0];
if(row[0] === ""){
dataRange.setBackgroundRGB(255, 255, 255);
}else if(row[0] > 0){
dataRange.setBackgroundRGB(192, 255, 192);
}else{
dataRange.setBackgroundRGB(255, 192, 192);
}
SpreadsheetApp.flush();
}
function onEdit(event)
{
var r = event.source.getActiveRange().getRowIndex();
if (r >= 2) {
colorRow(r);
}
}
function onOpen(){
colorAll();
}
Un séjour sans faille
Le nouvelles fiches Google vous permet de le faire, comme décrit ici . Vous devez d'abord activer les nouvelles feuilles de calcul dans les paramètres de votre pilote Google, comme décrit dans l'article. Vous pouvez ensuite sélectionner "Formule personnalisée" dans les options de mise en forme conditionnelle et entrer n’importe quelle formule (n’oubliez pas d’ajouter le préfixe =
!). Les références de cellule sans les préfixes $
sont ajustées automatiquement lorsqu'elles sont appliquées aux plages comme vous le souhaitez.
Il semble que le support pour la migration d'ancien vers le nouveau fasse défaut - il ne s'applique qu'aux nouvelles feuilles et j'ai constaté que seules les valeurs pouvaient être copiées de l'une à l'autre. Copier une feuille entière peut être une option.
J'ai écrit cette application Web, Code de couleur + , avec Apps-Script, pour couvrir la plupart des besoins de mise en forme conditionnels de base. Ajoutez quelques règles et cela crachera du code que vous pourrez ensuite coller dans votre feuille de calcul, sous Outils → Editeur de script ... . ( fil d'aide sur les forums Google.)
Pour aborder les spécificités du Q dans les "nouvelles" feuilles, je suggère d'effacer tout formatage conditionnel de B: B, en sélectionnant ColumnB et en appliquant un la formule personnalisée est sur:
=A1=1
avec formatage de choix et Done.
Mise en forme conditionnelle - formule personnalisée
range 2:227
= if($i:$i = "Duplicate",True,False)
sélectionnez la couleur sur laquelle vous souhaitez mettre la ligne en surbrillance.
(février 2017) Comme indiqué dans une autre réponse, Google Sheets permet désormais aux utilisateurs d'ajouter mise en forme conditionnelle directement à partir de l'interface utilisateur, que ce soit sur un ordinateur de bureau/portable, Android ou des appareils iOS. Cependant, le reste de cette réponse est principalement destiné aux développeurs, car vous pouvez écrire des applications "do" à la mise en forme conditionnelle.
Avec l'API v4 de Google Sheets (et plus récente), les développeurs peuvent désormais écrire des applications qui respectent les règles de mise en forme conditionnelle CRUD. Consultez les pages guide et exemples pour plus de détails, ainsi que les documents de référence (recherchez {add,update,delete}ConditionalFormatRule
). Le guide présente cet extrait Python (en supposant que l'ID de fichier SHEET_ID
et SHEETS
soit le point de terminaison du service d'API):
myRange = {
'sheetId': 0,
'startRowIndex': 1,
'endRowIndex': 11,
'startColumnIndex': 0,
'endColumnIndex': 4,
}
reqs = [
{'addConditionalFormatRule': {
'index': 0,
'rule': {
'ranges': [ myRange ],
'booleanRule': {
'format': {'textFormat': {'foregroundColor': {'red': 0.8}}}
'condition': {
'type': 'CUSTOM_FORMULA',
'values':
[{'userEnteredValue': '=GT($D2,median($D$2:$D$11))'}]
},
},
},
}},
{'addConditionalFormatRule': {
'index': 0,
'rule': {
'ranges': [ myRange ],
'booleanRule': {
'format': {
'backgroundColor': {'red': 1, 'green': 0.4, 'blue': 0.4}
},
'condition': {
'type': 'CUSTOM_FORMULA',
'values':
[{'userEnteredValue': '=LT($D2,median($D$2:$D$11))'}]
},
},
},
}},
]
SHEETS.spreadsheets().batchUpdate(spreadsheetId=SHEET_ID,
body={'requests': reqs}).execute()
En plus de Python, les API Google prennent en charge une variété de langues , vous disposez donc d'options. Quoi qu'il en soit, cet exemple de code formate une feuille (voir image ci-dessous) de sorte que les plus jeunes par rapport à l'âge médian soient surlignés en rouge clair, tandis que ceux situés au-dessus de la médiane affichent leurs données en rouge.
NOTE: ma réponse ici est identique à celle sur SO pour cette question sauf que j'ai laissé tomber le message d'intérêt public car il n'a pas besoin de vivre à> 1 endroit.
Lors de la modification de la mise en forme conditionnelle, sélectionnez Formule personnalisée et utilisez les éléments suivants ...
=if(A1 = 1 , true)
Sélectionnez vos couleurs et vous avez terminé.