Cách Lọc Tuần Hiện Tại Ngang Trong Google Sheets

Đầu tiên, bạn phải hiểu ý tôi khi nói về việc lọc tuần hiện tại ngang trong Google Sheets. Giả sử bạn có một tập dữ liệu chứa nhiều cột và tiêu đề cột là các ngày. Điều đó có nghĩa là hàng đầu tiên trong tập dữ liệu của bạn sẽ là hàng tiêu đề với các ngày.

Bạn muốn chỉ lọc các cột mà hàng tiêu đề chứa các ngày rơi vào tuần hiện tại. Đó là ý tôi khi nói về việc lọc tuần hiện tại ngang trong Google Sheets.

Các Hàm Phù Hợp

Đối với mục đích của chúng ta, chúng ta có thể sử dụng hai hàm có khả năng lọc. Đó chính là Hàm Truy vấn (Query) và Hàm Lọc (Filter).

Ngoài ra, để tìm số tuần của tuần hiện tại, chúng ta cũng có thể cần sử dụng hàm Weeknum.

Vì hàm Weeknum không phải là một phần của Query, chúng ta có thể cần tuân theo một phương pháp làm việc xung quanh để lọc dữ liệu.

Nhưng hàm Filter hỗ trợ lọc ngang và cũng hỗ trợ hàm Weeknum. Vì vậy, chúng ta có thể sử dụng trực tiếp tiêu chí dựa trên Weeknum trong Filter.

Trong bài viết này, hãy tìm hiểu cách lọc các ngày rơi vào tuần hiện tại trong hàng tiêu đề trong Google Sheets. Trước tiên, tôi sẽ sử dụng Filter, sau đó chúng ta có thể chuyển sang Query.

Dữ liệu Mẫu:

Data Sample

Hàm Lọc để Lọc Tuần Hiện Tại Ngang

Có hai bước trong việc lọc ngang loại này trong Google Sheets.

  1. Lọc các cột chứa ngày rơi vào tuần hiện tại trong hàng tiêu đề.
  2. Kết hợp cột văn bản (ở đây, là cột đầu tiên) với kết quả đã lọc.

Hãy lọc tuần hiện tại ngang trong Google Sheets bằng cách sử dụng công thức Filter sau đây.

=filter(B2:AF,weeknum(B2:AF2)=weeknum(today()))

Thêm công thức Filter trên vào ô AH2 để lọc tập dữ liệu ngang dựa trên tiêu chí Weeknum.

Cú pháp của hàm FILTER (theo công thức của chúng tôi ở trên) cho tham khảo nhanh của bạn:

FILTER(range, condition1)

range (phạm vi cần lọc): B2:AF

condition: weeknum(B2:AF2)=weeknum(today())

Cuối cùng, kết hợp cột văn bản đầu tiên với kết quả đã lọc. Để làm điều đó, chỉnh sửa công thức Filter ở trên như sau.

={A2:A,filter(B2:AF,weeknum(B2:AF2)=weeknum(today()))}

Filter Current Week Horizontally in Google Sheets

Cách này, chúng ta có thể sử dụng hàm Filter để lọc tuần hiện tại (dữ liệu tuần hiện tại) ngang trong Google Sheets.

Truy Vấn Dữ Liệu Tuần Hiện Tại Ngang

Thường, chúng ta sử dụng hàm Query để lọc dọc. Tôi có nghĩa là lọc một cột hoặc nhiều cột dựa trên các giá trị trong những cột đó.

Nếu cột ngày là cột đầu tiên, chúng ta có thể dễ dàng sử dụng Query để lọc các hàng dựa trên các ngày trong cột đó. Nhưng không có hàm Weeknum trong Truy vấn.

Tức là để Truy vấn (lọc) tuần hiện tại ngang hoặc dọc, chúng ta cần phụ thuộc vào hàm Weeknum.

Ở đây, tôi sẽ sử dụng một phương pháp giải quyết để lọc/truy vấn tuần hiện tại ngang. Dưới đây là cách.

Logic

Trong mệnh đề SELECT trong hàm Query, chúng ta có thể chỉ định các cột để lọc.

Eg.: =query({A2:AF},"Select Col1, Col2")

Đầu tiên, xem kết quả của công thức Filter bên trên. Dựa trên đó, chúng ta cần lọc Cột 1 và các cột từ 21 đến 27.

Ô U2 (cột thứ 21) chứa ngày bắt đầu của tuần hiện tại, và ô AA2 (cột thứ 27) chứa ngày kết thúc của tuần hiện tại.

Để Truy vấn Tuần Hiện Tại Ngang, chúng ta phải trước tiên tìm các số cột trên theo cách thủ công. Dưới đây là các bước để làm theo.

Lưu ý:
Tôi khuyến nghị bạn sử dụng phương pháp Filter. Phương pháp Truy vấn này chỉ để mục đích học tập vì nó có tính phức tạp cao.

Cách thực hiện:

Hai Công thức Match để Tìm Các Số Cột

Match_Formula_1

  1. Chèn công thức MATCH dưới đây vào ô AH1 để trả về số cột bắt đầu của tuần hiện tại. Công thức sẽ trả về số 21.

=ArrayFormula(match(weeknum(today()),weeknum(A2:AF2),0))

Match_Formula_2

  1. Chèn công thức MATCH dưới đây vào ô AI1 để trả về số cột kết thúc của tuần hiện tại. Công thức sẽ trả về số 27.

=ArrayFormula(match(weeknum(today()),weeknum(A2:AF2),1))

Cả hai công thức Match đều giống nhau trừ khi đối số cuối cùng.

Bạn có thể giải thích các công thức này không?

Có chứ! Đây là công thức.

Cú pháp của hàm MATCH cho tham khảo nhanh của bạn:

MATCH(search_key, range, search_type)

Đối số cuối cùng trong công thức, tức search_type, 0, xem xét phạm vi như không được sắp xếp (ngay cả khi nó là phạm vi đã được sắp xếp). Vì vậy nó sẽ trả về giá trị khớp chính xác của giá trị (Weeknum) được tìm thấy ở đầu của phạm vi (kết quả là 21).

Nếu nó là (search_type) 1, công thức xem xét phạm vi như là một phạm vi đã được sắp xếp và sẽ trả về giá trị lớn nhất nhỏ hơn hoặc bằng search_key (Weeknum). Vì vậy, giá trị khớp cuối cùng sẽ được trả về (kết quả là 27).

Lưu ý:
Hàng đầu tiên trong tập dữ liệu chứa các ngày phải được sắp xếp theo thứ tự tăng dần. Nếu không, các công thức Match trên sẽ không hoạt động chính xác.

Truy Vấn để Lọc Tuần Hiện Tại Ngang

Bây giờ chúng ta cần viết công thức như sau để lọc tuần hiện tại ngang trong Google Sheets.

=query({A2:AF},"Select Col1, **Col21, Col22, Col23, Col24, Col25, Col26, Col27**",1)

Để làm cho phần công thức in đậm trên trở nên linh hoạt, chúng ta có thể sử dụng các công thức Match ở trên như sau.

Các Bước để thực hiện:

Hãy viết một công thức Sequence để thay thế Col21, Col22, Col23, Col24, Col25, Col26, Col27 trong công thức trên.

=sequence(AI1-AH1+1,1,AH1)

Cú pháp SEQUENCE để bạn tham khảo nhanh:

SEQUENCE(rows, columns, start)

rows (số hàng trả về) – AI1-AH1+1 (nghĩa là match_formula_2-match_formula_1+1)
columns (số cột trả về) – 1
start (chuỗi bắt đầu từ) – AH1 (match_formula_1)

Để bỏ qua việc sử dụng các ô trợ giúp AH1 và AI1, chúng ta có thể viết lại công thức trên như sau.

=sequence( ArrayFormula(match(weeknum(today()),weeknum(A2:AF2),1))- ArrayFormula(match(weeknum(today()),weeknum(A2:AF2),0))+1, 1, ArrayFormula(match(weeknum(today()),weeknum(A2:AF2),0)) )

Query to Filter Current Week Horizontally - Dynamic Select

Chúng ta cần chỉnh sửa công thức trên để biến nó thành văn bản mệnh đề Truy vấn Col21, Col22, Col23, Col24, Col25, Col26, Col27.

Đây là công thức đã được chỉnh sửa.

=textjoin( ",",true, ArrayFormula( "Col"&sequence( ArrayFormula(match(weeknum(today()),weeknum(A2:AF2),1))- ArrayFormula(match(weeknum(today()),weeknum(A2:AF2),0))+1, 1, ArrayFormula(match(weeknum(today()),weeknum(A2:AF2),0)) ) ) )

Chúng ta chỉ cần sử dụng một công thức ArrayFormula trong công thức trên. Vì vậy chúng ta có thể rút gọn nó như sau và gọi nó là dynamic_select_formula.

Dynamic_Select_Formula

=ArrayFormula( textjoin( ",",true, "Col"&sequence( ArrayFormula(match(weeknum(today()),weeknum(A2:AF2),1))- ArrayFormula(match(weeknum(today()),weeknum(A2:AF2),0))+1, 1, ArrayFormula(match(weeknum(today()),weeknum(A2:AF2),0)) ) ) )

Đây là công thức Truy vấn không động để lọc dữ liệu tuần hiện tại ngang trong Google Sheets.

=query({A2:AF},"Select Col1, **Col21, Col22, Col23, Col24, Col25, Col26, Col27**",1)

Hãy xóa phần công thức Col21, Col22, Col23, Col24, Col25, Col26, Col27″ trong công thức trên.

Vậy công thức sẽ trông như sau.

=query({A2:AF},"Select Col1,

Thay đổi như sau.

=query({A2:AF},"Select Col1,"&

Sau đó, sao chép dán công thức dynamic_select_formula ở cuối công thức trên.

=query({A2:AF},"Select Col1,"&ArrayFormula(textjoin(",",true,"Col"&sequence(match(weeknum(today()),weeknum(A2:AF2),1)-match(weeknum(today()),weeknum(A2:AF2),0)+1,1,match(weeknum(today()),weeknum(A2:AF2),0)))))

Đó là tất cả. Trên đây là hai cách để lọc tuần hiện tại ngang trong Google Sheets.

Hãy thưởng thức!

Related posts