it-swarm.com.de

Wie kann ich die bedingte Formatierung für eine bestimmte Zelle festlegen, die vom Wert einer anderen Zelle abhängt?

In meinem Beispiel möchte ich Spalte B-Zellen bedingt formatieren. Diejenigen, die mit x markiert sind, sollten gemäß dem Wert in Spalte A formatiert werden (im Beispiel ist der Wert 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

WICHTIGER HINWEIS 2014 : Bedingte Formatierung basierend auf einer Formel, die andere enthalten kann Zellen sind jetzt in Google Sheets möglich und funktionieren sehr ähnlich wie Excel-Tabellen. Diese Antwort erklärt die Verwendung.

69
Robert Koritnik

Komplexe bedingte Formatierungen können in Google Spreadsheets mithilfe von Google Apps Script erzielt werden. Sie könnten beispielsweise eine Funktion schreiben, die die Hintergrundfarbe einer gesamten Zeile basierend auf dem Wert in einer ihrer Zellen ändert, was meines Erachtens mit dem Menü "Farbe mit Regeln ändern" nicht möglich ist. Möglicherweise möchten Sie Trigger für diese Funktion festlegen, z. B. "On Edit", "On Open" und "On Form Submit".

Dokumentation zur Funktion setBackgroundRGB ()

UPDATE: Hier ist ein Google Apps Script-Beispiel zum Ändern der Hintergrundfarbe einer gesamten Zeile basierend auf dem Wert in Spalte A. Wenn der Wert positiv ist, benutze grün. Wenn leer, weiß. Ansonsten rot. Siehe die Ergebnisse in dieser öffentlichen Google Spreadsheet . (Sie müssen angemeldet sein, damit das Skript ausgeführt werden kann. Ohne Anmeldung werden jedoch weiterhin Ergebnisse angezeigt.).

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();
}

Für den Fall, dass Sie nicht mehr weiterkommen möchten

50
Liam

Mit neue Google Sheets können Sie dies tun, wie beschrieben hier . Sie müssen zuerst die neuen Tabellen in Ihren Google-Treibereinstellungen aktivieren, wie im Artikel beschrieben. Anschließend können Sie aus den Optionen für die bedingte Formatierung die Option "Benutzerdefinierte Formel ist" auswählen und eine beliebige Formel eingeben (vergessen Sie nicht, das Präfix = hinzuzufügen!). Zellreferenzen ohne $ -Präfixe werden automatisch angepasst, wenn sie wie erwartet auf Bereiche angewendet werden.

Es scheint, dass die Unterstützung für die Migration von alt nach neu fehlt - sie gilt nur für neue Arbeitsblätter, und ich stellte fest, dass nur Werte von einem zum anderen kopiert werden konnten. Möglicherweise können Sie ein ganzes Blatt kopieren.

19
Sam Brightman

Ich habe diese Web-App Farbcode + mit Apps-Script geschrieben, um die meisten grundlegenden Anforderungen an die bedingte Formatierung abzudecken. Wenn Sie einige Regeln eingeben, wird der Code ausgegeben, den Sie dann in Ihre Tabelle einfügen können. Klicken Sie dazu auf Extras . Skripteditor ... . ( Hilfethema in Google-Foren.)

2
Bryan P

Die bedingten Formatierungsregeln von Google Sheets sehen folgendermaßen aus, wenn Sie eine bedingte Formatierung mit rotem Hintergrund durchführen möchten, wenn die Summe in zwei Zellen von der in der dritten Zelle abweicht:

Google Sheets conditional format rules with single color and custom formula

1
ViliusK

Um die Besonderheiten des Q in 'neuen' Blättern zu behandeln, schlage ich vor, alle bedingten Formatierungen von B: B zu entfernen, Spalte B auszuwählen und ein Benutzerdefinierte Formel ist von:

=A1=1

mit Formatierung nach Wahl und Done.

0
pnuts

Bedingte Formatierung - benutzerdefinierte Formel

range 2:227

= if($i:$i = "Duplicate",True,False)

wählen Sie die Farbe aus, in der die Zeile hervorgehoben werden soll.

0
Hari R

(Feb 2017) Wie in einer anderen Antwort erwähnt, können Nutzer in Google Sheets jetzt Bedingte Formatierung direkt über die Benutzeroberfläche hinzufügen. Egal ob auf einem Desktop/Laptop, Android oder iOS-Geräten. Der Rest dieser Antwort richtet sich jedoch in erster Linie an Entwickler, da Sie Apps für die bedingte Formatierung schreiben können.

Mit der Google Sheets API v4 (und neuer) können Entwickler jetzt Anwendungen schreiben, die CRUD-bedingte Formatierungsregeln enthalten. Weitere Informationen finden Sie auf den Seiten Anleitung und Beispiele sowie unter Referenzdokumente (Suche nach {add,update,delete}ConditionalFormatRule). Das Handbuch enthält dieses Python Snippet (unter der Annahme einer Datei-ID von SHEET_ID und SHEETS als API-Service-Endpunkt):

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()

Zusätzlich zu Python unterstützen Google-APIs ein verschiedene Sprachen , sodass Sie Optionen haben. Das Codebeispiel formatiert jedenfalls ein Blatt (siehe Abbildung unten) so, dass diejenigen, die jünger als der Median sind, hellrot hervorgehoben werden, während die Daten über dem Median in roter Schrift dargestellt werden.

Conditional formatting example

HINWEIS: Meine Antwort hier ist identisch mit der auf SO für diese Frage , außer dass ich den PSA fallen gelassen habe, da er nicht an> 1 Ort leben muss.

0
wescpy

Wählen Sie beim Bearbeiten der bedingten Formatierung Benutzerdefinierte Formel und verwenden Sie Folgendes ...

=if(A1 = 1 , true)

Wählen Sie Ihre Farben und Sie sind fertig.

0
user3246197