RegexReplace để bao bọc số trong ngoặc vuông và Ứng dụng trong Truy vấn

Với sự giúp đỡ của hàm RegexReplace, chúng ta có thể dễ dàng bao bọc số trong chuỗi văn bản trong Google Sheets. Điều này giúp chúng ta định dạng các chuỗi chứa số. Ngoài ra, có một ứng dụng quan trọng khác của việc thêm ngoặc vuông xung quanh các số trong Google Sheets.

Như đã đề cập (một phần) trong tiêu đề, chúng ta có thể sử dụng phương pháp Regex trên để tham chiếu động các cột khi sử dụng các hàm tổng hợp trong Query.

Cách thêm ngoặc vuông xung quanh các số bằng cách sử dụng hàm RegexReplace trong Google Sheets?

Trong ví dụ của tôi dưới đây, tôi sử dụng dấu ngoặc đơn để bọc các số. Thay vào đó, bạn cũng có thể sử dụng dấu ngoặc vuông.

Cú pháp:
REGEXREPLACE(text, "(d+)", "($1)")

Ví dụ 1:
Nội dung của ô B2 là văn bản Mua hàng 100, Hư hỏng 50. Công thức RegexReplace sau đây trong ô B3 sẽ trả về kết quả: Mua hàng (100), Hư hỏng (50).
=REGEXREPLACE(B2,"(d+)", "($1)")

Để thay thế dấu ngoặc đơn xung quanh các số bằng dấu ngoặc vuông, sử dụng công thức dưới đây.
=REGEXREPLACE(B2,"(d+)", "[$1]")

Hãy xem thêm một ví dụ nữa.

Ví dụ 2:
Lần này, giá trị trong ô B2 là số 100.

Công thức trên sẽ không hoạt động vì nội dung trong ô B2 không chứa bất kỳ chuỗi văn bản nào!

Bạn phải sử dụng B2&”” thay vì B2 để chuyển đổi số trong ô B2 thành văn bản vì RegexReplace là hàm văn bản và chỉ lấy văn bản làm đối số 1.
=REGEXREPLACE(B2&"","(d+)", "[$1]")

Bằng cách này, chúng ta có thể sử dụng hàm RegexReplace để bao bọc số trong ngoặc vuông trong Google Sheets.

Tôi đã tìm ra một ứng dụng quan trọng, hoặc có thể nói là ứng dụng trong đời thực, của công thức này trong chức năng Truy vấn. Hãy tìm hiểu ứng dụng đó.

RegexReplace để bao bọc số trong ngoặc vuông và Sử dụng mệnh đề Select trong Truy vấn

Bạn vừa mới học cách sử dụng hàm RegexReplace để bao bọc số trong ngoặc đơn (ngoặc vuông) trong Google Sheets.

Bây giờ chúng ta hãy xem cách sử dụng nó trong mệnh đề Select của Truy vấn để tham chiếu động đến các cột trong các hàm tổng hợp Truy vấn.

Chức năng Truy vấn ‘query’ – Không động

Vui lòng xem hình ảnh dưới đây để biết dữ liệu mẫu.

Với sự giúp đỡ của hàm tổng hợp Sum trong Truy vấn, chúng ta có thể tổng hợp các cột C, D và E (Cột 2, 3 và 4 trong phạm vi B1: E).
=QUERY({B1:E},"Select Sum(Col2),Sum(Col3),Sum(Col4)",1)

Công thức Truy vấn thông thường này có một hạn chế!

Để biết điều đó, hãy chèn một cột trước cột E. Chỉ phạm vi B1: E (dữ liệu) sẽ tự động điều chỉnh trong công thức.
Cú pháp: QUERY(data, query, [headers])

Đối số ‘query’ thực chất được nhập dưới dạng chuỗi (trong dấu ngoặc kép). Do đó, nó sẽ không thay đổi khi phạm vi ‘data’ thay đổi.

Ở đây tôi sẽ làm cho đối số ‘query’ động với sự giúp đỡ của công thức RegexReplace trên.

Chức năng Truy vấn ‘query’ – Động

Đây là cú pháp không động của ‘query’.
“Select Sum(Col2),Sum(Col3),Sum(Col4)”

Bằng cách sử dụng công thức Sequence dưới đây, chúng ta có thể tạo ra các số cột để tổng hợp một cách động.
=sequence(1,columns(C1:E1),2)

Công thức Sequence trên trong ô G1 sẽ điều chỉnh dựa trên các cột mới trong phạm vi.

Dễ hiểu lại cú pháp của công thức RegexReplace để bọc số trong ngoặc vuông trong Google Sheets. Đây là nó.

REGEXREPLACE(text, "(d+)", "($1)")

Trong đó, chúng ta cần thay thế/cung cấp đối số ‘text’ bằng công thức Sequence ở trên. Nhưng đầu ra công thức Sequence là số cột nhiều. Do đó, nó sẽ không hoạt động. Vậy phải làm sao?

Như đã đề cập trong ví dụ 2, chúng ta phải sử dụng &”” ở phần cuối của Sequence.
=REGEXREPLACE(sequence(1,columns(C1:E1),2)&"","(d+)", "($1)")

Sau đó, bọc nó bằng ArrayFormula vì có một mảng được sử dụng như ‘text’ trong RegexReplace.
=ArrayFormula(REGEXREPLACE(sequence(1,columns(C1:E1),2)&"","(d+)", "($1)"))

Đầu ra:
Ảnh

Chúng ta đã thêm ngoặc vuông xung quanh các số. Tôi sẽ chỉnh sửa một chút công thức.
=ARRAYFORMULA(REGEXREPLACE(sequence(1,columns(C1:E1),2)&"","(d+)", "Sum(Col$1)"))

Đầu ra:
Ảnh

Sau đó, hãy sử dụng TextJoin các đầu ra này.
=TEXTJOIN(",",TRUE,ARRAYFORMULA(REGEXREPLACE(sequence(1,columns(C1:E1),2)&"","(d+)", "Sum(Col$1)")))

Kết quả:
Sum(Col2),Sum(Col3),Sum(Col4)

Cuối cùng, trong công thức Truy vấn, tôi sẽ thay thế ‘query’ bằng công thức trên.
=QUERY({B1:E},"Select "&TEXTJOIN(",",TRUE,ARRAYFORMULA(REGEXREPLACE(sequence(1,columns(C1:E1),2)&"","(d+)", "Sum(Col$1)"))),1)

Tôi hy vọng bạn đã có thể học được cách sử dụng RegexReplace để bao bọc số trong ngoặc vuông và một trong những ứng dụng trong đời thực của nó với sự giúp đỡ của Query.

Tài nguyên

Related posts