Google Sheets - Datenvalidierung aus einem horizontalen Bereich
Ich versuche etwas zu tun, das einfach genug zu sein scheint. In den D15Validierungsregeln für cell ( ) möchte ich List from a rangeeinen Bereich auswählen und angeben, der horizontal statt vertikal ist. Bitte sehen Sie den folgenden selbsterklärenden Screenshot.
Dies funktioniert jedoch nicht. In der Dropdown-Liste werden nur Daten aus der ersten Spalte des angegebenen Bereichs angezeigt. Siehe den Screenshot unten.
Wie kann ich das zum Laufen bringen? Ich erwarte zu sehen - Katze, Maus, Löwe und Hirsch in der Dropdown-Liste.
PS: Das vertikale Anordnen der gewünschten Elemente in der Liste ist keine Option.
LÖSUNG Ähnlich wie bei der akzeptierten Antwort von @Marios habe ich hier eine Lösung für meinen genauen Anwendungsfall gefunden . Leider scheint AppScript die einzige Antwort zu sein.
Antworten
Alternative Lösung:
Wie wäre es mit der folgenden Google Apps Script- Lösung.
Der folgende Code erstellt eine Datenvalidierung in Zelle D15 und die Datenvalidierungswerte werden durch den Bereich E15 angegeben: H15 :
function setDataValidation() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getActiveSheet();
var cell = sh.getRange('D15'); // data validation cell
var range = sh.getRange('E15:H15'); // range of options
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range).build();
cell.setDataValidation(rule);
}
Anleitung:
- Klicken Sie auf Extras => Skripteditor :
- Kopieren Sie das oben genannte Code-Snippet, fügen Sie es in den Skript-Editor ein und klicken Sie auf Ausführen (Wiedergabetaste):
Weitere Ideen:
- Anstatt die Funktion über den Skripteditor auszuführen, können Sie in der Google Sheets-Benutzeroberfläche eine Schaltfläche erstellen, um diese Funktion für Sie auszuführen.
- Ein anderer Ansatz wäre, dass der Benutzer den Bereich der gewünschten Liste als Werte für die Datenvalidierungszelle auswählt und dann auf die Schaltfläche klickt, um automatisch eine Datenvalidierungszelle für ihn zu erstellen.
- Sie können auch einen Auslöser erstellen, um eine Datenüberprüfungszelle zu erstellen, wenn etwas bearbeitet wird.
- Anstatt eine Datenvalidierung nur für eine Zelle zu erstellen, können Sie dies für eine Reihe von Zellen usw. tun.
Verweise:
- Google Apps-Skript
- Klassendatenvalidierung
- Löst aus
Dies scheint ein Fehler in der Desktop-Web-App zu sein:
- Der horizontale Bereich oder die vertikale Richtung des Bereichs ist nicht das Problem
- Wenn jedoch ein horizontaler Bereich verwendet wird, akzeptiert der Datenüberprüfungsbereich keinen Bereich mit einem geschlossenen Ende (
F3) und einen Bereich mit einem offenen Ende (3) (F3:3). Wenn beide Enden sind- open ,
3:3: Die Datenvalidierung ist erfolgreich - geschlossen ,
F3:M3: Die Datenüberprüfung ist erfolgreich - eine Seite offen und eine Seite geschlossen :
F3:3. Dies sollte tatsächlich die letzte Spalte berechnen und den Bereich entsprechend eingeben. Der Eingabedialog für die Datenvalidierung löscht jedoch das offene Ende und speichert die Eingabe als gerechtF3. Dies führt dazu, dass nur eine Zelle herunterfällt, wie in Ihrer Frage gezeigt.
- open ,
- Wenn Sie in der Lage sind, den modalen Dialog der Datenüberprüfung zu umgehen und
F3:3die Konfiguration der Datenüberprüfung irgendwie zu erzwingen (z. B. über offizielle mobile Apps oder Skripte), ist die Datenüberprüfung ordnungsgemäß eingestellt. - Überlegen Sie, ob Sie zusammen mit diesem Beitrag Feedback an Google senden möchten, indem Sie Hilfe> Hilfeblätter verbessern.
Ich verstehe, dass Sie diese Werte horizontal anzeigen möchten, sodass eine vertikale Anordnung in diesem Blatt keine Option ist. Können Sie dies jedoch an anderer Stelle tun?
In solchen Situationen bevorzuge ich mindestens ein anderes Blatt, in dem ich Eingabewerte auflisten kann. Nennen wir dieses Blatt "EINGÄNGE". In jeder Spalte kann ich die Werte manuell auflisten oder eine Formel verwenden, um sie manuell zu füllen (z =TRANSPOSE('Dynamic Brands'!E15:15). B. ). Jetzt kann ich diesen neuen Bereich für die Datenvalidierung verwenden.
Alternativ können Sie die Datenüberprüfung mit Zeilendaten erstellen, jedoch ohne die Funktion "Dropdown-Liste in Zelle anzeigen" . Ändern Sie Ihre Kriterien in eine benutzerdefinierte Formel und verwenden Sie diese Formel=ISNUMBER(MATCH('Dynamic Brands'!D15, 'Dynamic Brands'!E15:15, 0))
Wenn Ihr Spaltenbereich nicht dynamisch ist, wählen Sie den Endbereich Ihrer Spalte zusammen mit der Zeile aus, dh mit dem angegebenen Beispiel, anstatt den Bereich als E15:15festgelegten Bereich E15:H15einzufügen, da dadurch Ihr gesamter Bereich in der Dropdown-Liste ausgefüllt wird