Suchmaske in Google Sheets erstellen

Google Sheets ist ein hilfreiches Werkzeug für die Arbeit mit Daten, aber die Suche nach Informationen in einem großen Datensatz kann schwierig sein. In diesem Artikel zeigen wir Ihnen, wie Sie eine einfache Suchmaske in Google Sheets erstellen, mit dem Sie die benötigten Daten schnell finden.

Eine Suchmaske in Google Sheets erstellen

Schritt 1: Datasheet einrichten

In dieser Übungsaufgabe erstellen wir eine einfache Liste von Produkten, die als Datenblatt dienen.

Öffnen Sie Google Sheets und starten Sie ein leeres Arbeitsblatt. Geben Sie das Wort „Produkte“ in Zelle A1 ein, welches als Überschrift unserer Liste dient. Dann geben Sie eine Reihe von Produkten in Zelle A2 nach unten ein. Und schließlich werden wir einfach den Namen des Blattes auf “Sheet1” ändern.

how_to_create_a_search_modal_in_google_sheets

Schritt 2: Zugriff auf Apps-Skript

Wählen Sie im oberen Menü Erweiterungen > Apps Script aus.

Dies wird eine neue Registerkarte öffnen. Warten Sie, bis der Bildschirm Apps Script geladen hat.

how_to_create_a_search_modal_in_google_sheets

Schritt 3: Skript einfügen

Kopieren Sie das Skript und fügen Sie es in den Codebereich ein. In dieser Übungsaufgabe kopieren wir den eingefügten Code unter Dateien > Code.gs skript.

function showListInForm() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
  var dataRange = sheet.getRange("A2:A" + sheet.getLastRow());
  var data = dataRange.getValues();
  var content = data.map(function(row) {
    return row[0];
  });

  var html = "<style>" +
  '  #searchBox {' +
  '     border-radius: 25px;' +
  '     border: 2px solid #cccccc;' +
  '     width: 98%;' +
  '     font: 16px Calibri, Arial, sans-serif;' +
  '     padding: 10px;' +
  '  }' +
  '</style>'

  //Search box
  html += '<div style="position: sticky; top: 0; background-color: #fff; padding: 2px;">' +
    '<input type="text" id="searchBox" placeholder="🔍 Search Product">' +
    '</div> <br>';
  
  html += '<style>' +
    'table tr:hover { background-color: #f5f5f5; cursor: pointer; }' +
    '</style>';

  html += '<table id="contentTable" style = "width: 100%;">';

  //Loop to show each product from sheet to our form
  content.forEach(function(row, index) {
    html += '<tr>';
    html += '<td class="clickable-row" data-content="' + row + '" style= "font: 16px Calibri, Arial, sans-serif;">';
    html += row;
    html += '</td>';
    html += '</tr>';
  });

  html += '</table>';

  //Code responsible for filtering the list upon typing/searching. Also adds the function to insert the selected item in the active cell.
  var js = '<script>' +
    'document.getElementById("searchBox").addEventListener("input", filterTable);' +
    'var rows = document.querySelectorAll(".clickable-row");' +
    'rows.forEach(function(row) {' +
    '  row.addEventListener("click", function() {' +
    '    var content = row.getAttribute("data-content");' +
    '    google.script.run.insertSelection(content);' +
    '    google.script.host.close()' +
    '  });' +
    '});' +
    'function filterTable() {' +
    '  var input, filter, table, tr, td, i, txtValue;' +
    '  input = document.getElementById("searchBox");' +
    '  filter = input.value.trim().toLowerCase();' +
    '  table = document.getElementById("contentTable");' +
    '  tr = table.getElementsByTagName("tr");' +
    '  for (i = 0; i < tr.length; i++) {' +
    '    td = tr[i].getElementsByTagName("td")[0];' +
    '    if (td) {' +
    '      txtValue = td.textContent || td.innerText;' +
    '      if (txtValue.toLowerCase().includes(filter)) {' +
    '        tr[i].style.display = "";' +
    '      } else {' +
    '        tr[i].style.display = "none";' +
    '      }' +
    '    }' +
    '  }' +
    '}' +
    '</script>';

  html += js;

  var htmlOutput = HtmlService.createHtmlOutput(html)
    .setWidth(1024)
    .setHeight(768);
  SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Search');

}

//Inserts the selected item in the active cell
function insertSelection(content) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var insertInCell = sheet.getActiveRange();
  insertInCell.setValue(content);

}

how_to_create_a_search_modal_in_google_sheets

Dann vergessen Sie nicht, das Skript zu speichern, indem Sie auf das Speichern-Symbol 💾 oben klicken oder Strg + S auf Ihrer Tastatur drücken.

Schritt 4: Erstellen Sie einen Knopf

Wechseln Sie zurück zum Tab-Arbeitsblatt. Wählen Sie im oberen Menü Einfügen > Zeichnen aus.

how_to_create_a_search_modal_in_google_sheets

Wählen Sie dann von hier aus das Symbol Form > Formen > Rechteck-Symbol.

how_to_create_a_search_modal_in_google_sheets

Klicken und ziehen Sie das Element unten in den Zeichnungsbereich, um eine rechteckige Form zu bilden. Dann geben Sie ein Namen ein. Wir benennen es „Suche Produkt“. Dann klicken Sie schließlich auf die Schaltfläche „Speichern und Schließen“ oben rechts.

how_to_create_a_search_modal_in_google_sheets

Wählen Sie im Blatt auf den Knopf > klicken Sie auf die 3 vertikalen Punkte auf der rechten Seite > Skript zuweisen.

how_to_create_a_search_modal_in_google_sheets

Geben Sie “showListInForm” ein und klicken Sie auf OK.

how_to_create_a_search_modal_in_google_sheets

Schritt 5: Testen Sie Ihre Suchmaske

Versuchen Sie im Blatt, auf die Schaltfläche „Produkt suchen“ zu klicken und die Suchmaske sollte erscheinen.

how_to_create_a_search_modal_in_google_sheets

Geben Sie einen Suchbegriff in das Suchfeld ein und in der Liste werden nur die relevanten Produkte angezeigt.

how_to_create_a_search_modal_in_google_sheets

Wenn Sie dann ein Produkt aus der Liste auswählen, wird es in die aktive Zelle im Blatt eingefügt.

how_to_create_a_search_modal_in_google_sheets

Zusammenfassung

Die Erstellung einer Suchmaske in Google Sheets kann die Datenerfassung und -organisation erheblich verbessern. Ob Sie Inventar verwalten, Umfragen durchführen oder mit einem Datenprojekt arbeiten, eine Suchmaske kann Zeit und Mühe sparen. Wenn Sie die in diesem Artikel beschriebenen Schritte befolgen, können Sie den Daten-Suchprozess vereinfachen und Ihr Google Sheets-Erlebnis effizienter und benutzerfreundlicher gestalten.

Benötigen Sie einen VBA Programmierer?

Wir als exact construct programmieren mit einem Team von rd. 20 Mitarbeitern seit über 10 Jahren Excel-Tools. Wir sind ein Nischenanbieter der spezialisiert auf Makros/VBA-Codes ist. Daneben unterstützen wir auch als 3rd Level Support die IT-Abteilungen rund um Probleme bei MS Office (Excel, Word, PowerPoint, etc.).
Haben Sie ein Excel-Problem? Benötigen Sie einen Makro-Programmierer? Rufen Sie uns unverbindlich an +41 52 511 05 25 oder kontaktieren Sie uns via Kontaktformular.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen