Lỗi hàm Query trong Google Sheet không ra kết quả

Liên hệ QC

MinhKhai

Giải pháp Ếc-xào
Tham gia
16/4/08
Bài viết
934
Được thích
568
Trong ứng dụng bảng tính thì có vẻ MS Excel không có đối thủ ở môi trường offline, nhưng môi trường online thì Google Sheet không hề thua kém, thậm chí còn nhỉnh hơn. Em bây giờ mới tìm hiểu về nó và thấy nhiều cái hay ho.

Em mới lần đầu sử dụng Googel sheet, và gặp 2 vấn đề, các bác nào rành về Google sheet thì hướng dẫn em với nhé
1. Em có dùng hàm Query như trong file, kết quả tìm kiếm chỉ xuất hiện nếu nhập thông tin tìm kiếm ở ô Prefix là số, nếu nhập là các chữ cái (VD: MHZ, TKZ..) thì không ra kết quả dù file nguồn vẫn có. Các anh chị nào biết lỗi gì và cách fix thì hướng dẫn em với.
Link file: https://docs.google.com/spreadsheets/d/1B_UeMUwt0pZJrRvPvkp9UvCShhPC2KITO-avbDNaWnU/edit#gid=0

2. File tìm kiếm trên có nguồn là 1 file csv. Em cứ ngỡ copy file .csv vào Google Drive trên PC đè lên file cũ là file nguồn tìm kiếm được update. Nhưng đời không như là mơ. Từ .csv ở Google Drive trên PC không tự động chuyển hóa thành Google sheet được. Qua Google search thì được biết cần phải dùng Google Apps Script, tuy nhiên món này em không thạo. Nhờ bác nào đi trước biết thì chia sẽ kiến thức cho em với nhé (Link tham khảo: https://stackoverrun.com/vi/q/7371109).

Xin chân thành cảm ơn !
 
Cột B bên sheet nguồn của bạn dữ liệu vừa là kiểu Number, vừa là kiểu Text. Nhưng trong câu Query của bạn thì lại Where theo dạng số "&B3&", thì dự liệu dạng Text sẽ không tìm thấy.
Nếu muốn thì phải thống nhát lại kiểu dữ liệu (Text) bên sheets nguồn) sau đó điều chỉnh "&B3&" thành '"&B3&"'

Bạn xem thử
Tại ô E3: =ISTEXT(B3)
Ô B6=
HTML:
=IF(E3=FALSE;QUERY(IMPORTRANGE("1A8ny8gPzzTs8fx7jkFm6a27FudMYqY22p_p-Dshp6oE";"Lagi_rec!A1:E3000");"Select Col2,Col3,Col4,Col5 Where Col2 ="&B3&" And Col3 ="&C3&" ORDER BY Col4";0);QUERY(IMPORTRANGE("1A8ny8gPzzTs8fx7jkFm6a27FudMYqY22p_p-Dshp6oE";"Lagi_rec!A1:E3000");"Select Col2,Col3,Col4,Col5 Where Col2 ='"&B3&"' And Col3 ="&C3&" ORDER BY Col4";0))
 
Vầy là được rồi (xem ở sheet bên cạnh nhé).

Mã:
=ArrayFormula(QUERY({""&IMPORTRANGE("1A8ny8gPzzTs8fx7jkFm6a27FudMYqY22p_p-Dshp6oE";"Lagi_rec!B:B")\IMPORTRANGE("1A8ny8gPzzTs8fx7jkFm6a27FudMYqY22p_p-Dshp6oE";"Lagi_rec!C:E")};"SELECT Col1, Col2, Col3, Col4 Where Col1='"&B3&"' AND Col2 ="&C3&" ORDER BY Col3";0))
 
Cột B bên sheet nguồn của bạn dữ liệu vừa là kiểu Number, vừa là kiểu Text. Nhưng trong câu Query của bạn thì lại Where theo dạng số "&B3&", thì dự liệu dạng Text sẽ không tìm thấy.
Nếu muốn thì phải thống nhát lại kiểu dữ liệu (Text) bên sheets nguồn) sau đó điều chỉnh "&B3&" thành '"&B3&"'

Bạn xem thử
Tại ô E3: =ISTEXT(B3)
Ô B6=
HTML:
=IF(E3=FALSE;QUERY(IMPORTRANGE("1A8ny8gPzzTs8fx7jkFm6a27FudMYqY22p_p-Dshp6oE";"Lagi_rec!A1:E3000");"Select Col2,Col3,Col4,Col5 Where Col2 ="&B3&" And Col3 ="&C3&" ORDER BY Col4";0);QUERY(IMPORTRANGE("1A8ny8gPzzTs8fx7jkFm6a27FudMYqY22p_p-Dshp6oE";"Lagi_rec!A1:E3000");"Select Col2,Col3,Col4,Col5 Where Col2 ='"&B3&"' And Col3 ="&C3&" ORDER BY Col4";0))
Cảm ơn bác đã hỗ trợ
Em thử hàm của bác thì vẫn không ra kết quả nếu dữ liệu tìm kiếm là kiểu text. Trường hợp là kiểu số thì vẫn ra kết quả tốt.
Trước khi em up bài hỏi, em cũng đã cho thử dấu ' hoặc " vào như bác hướng dẫn mà không được.
Bài đã được tự động gộp:

Vầy là được rồi (xem ở sheet bên cạnh nhé).

Mã:
=ArrayFormula(QUERY({""&IMPORTRANGE("1A8ny8gPzzTs8fx7jkFm6a27FudMYqY22p_p-Dshp6oE";"Lagi_rec!B:B")\IMPORTRANGE("1A8ny8gPzzTs8fx7jkFm6a27FudMYqY22p_p-Dshp6oE";"Lagi_rec!C:E")};"SELECT Col1, Col2, Col3, Col4 Where Col1='"&B3&"' AND Col2 ="&C3&" ORDER BY Col3";0))
Hàm của bạn chạy rất tốt. Cảm ơn bạn rất nhiều.
Không rõ hàm ArrayFormular có chức năng gì mà giải quyết được vấn đề của mình nhỉ? Mình đã đọc hướng dẫn mà vẫn chưa hiểu để áp dụng cho trường hợp khác.
 
Không rõ hàm ArrayFormular có chức năng gì mà giải quyết được vấn đề của mình nhỉ? Mình đã đọc hướng dẫn mà vẫn chưa hiểu để áp dụng cho trường hợp khác.
ArrayFormula nghĩa là "công thức mảng", nó tương ứng với hai dấu {} ở công thức mảng trên MS Excel.
Trên Google Sheets, có 2 cách tạo thành công thức mảng:
- Viết hàm ArrayFormula();
- Hoặc gõ tổ hợp phím Ctrl + Shift + Enter (tương tự làm trên MS Excel).

Cái quan trọng ở công thức trên là tạo được mảng dữ liệu gồm cột B sau khi chuyển thành Text và các cột C:E.
Google Sheets có cái rất tuyệt vời là cho phép ghép các Range thành Array bằng cách liệt kê Ranges vào {}, ghép nối tiếp theo cột hoặc hàng. Ở trên ghép nối tiếp theo cột.
 
- Hoặc gõ tổ hợp phím Ctrl + Shift + Enter (tương tự làm trên MS Excel).

Mình đã thử nhấn Ctr+Shift+Enter công thức ngay lập thức được bọc bởi hàm ArrayFormular. Tuy nhiên kq không như ý và tất nhiên nó không giống với hàm bạn đã tạo cho mình trước đó. Cấu trúc hàm bạn tạo trước đó có vẻ hơi khác như hướng dẫn của Google sheet.
 
Mình đã thử nhấn Ctr+Shift+Enter công thức ngay lập thức được bọc bởi hàm ArrayFormular. Tuy nhiên kq không như ý và tất nhiên nó không giống với hàm bạn đã tạo cho mình trước đó. Cấu trúc hàm bạn tạo trước đó có vẻ hơi khác như hướng dẫn của Google sheet.
Cái quan trọng ở công thức :
=ArrayFormula(QUERY({""&IMPORTRANGE("1A8ny8gPzzTs8fx7jkFm6a27FudMYqY22p_p-Dshp6oE";"Lagi_rec!B:B")\IMPORTRANGE("1A8ny8gPzzTs8fx7jkFm6a27FudMYqY22p_p-Dshp6oE";"Lagi_rec!C:E")};"SELECT Col1, Col2, Col3, Col4 Where Col1='"&B3&"' AND Col2 ="&C3&" ORDER BY Col3";0))
là :
- Phép nối chuỗi : ""& --> bác [B]befaint[/B] chuyển đổi toàn bộ dữ liệu được lấy trong Importrange sang kiểu Text
- Công thức mảng ArrayFormula --> được sử dụng để phép toán thực hiện nối ký tự rỗng phía trên cho toàn mảng dữ liệu được lấy trong Importrange
 
Bạn có thể tìm file Công thức Query trong Google Sheets để tham khảo. Do trong 1 cột mà vừa có text va number nó chỉ hiển thị dạng text, Bạn có thể xem mục 5 trong sheet Error
 
Em cũng đang gặp vấn đề với query mà không biết cách sửa :( không biết mọi người có thể giúp đc không ạ
 
Em cũng đang gặp vấn đề với query mà không biết cách sửa :( không biết mọi người có thể giúp đc không ạ
Bạn tìm file Công thức Query mình gửi tặng có hướng dẫn cụ thể và có nói đến vấn đề bị lỗi nữa nha Bạn.
 
Web KT
Back
Top Bottom