Beim Lesen der Dokumentation für die =QUERY
Funktionen 1 , 2 , 3 scheint ein Teil davon zu implizieren, dass ich in der Lage sein sollte, Spaltenüberschriften direkt in meiner Abfrage zu verwenden. Beispielsweise akzeptiert die =QUERY
Funktion einen dritten optionalen Parameter , HEADERS
mit dem Sie eine Anzahl von Kopfzeilen angeben können.
Die meisten meiner Abfragen wären viel hübscher, wenn ich Spaltenüberschriften verwenden könnte, also keine Spaltenindizes verwenden müsste, aber ich bin nicht in der Lage, es zum Laufen zu bringen.
Beispiel:
A B C
---------------------
Name Phone City
Vidar 12345678 Oslo
Rupert 32165487 Berlin
Ich kann dies mithilfe von Spaltenindizes abfragen:
=QUERY(Sheet1!A1:C; "select A, B, C where A = 'Vidar'"; 1)
... aber ohne Spaltenüberschriften:
=QUERY(Sheet1!A1:C; "select A, B, C where Name = 'Vidar'"; 1)
... das gibt mir Fehler: Ungültige Abfrage: Spalte [Name] existiert nicht in Tabelle
Ist es überhaupt möglich, Spaltenüberschriften wie diese zu verwenden? Wenn nicht, wozu dient der HÈADERS
Parameter?
quelle
HEADERS > 0
dann die angegebene Anzahl von Kopfzeilen=QUERY
über den Abfrageergebnissen zurückgegeben wird, richtig? Das macht Sinn - ich dachte,HEADERS
nur bestimmte Zeilen in der Abfrage zu ignorieren.OFFSET
Option können die ersten Zeilen ignoriert werden.Ja, es ist möglich. Zuerst müssen Sie MATCH verwenden, um die Spaltennummer der Spalte abzurufen, deren Wert mit 'Name' übereinstimmt. Dann müssen Sie ADDRESS verwenden, um die Zellreferenz zu erhalten. Schließlich müssen Sie SUBSTITUTE verwenden, um die Zeilennummer aus dem Zellbezug zu entfernen.
quelle
Während eines alten Beitrags wollte ich meine Lösung zum Mix hinzufügen. Sie können Spaltennamen verwenden, die ich für nützlicher halte. Auf diese Weise müssen Sie Ihre Abfragefunktionsaufrufe nicht bearbeiten, wenn Sie Spalten in die Quelldaten einfügen oder daraus entfernen.
Ich habe gesehen, dass andere das Match und das Substitute verwenden. Ich habe etwas anderes implementiert, als nur den Aufruf der Abfragefunktion.
Erstens - Erstellen Sie eine Nachschlagetabelle mit all Ihren Spaltennamen wie folgt. Meine Nachschlagetabelle beginnt in Spalte E eines "Config" -Blatts, nur weil ich andere Elemente auf dem Blatt habe, könnte es leicht in ein eigenes Blatt platziert werden.
Spalte 1 (Spaltenname)
Spalte 2 (Spalte #)
Spalte 3 (Spaltenbuchstabe)
Ich bin offen für Verbesserungen, um eine Spaltennummer in einen Buchstaben umzuwandeln. Diese Formel ist insofern begrenzt, als sie nur 78 Spalten verarbeitet. Mehr als genug für mich.
Jetzt würde Ihr Abfragefunktionsaufruf ungefähr so aussehen:
Halten Sie es schön formatiert und es ist überhaupt nicht schlecht zu verwalten. Sie leiden nur, wenn Sie den Spaltenindex Ihres Lookup-Bereichs ändern. Dies sollte sich jedoch nicht oft, wenn überhaupt, ändern, da es sich um eine Hilfsreichweite handelt.
quelle
Alte Frage, aber ich denke, diese Lösung kann es wert sein.
Sie können eine benutzerdefinierte Skriptfunktion verwenden, die den Spaltenindex (dh A, B, C ...) unter Verwendung eines Headernamens abruft und Folgendes ermöglicht:
Mit
colIndex
funktion:Welche möglicherweise einfacher zu bedienen und zu lesen sind.
quelle
Hier ist meine Lösung:
Wenn Sie eine Spalte mit dem Namen "Stadt" haben, erstellen Sie irgendwo eine neue Zelle mit dem Index dieser Zelle:
Sie können dann einen benannten Bereich für die Zelle Z: 2 mit dem Namen "Name", Z: 3 = "Telefon", Z: 4 = "Stadt" erstellen.
In Ihrer Anfrage können Sie dann schreiben:
Sie können dies mit der Adressanpassungslösung kombinieren, damit Sie die neu angeordneten Spalten nicht im Auge behalten müssen.
quelle