it-swarm.com.de

Dropdown-Listen mit Hyperlinks

Ich versuche, sheet1 mit einer Dropdown-Liste einzurichten.

Data validation, cell range: Sheet1!B16  
Criteria: List from a range Sheet2!A:A
Show dropdown list in cell
On invalid data show warning.

Die Daten auf Blatt 2 sind eine Liste der Standorte wie folgt: =HYPERLINK("https://www.google.com/maps/.....", "Friendly Name")

Mein Problem ist, dass nur der Anzeigename und nicht der Link angezeigt werden.

Wie kann ich den Link übermitteln?

5
Derek Jones

Kurze Antwort

Derzeit gibt die Datenüberprüfung nur Klartextwerte zurück. Sie können jedoch ein Skript verwenden, um den Wert durch eine Formel mit der HYPERLINK-Funktion zu ersetzen.

Erläuterung

Die Datenvalidierung wird nur als Dropdown-Option zurückgegeben. Die Werte im Nur-Text-Format können weder eine Formel noch einen Rich-Text-Inhalt anbieten. Alternativ können Sie den zugewiesenen Wert mit Google Apps Script durch die entsprechende Formel ersetzen. Allgemeine Anweisungen zum Hinzufügen eines Skripts zu einer Google-Tabelle finden Sie unter Erweitern von Google Sheets .

Skript

Dieses Skript ist ein einfacher On-Edit-Trigger. Hiermit wird überprüft, ob die bearbeitete Zelle die Zelle ist, die überprüft werden soll. Wenn dies zutrifft, wird der ausgewählte Wert durch die entsprechende Formel des Kriterienbereichs ersetzt.

function onEdit(e) {
  // Cell to validate
  var cellAddress = 'B16';
  var sheetName = 'Sheet1';
  // Current cell
  var eA1Notation = e.range.getA1Notation();
  var eSheetName = e.range.getSheet().getName();
  // If the edited cell is the cell to validate set the formula
  // otherwise do nothing
  if(eA1Notation == cellAddress && eSheetName == sheetName ){
    //Criteria
    var criteriaSheet = 'Sheet2';
    var criteriaColumn = 'A:A';
    var validationRange = e.source.getRange(criteriaSheet + '!' + criteriaColumn);
    var values = [].concat.apply([], validationRange.getValues());
    var row = values.indexOf(e.range.getValue());
    var formula = validationRange.getFormulas()[row];
    e.range.setValue(formula);
  }
}
1
Rubén