Wie kann nur die erste Zeile zurückgegeben werden, die den Wert enthält, nach dem Sie in einer Abfrage suchen?

8
=QUERY('F/O DEFVSREC'!$1:$1000, "select C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V where B='"&A35&"'label C'', D'', E'', F'', G'', H'', I'', J'', K'', L'', M'', N'', O'', P'', Q'', R'', S'', T'', U'', V''")

Es gibt die Formel, die ich derzeit verwende. Ich habe zwei Zeilen auf meinem F / O DEFvsREC-Blatt, die den Wert enthalten, den ich suche. Ich muss nur die erste Zeile zurückgeben, die diesen Wert enthält. Die Zeilennummer ist 19.

Ich entschuldige mich, wenn ich wirklich einfache Fragen stelle. Ich bin sehr neu in diesem Bereich.

gallant03
quelle

Antworten:

10

Verwenden Sie limit 1in der Abfrage, um nur eine Zeile zurückzugeben . Diese Klausel erscheint vor label:

select C, D, ... where B='"&A35&"' limit 1 label C'', D''...

Die Standardreihenfolge der zurückgegebenen Zeilen queryist die Reihenfolge, in der sie im Blatt angezeigt werden. Dies führt dazu, dass die erste Zeile zurückgegeben wird.


Alternative Lösung : Verwenden Sie filterstattdessen. Die Formel wird viel kürzer sein:

=array_constrain(filter(C:V, B:B = A35), 1, 1e7)

Der Filter behält die Auswahl der Spalten C bis V nur aus den Zeilen bei, wobei B gleich dem Inhalt von A35 ist. array_constrainErzwingt dann, dass die Ausgabe nicht mehr als 1 Zeile und 1e7 (= 10000000) Spalten enthält. (Die absurd große Anzahl von Spalten soll nur darauf hinweisen, dass wir den Spalten keine Begrenzung auferlegen.)


quelle
Ich gebe Daten von einem separaten Blatt ein. Wie würde ich den Blattschlüssel hinzufügen? "F / O DEFVSREC" in diese Array_constrain-Filterformel, damit es richtig funktioniert?
gallant03
Setzen Sie 'F/O DEFVSREC'!C:Vstatt C:Vund ähnlich für B:B. Auf diese Weise werden Zellreferenzen erstellt. Dies hängt nicht davon ab, welchen Befehl Sie verwenden.