Làm cách nào để chỉ trả về hàng đầu tiên chứa giá trị bạn đang tìm kiếm trong truy vấn?


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''")

Có một công thức tôi hiện đang sử dụng. Tôi có hai hàng trên trang F / O DEFvsREC của mình có chứa giá trị tôi đang tìm kiếm. Tôi chỉ cần trả về hàng đầu tiên chứa giá trị đó. Số hàng là 19.

Tôi xin lỗi nếu tôi hỏi những câu hỏi thực sự đơn giản. Tôi rất mới với điều này.

Câu trả lời:


10

Để chỉ trả về một hàng, sử dụng limit 1trong truy vấn; mệnh đề này xuất hiện trước label:

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

Thứ tự mặc định của các hàng được trả về querylà thứ tự xuất hiện trong trang tính, do đó, điều này sẽ dẫn đến hàng đầu tiên được trả về.


Giải pháp thay thế : sử dụng filterthay thế. Công thức sẽ ngắn hơn rất nhiều:

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

Bộ lọc giữ các cột từ C đến V chỉ từ các hàng có B bằng với nội dung của A35. Sau đó, array_constrainbuộc đầu ra không có nhiều hơn 1 hàng và 1e7 (= 10000000) cột. (Số lượng cột lớn một cách vô lý chỉ để cho biết chúng tôi không áp đặt giới hạn cho các cột.)


Tôi đang nhập dữ liệu từ một tờ riêng. Vì vậy, làm thế nào tôi sẽ thêm khóa bảng. "F / O DEFVSREC" vào công thức lọc mảng_constrain này để làm cho nó hoạt động chính xác?
gallant03

Đặt 'F/O DEFVSREC'!C:Vthay vì C:V, và tương tự cho B:B. Đây chỉ là cách tham chiếu ô được tạo, nó không phụ thuộc vào lệnh bạn sử dụng.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.