Nhờ các bạn chỉ giáo công thức Query sao cứ chạy lệch 1 tháng

Liên hệ QC

Salemok

Thành viên hoạt động
Tham gia
12/4/07
Bài viết
136
Được thích
7
Mình có công thức tại ô A1 sheet S4
trong công thức ô A1
=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheet...fGaiJP7KT5tOg24fSAqlGr19VU/edit#gid=152118611";"data");"select Col8 where month(Col2) =5 ";0)
Nếu lấy month(Col2)=5 thì nó trả về Tháng 6 (tức cộng thêm 1), nếu lấy 4 nó trả về tháng 5.....
Mong các bạn chỉ giúp tại sao? và cách chỉnh cho đúng.
Cám ơn các bạn
 
Nếu lấy month(Col2)=5 thì nó trả về Tháng 6 (tức cộng thêm 1), nếu lấy 4 nó trả về tháng 5.....
Mong các bạn chỉ giúp tại sao? và cách chỉnh cho đúng.
Cám ơn các bạn
Hàm month trả về giá trị tính từ 0, tức vd. trả về 0 cho tháng 1, và trả về 4 cho tháng 5. Vậy sửa thành where month(Col2)=4 nếu bạn muốn lấy cho tháng 5.
 
Vậy tại cột B sheet S5 mình muốn nó tính theo cột tháng 12345678910112 mà là địa chỉ ô chứ ko phải đánh tay vào từ A2 đến A13.
Mong các bạn chỉ giáo.
Cám ơn các bạn
 
Mình thay vào ko đc nhờ bạn xem giúp nhé
Có mỗi việc sửa mà bạn cũng không biết làm thì bó tay. Cái tôi viết ở bài #4 là đoạn cuối của công thức.
Tại sao bạn sửa để có thêm ở cuối ";0)"?

Hiện bạn có công thức cho B6
Mã:
=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1aUwGP5sPxEjZVdjJffGaiJP7KT5tOg24fSAqlGr19VU/edit#gid=152118611";"data");"select Col8 where month(Col2)=" & A5;0) ";0)"

Đúng phải là
Mã:
=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1aUwGP5sPxEjZVdjJffGaiJP7KT5tOg24fSAqlGr19VU/edit#gid=152118611";"data");"select Col8 where month(Col2)=" & A5;0)

Nhưng ở tập tin trước bạn muốn tính tổng (̣bạn đã sửa tập tin) nên phải là.
Mã:
=SUM(QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1aUwGP5sPxEjZVdjJffGaiJP7KT5tOg24fSAqlGr19VU/edit#gid=152118611";"data");"select Col8 where month(Col2)=" & A5;0))
 
Mình đã xem và tự thay lại đượcrồi. Rất ko hiểu tại sao mình lại thay kiểu gì ko biết nữa. Cám ơn bạn đã chỉ bảo chu đáo.
Cho mình hỏi thêm chút về đoạn trong câu lệnh query
"select Col8 where month(Col2)="
đoạn trong ngoặc kép này là đoạn " select...where.. " là kết thúc mà sao bỏ lửng tại ngay sau dấu= mà nó vẫn chạy nhỉ
Mong bạn chỉ giúp
 
Mình đã xem và tự thay lại đượcrồi. Rất ko hiểu tại sao mình lại thay kiểu gì ko biết nữa. Cám ơn bạn đã chỉ bảo chu đáo.
Cho mình hỏi thêm chút về đoạn trong câu lệnh query
"select Col8 where month(Col2)="
đoạn trong ngoặc kép này là đoạn " select...where.. " là kết thúc mà sao bỏ lửng tại ngay sau dấu= mà nó vẫn chạy nhỉ
Mong bạn chỉ giúp
Có toán tử nối chuỗi & mà bạn.

Giả sử A5 = 4. Lúc này

"select Col8 where month(Col2)=" & A5 = "select Col8 where month(Col2)=" & 4 = "select Col8 where month(Col2)=4"

Hoặc dùng A6 = 5 thì phải sửa thành "select Col8 where month(Col2)=" & (A6 - 1)

"select Col8 where month(Col2)=" & (A6 - 1) = "select Col8 where month(Col2)=" & (5 - 1) = "select Col8 where month(Col2)=" & 4 = "select Col8 where month(Col2)=4"

Nên dùng A6 vì công thức nhập cho B6. Vì nếu dùng với A5 thì công thức cho B2 lại tham chiếu tới A1, tức không hay lắm vì thay cho A1 = "Tháng" thì phải có A1 = 0.
 
Lần chỉnh sửa cuối:
Cám ơn bạn chỉ giáo,
mình hiểu rồi
Bài đã được tự động gộp:

Tại sheetS5 mình đã làm đc rồi.
Một số ô bị #N/Athif khử bằng IF hay sao bạn
 
Cám ơn bạn chỉ giáo,
mình hiểu rồi
Bài đã được tự động gộp:

Tại sheetS5 mình đã làm đc rồi.
Một số ô bị #N/Athif khử bằng IF hay sao bạn
Công thức cho B2
Mã:
=IFERROR(SUM(QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1aUwGP5sPxEjZVdjJffGaiJP7KT5tOg24fSAqlGr19VU/edit#gid=152118611";"data");"select Col8 where month(Col2)=" & (A2-1);0));"")

Tôi đã nhập trong tập tin bài #4
 
Đúng rồi . Cám ơn bạn
 
Lần chỉnh sửa cuối:
Tại cột C (đang sửa C) Sheet S5. Mình muốn nó truy vấn thêm điều kiện cột A (năm) nữa.
Mình thêm and mà sai ở đâu ko rõ.
Nhờ các bạn giúp đỡ.
Xin cám ơn
=IFERROR(SUM(QUERY(IMPORTRANGE("https://docs.google.com/spreadsheet...fGaiJP7KT5tOg24fSAqlGr19VU/edit#gid=152118611";"data");"select Col8 where month(Col2)=" & (A7-1) and year(Col2)=" & (A7);0));"")")))
Câu truy vấn là một CHUỖI, mà bạn rất kém về nối chuỗi.

Với 1 điều kiện bạn có câu truy vấn "select Col8 where month(Col2)=" & (B6-1). Không thể là "select Col8 where month(Col2)=" & (A7-1) vì month trả về tháng còn A7 là năm.

Bây giờ phải thêm một đoạn sao cho đoạn đó là chuỗi chuẩn. and year(Col2)=" & (A7) không là chuỗi chuẩn. Chuỗi chuẩn là "and year(Col2)=" & (A7).

Vậy nối 2 điều kiện là "select Col8 where month(Col2)=" & (B6-1) & "and year(Col2)=" & (A7)

Và công thức phải là

=IFERROR(SUMA(QUERY(IMPORTRANGE("https://docs.google.com/spreadsheet...fGaiJP7KT5tOg24fSAqlGr19VU/edit#gid=152118611";"data");"select Col8 where month(Col2)=" & (B6-1) & "and year(Col2)=" & (A7);0));"")

Tại sao công thức của bạn lại để thêm cái đuôi ")))?

Tôi đã sửa trong tập tin.
 
Cám ơn bạn mình đã sáng ra vấn đề nối chuỗi rồi.
Rất cám ơn Batman1
 
Mình vừa thêm điều kiện Col3=NT vào thì nó chạy tốt (tại sheeet S5 ô C7)
=IFERROR(SUM(QUERY(IMPORTRANGE("https://docs.google.com/spreadsheet...fGaiJP7KT5tOg24fSAqlGr19VU/edit#gid=152118611";"data");"select Col8 where month(Col2)=" & (B7-1) & "and year(Col2)=" & (A7) & "and Col3='NT'";0));"")
Nhưng khi mình thay NT sang địa chỉ là C1 thì ko chạy.
=IFERROR(SUM(QUERY(IMPORTRANGE("https://docs.google.com/spreadsheet...fGaiJP7KT5tOg24fSAqlGr19VU/edit#gid=152118611";"data");"select Col8 where month(Col2)=" & (B8-1) & "and year(Col2)=" & (A8) & "and Col3=" & ($C$1);0));"")")))"
Mong bạn chỉ giúp
Cám ơn bạn
 
=IFERROR(SUM(QUERY(IMPORTRANGE("https://docs.google.com/spreadsheet...fGaiJP7KT5tOg24fSAqlGr19VU/edit#gid=152118611";"data");"select Col8 where month(Col2)=" & (B8-1) & "and year(Col2)=" & (A8) & "and Col3=" & ($C$1);0));"")")))"
Mong bạn chỉ giúp
Cám ơn bạn
Bạn có Col3='NT' đúng không? Tại sao không là Col3=NT? Vì không chạy đúng không? Vậy thì tại sao lại là & ($C$1)? 2 cái đỏ đỏ kia đâu rồi?

So sánh với công thức của mình để biết sai ở đâu.

=IFERROR(SUMA(QUERY(IMPORTRANGE("https://docs.google.com/spreadsheet...fGaiJP7KT5tOg24fSAqlGr19VU/edit#gid=152118611";"data");"select Col8 where month(Col2)=" & (B7-1) & "and year(Col2)=" & (A8) & "and Col3='" & ($C$1)&"'";0)); "")

Bạn coi chủ đề này như một khóa học miễn phí nhỉ. Thôi bạn chịu khó đăng ký một khóa học đi.

Tôi dừng ở đây.
 
Lần chỉnh sửa cuối:
Mình kiến thức ko có gì nhưng quá trình mắc phải.
May nhờ bạn bớt chút thời giản chỉ bảo.
Cám ơn bạn mình hiểu thêm chút rồi
 
Đã bảo là Google Sheets khác xa Excel.
Từ lúc thấy một hàm là xong tất ham rồi hả bạn?
Có biết tại sao lúc thì & A5 chạy ngon lành, mà & C1 không ăn thua không? Còn dài dài mới hiểu chút được.
Thôi thì sự nghiệp học phải từ từ thôi, không vội được đâu.
 
Thực sự ko dám hỏi nhiều. Vụ A5 và C1 đó banjnois thì mình chịu thật
 
Thực sự ko dám hỏi nhiều. Vụ A5 và C1 đó banjnois thì mình chịu thật
Bạn mới học là một chuyện nhưng bạn không chịu suy nghĩ, không tư duy. Nếu bạn chịu khó nghĩ thì bạn sẽ thành công, ít ra là "gà mù vớ phải cá rán".

Bạn biết vì sao "... =" & A7 được không? Vì A7 là số nên "... =" & A7 = "... =2022". Không có mập mờ gì ở đây. Rõ ràng 2022 trong chuỗi truy vấn nó là giá trị để so sánh.

Thế "and Col3=" & ($C$1)?

"and Col3=" & ($C$1) = "and Col3=" & "NT" = "and Col3=NT"

Ở trên có sự mập mờ. Trong chuỗi truy vấn ngoài các giá trị dữ liệu còn có các TỪ KHÓA vd. select, where, date, and, or, contains, starts with, ends with, matches, null ... Ngay cả những literal Col1, Col2, ... cũng có nghĩa cụ thể trong chuỗi truy vấn. Google sheets không biết chắc chắn bạn muốn gì. Google sheets không biết NT là gì, mà cũng chả có từ khóa nào thế nên công thức có lỗi là đương nhiên. Do không rõ ràng nên muốn chiếu cố cho bạn để hiểu cũng không được. Vì thế có lỗi.

Nếu là "and Col3='" & ($C$1) & "'" thì rõ rồi. "and Col3='" & ($C$1) & "'" = "and Col3='" & "NT" & "'" = "and Col3='NT'". Lúc này thì rõ rồi, 'NT' là giá trị chuỗi.

Tại sao tôi nói bạn không chịu suy nghĩ? Vì trước đó bạn biết viết "and Col3='NT'". Nếu bạn không hiểu nhưng cứ chịu suy nghĩ thì bạn sẽ thử thay NT bằng C1.

"and Col3='NT'" = "and Col3='" & "NT" & "'" = "and Col3='" & $C$1 & "'"

Tại sao bạn bỏ cặp '' đi? Không biết không hiểu nhưng cứ biến tấu từ công thức đúng "and Col3='NT'" thì bạn sẽ có kết quả dù chưa hiểu lắm.

Bạn nên học một khóa đi nếu bạn không biết tự học. Có nhiều cái người ta trách bạn không biết nhưng thực ra có những người học nhiều họ cũng không biết rõ.

Vụ A5 và C1 đó banjnois thì mình chịu thật
Rõ ràng trong công thức

=IFERROR(SUM(QUERY(IMPORTRANGE("https://docs.google.com/spreadsheet...fGaiJP7KT5tOg24fSAqlGr19VU/edit#gid=152118611";"data");"select Col8 where month(Col2)=" & (B7-1) & "and year(Col2)=" & (A7) & "and Col3='NT'";0));"")

bạn có đỏ đỏ. Tại sao khi thay bằng C1 bạn lại bỏ đỏ đỏ? Nếu khi thấy sai mà bạn tò tò thêm lại đó đỏ thì bạn có kết quả đúng, dù chưa hiểu kỹ. Bạn không chỉ không có kỹ năng nối chuỗi mà còn không chịu suy nghĩ chút ít.


Tôi không bao giờ trách người khác dốt. Tôi chỉ trách người ta không chịu khó suy nghĩ, tư duy, lười.

May nhờ bạn bớt chút thời giản chỉ bảo.
Ít người trên GPE chịu khó giải thích như tôi. Bạn cứ theo dõi thì biết. Thường thì người ta tung công thức lên cho bạn không một lời giải thích. Hoặc chỉ viết một câu vu vơ thôi. Một câu vu vơ cũng có được lời cám ơn thì chỉ có ngu ngơ như batman1 mới bỏ công ra thôi.
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom