MINI.MIS - Hàm đại số, thống, kê tìm kiếm

TỔNG QUAN BÀI VIẾT

SUMIFS2

Chức năng:
Tính tổng các giá trị trong một vùng dữ liệu thỏa mãn tối đa 7 điều kiện. Hàm được thiết kế để thay thế và mở rộng khả năng của hàm SUMIFS trong Excel, đồng thời vẫn giữ nguyên cú pháp quen thuộc để dễ sử dụng.

Ngoài việc hỗ trợ đầy đủ các kiểu điều kiện của SUMIFS (giá trị, biểu thức so sánh, ký tự đại diện, ngày tháng, số và văn bản), SUMIFS2 còn bổ sung nhiều khả năng mà SUMIFS không có:

  • Hỗ trợ Dynamic Array (Spill): Khi một hoặc nhiều đối số điều kiện là một vùng dữ liệu (Range) gồm nhiều ô, hàm sẽ tự động tính toán cho từng giá trị trong vùng và trả về kết quả dưới dạng mảng động mà không cần sao chép công thức.
  • Hỗ trợ vùng tính tổng (SumRange) dạng hai chiều (2D): SumRange có thể gồm nhiều cột hoặc nhiều hàng. Khi kết hợp với điều kiện dạng mảng, hàm sẽ tự động tính tổng cho từng cột hoặc từng hàng tương ứng và trả về mảng kết quả, rất phù hợp để tổng hợp đồng thời nhiều chỉ tiêu hoặc nhiều trường dữ liệu.
  • Tương thích ngược: Giữ nguyên cấu trúc tham số của SUMIFS2 phiên bản trước nên có thể thay thế trực tiếp mà không cần sửa công thức hiện có.

SUMIFS2 đặc biệt phù hợp để xây dựng Dashboard, báo cáo quản trị và mô hình phân tích dữ liệu động, nơi cần tổng hợp đồng thời nhiều chỉ tiêu, nhiều cột dữ liệu hoặc nhiều giá trị điều kiện chỉ với một công thức duy nhất.

Hàm sử dụng core của Excel làm lõi tính toán nên có tốc độ xử lý rất nhanh trên các bảng dữ liệu lớn, đồng thời vẫn hỗ trợ đầy đủ các kiểu điều kiện của SUMIFS như:

  • So khớp chính xác (ví dụ: "Hà Nội").
  • Điều kiện so sánh (">100", "<=" & A1, "<>"...).
  • Ký tự đại diện (*, ?).
  • Điều kiện ngày tháng, số hoặc văn bản.
  • Điều kiện lấy từ ô hoặc vùng dữ liệu.

Hàm được xây dựng trên nền các hàm xử lý tối ưu của thư viện SUMIFS nên có tốc độ tính toán cao ngay cả với các bảng dữ liệu lớn.

Cú pháp:

=SUMIFS2(
    SumRange,
    [CriteriaRange1], [Criteria1],
    [CriteriaRange2], [Criteria2],
    [CriteriaRange3], [Criteria3],
    [CriteriaRange4], [Criteria4],
    [CriteriaRange5], [Criteria5],
    [CriteriaRange6], [Criteria6],
    [CriteriaRange7], [Criteria7]
)

Ví dụ:

=SUMIFS2(D2:D100,B2:B100,"Miền Bắc")
→ Tính tổng các giá trị trong D2:D100 của những dòng có giá trị "Miền Bắc" trong vùng B2:B100.

=SUMIFS2(D2:D100,B2:B100,F2:F5)
→ Nếu F2:F5 chứa danh sách các khu vực, hàm sẽ tự động trả về một mảng gồm tổng doanh số của từng khu vực tương ứng trong F2:F5 (kết quả Spill).

=SUMIFS2(E2:E100,B2:B100,H2:H5,C2:C100,I2:I5)
→ Tính tổng theo đồng thời hai điều kiện, trong đó cả hai điều kiện đều là vùng dữ liệu. Hàm sẽ trả về mảng kết quả tương ứng với từng cặp điều kiện mà không cần sao chép công thức.


SUMIFS3

Chức năng:
Tính tổng các giá trị trên một hoặc nhiều trang tính (Worksheet) theo tối đa 7 điều kiện. Khác với SUMIFS của Excel chỉ làm việc trên một vùng dữ liệu cố định, SUMIFS3 cho phép tổng hợp dữ liệu từ nhiều trang tính chỉ bằng một công thức, rất phù hợp với các mô hình lưu dữ liệu theo tháng, theo chi nhánh hoặc theo từng đơn vị.

Tên các trang tính được truyền thông qua đối số FromSheets. Hàm sẽ lần lượt thực hiện phép tính trên từng trang, sau đó cộng gộp kết quả và trả về tổng cuối cùng.

SUMIFS3 hỗ trợ đầy đủ các kiểu điều kiện của SUMIFS như:

  • Giá trị chính xác.
  • Biểu thức so sánh (">100", "<="&A1, "<>"...).
  • Ký tự đại diện (*, ?).
  • Điều kiện ngày tháng, số hoặc văn bản.

Đặc biệt, một hoặc nhiều đối số điều kiện có thể là mảng (Dynamic Array). Khi điều kiện là một vùng dữ liệu gồm nhiều giá trị, hàm sẽ tự động tính toán cho từng giá trị và trả về kết quả dưới dạng mảng động (spill), giúp thống kê nhiều chỉ tiêu cùng lúc mà không cần sao chép công thức.

Các vùng dữ liệu (SumRange, CriteriaRange) được truyền dưới dạng địa chỉ ô (chuỗi văn bản) thay vì đối tượng Range. Điều này giúp cùng một địa chỉ vùng có thể được áp dụng cho tất cả các trang tính được chỉ định trong FromSheets, giảm đáng kể số lượng công thức và đơn giản hóa việc xây dựng báo cáo tổng hợp.

Cú pháp:

=SUMIFS3(
    FromSheets,
    SumRange,
    CriteriaRange1, Criteria1,
    [CriteriaRange2], [Criteria2],
    [CriteriaRange3], [Criteria3],
    [CriteriaRange4], [Criteria4],
    [CriteriaRange5], [Criteria5],
    [CriteriaRange6], [Criteria6],
    [CriteriaRange7], [Criteria7]
)

Trong đó:

  • FromSheets: Danh sách tên các trang tính cần tổng hợp.
  • SumRange: Địa chỉ vùng cần tính tổng (dạng chuỗi, ví dụ "E2:E100").
  • CriteriaRange1...CriteriaRange7: Địa chỉ các vùng điều kiện (dạng chuỗi).
  • Criteria1...Criteria7: Điều kiện tương ứng với từng vùng.

Ví dụ:

=SUMIFS3("T1;T2;T3","E2:E100","B2:B100","Miền Bắc")

→ Tính tổng các giá trị trong vùng E2:E100 của ba trang tính T1, T2T3 đối với các dòng có giá trị "Miền Bắc" trong vùng B2:B100.

=SUMIFS3("T1:T12","E2:E100","B2:B100",H2:H5)

→ Nếu H2:H5 là danh sách các khu vực, hàm sẽ tính tổng dữ liệu trên tất cả các trang tính được chỉ định và trả về một mảng kết quả, mỗi phần tử tương ứng với một khu vực trong H2:H5.

=SUMIFS3("CN01;CN02;CN03","F2:F500","C2:C500",K2:K10,"D2:D500",2026)

→ Tính tổng vùng F2:F500 trên ba trang tính CN01, CN02CN03 cho từng giá trị trong K2:K10, đồng thời chỉ lấy các dòng có năm bằng 2026. Kết quả được trả về dưới dạng mảng động (spill).

Hàm SUMIFS3 có nhiều tính năng và ngắn gọn hơn hàm SUMIFS2 và SUMIFS, để tính tổng theo điều kiện từ nhiều sheet chứa dữ liệu cùng cấu trúc. Hàm SUMIF3 có đầy đủ tính năng của hàm SUMIFS2, cho phép tính tổng với đối số điều kiện phức hợp


SUMIFDS

Chức năng:
Tính tổng các giá trị trong một Excel Table (ListObject) theo tên cột và tối đa 7 điều kiện. Thay vì phải xác định địa chỉ vùng dữ liệu như SUMIFS, hàm cho phép tham chiếu trực tiếp đến tên cột trong bảng, giúp công thức dễ đọc, dễ bảo trì và không bị ảnh hưởng khi bảng thay đổi kích thước.

SUMIFDS hỗ trợ đầy đủ các kiểu điều kiện của SUMIFS như giá trị, biểu thức so sánh (">100", "<="&A1...), ký tự đại diện (*, ?), ngày tháng, số và văn bản.

Đặc biệt, các đối số điều kiện có thể là mảng (Dynamic Array). Khi một hoặc nhiều điều kiện là vùng dữ liệu gồm nhiều giá trị, hàm sẽ tự động tính toán cho từng giá trị và trả về kết quả dưới dạng mảng (spill), giúp tổng hợp nhiều chỉ tiêu chỉ với một công thức.

Hàm được xây dựng trên nền các hàm xử lý tối ưu của thư viện SUMIFS nên có tốc độ tính toán cao ngay cả với các bảng dữ liệu lớn. Đồng thời, việc sử dụng tên cột thay cho địa chỉ vùng giúp công thức rõ ràng và thuận tiện khi xây dựng Dashboard hoặc báo cáo động.

Cú pháp:

=SUMIFDS(
    DataTable,
    SumName,
    [CriteriaName1], [Criteria1],
    [CriteriaName2], [Criteria2],
    [CriteriaName3], [Criteria3],
    [CriteriaName4], [Criteria4],
    [CriteriaName5], [Criteria5],
    [CriteriaName6], [Criteria6],
    [CriteriaName7], [Criteria7]
)

Trong đó:

  • DataTable: Excel Table (ListObject) chứa dữ liệu.
  • SumName: Tên cột cần tính tổng.
  • CriteriaName1...CriteriaName7: Tên các cột dùng làm điều kiện.
  • Criteria1...Criteria7: Điều kiện tương ứng với từng cột.

Ví dụ: =SUMIFDS(Sales,"Doanh thu","Khu vực","Miền Bắc")

→ Tính tổng cột Doanh thu của bảng Sales đối với các dòng có giá trị "Miền Bắc" trong cột Khu vực.

=SUMIFDS(Sales,"Doanh thu","Khu vực",F2:F5)

→ Nếu F2:F5 chứa danh sách các khu vực, hàm sẽ trả về một mảng kết quả, mỗi phần tử là tổng doanh thu của một khu vực tương ứng.

=SUMIFDS(Sales,"Doanh thu","Khu vực",F2:F5,"Năm",2025)

→ Tính tổng doanh thu năm 2025 cho từng khu vực trong F2:F5 và trả về kết quả dưới dạng mảng động (spill).


SUMIFColor

Chức năng:
Tính tổng các giá trị của các ô có màu nền giống với một ô tham chiếu. Hàm sử dụng thuộc tính ColorIndex của màu nền để so sánh, sau đó cộng tất cả các ô trong vùng dữ liệu có cùng màu.

SUMIFCOLOR đặc biệt hữu ích khi dữ liệu đã được phân loại hoặc đánh dấu bằng màu sắc (ví dụ: tô màu các khoản cần thanh toán, các dòng ưu tiên hoặc các giá trị đã kiểm tra) và cần tính tổng nhanh mà không phải tạo thêm cột phụ.

Lưu ý rằng hàm chỉ nhận diện màu nền (Fill Color) của ô, không kiểm tra màu chữ. Khi chỉ thay đổi màu nền của ô, Excel có thể không tự động tính lại công thức; trong trường hợp đó cần nhấn F9, sửa một ô bất kỳ hoặc tính toán lại sổ làm việc để cập nhật kết quả.

Cú pháp: =SUMIFCOLOR(ColorRange, CellRefColor)

Trong đó:

  • ColorRange: Vùng dữ liệu cần tính tổng.
  • CellRefColor: Ô tham chiếu chứa màu nền cần so sánh.

Ví dụ: =SUMIFCOLOR(C2:C100,F1)

→ Tính tổng các giá trị trong vùng C2:C100 có màu nền giống với màu nền của ô F1.

=SUMIFCOLOR(D:D,H2)

→ Tính tổng toàn bộ cột D đối với các ô có màu nền trùng với ô H2.


TableX (XTable)

Chức năng: Trích xuất dữ liệu từ một hoặc nhiều bảng dữ liệu dựa trên các điều kiện lọc, đồng thời chỉ định các cột cần trả về. Hàm hỗ trợ gộp dữ liệu từ nhiều bảng, thêm số thứ tự, hiển thị nguồn dữ liệu và tùy chọn ẩn hoặc hiển thị dòng tiêu đề trong kết quả.

Cú pháp: =TABLEX(RowLabel, FilterRng, ShowSource, NoneHeader, NumOrder, DataTable1, [DataTable2], ...)

Trong đó:

  • RowLabel: Danh sách tên cột cần trả về, ngăn cách bằng dấu ; hoặc một vùng chứa các tên cột.
  • FilterRng: Vùng điều kiện lọc gồm:
    • Hàng đầu chứa tên các cột dùng để lọc.
    • Hàng cuối chứa điều kiện tương ứng.
    • Điều kiện hỗ trợ so sánh (=, >, <, >=, <=, <>) và ký tự đại diện (*, ?).
  • ShowSource:
    • 0: Không hiển thị nguồn dữ liệu.
    • 1: Hiển thị cột Source ở đầu kết quả.
    • -1: Hiển thị cột Source ở cuối kết quả.
  • NoneHeader:
    • 0: Trả về hàng tiêu đề.
    • 1: Không trả về hàng tiêu đề.
  • NumOrder:
    • 0: Không đánh số thứ tự.
    • 1: Thêm cột No đánh số thứ tự các bản ghi.
  • DataTable1, DataTable2, ...: Một hoặc nhiều bảng dữ liệu có cùng cấu trúc để tìm kiếm và tổng hợp.

Ví dụ: =TABLEX("Mã hàng;Tên hàng;Số lượng",F1:G2,1,0,1,TableBanHang2024,TableBanHang2025)

Kết quả trả về danh sách các bản ghi từ hai bảng TableBanHang2024TableBanHang2025 thỏa mãn điều kiện trong vùng F1:G2, bao gồm các cột Mã hàng, Tên hàng, Số lượng, có thêm cột No ở đầu, cột Source cho biết bảng nguồn và hàng tiêu đề. Nếu không tìm thấy bản ghi nào phù hợp, hàm trả về thông báo "No record found".


GroupX (XGroup)

Chức năng: Nhóm dữ liệu từ một hoặc nhiều bảng theo một hoặc nhiều cột, đồng thời thực hiện phép tổng hợp trên các cột giá trị. Hàm hỗ trợ tính SUM, COUNT, MAX, MIN, lọc dữ liệu theo điều kiện, sắp xếp kết quả, gộp nhiều cột nhóm thành một cột và hiển thị dòng tổng cộng ở đầu hoặc cuối bảng kết quả.

Cú pháp: =GROUPX(RowLabel, ValueLabel, ShowTotal, SortRow, MergeRow, FilterRng, DataTable1, [DataTable2], ...)

Trong đó:

  • RowLabel: Một hoặc nhiều tên cột dùng để nhóm dữ liệu, ngăn cách bằng dấu ; hoặc là vùng chứa các tên cột.
  • ValueLabel: Một hoặc nhiều cột giá trị cần tổng hợp.
  • ShowTotal:
    • 0: Không hiển thị tổng cộng.
    • 1: Hiển thị dòng tổng cộng ở cuối.
    • -1: Hiển thị dòng tổng cộng ngay sau tiêu đề.
    • 2, 3, 4: Thực hiện lần lượt các phép COUNT, MAX, MIN.
    • Chuỗi văn bản (ví dụ "Tổng cộng" hoặc "-Tổng cộng"): Thực hiện SUM và sử dụng chuỗi làm nhãn dòng tổng; thêm dấu - để đặt dòng tổng ở đầu bảng.
  • SortRow:
    • 0: Giữ nguyên thứ tự xuất hiện.
    • 1: Sắp xếp tăng dần.
    • -1: Sắp xếp giảm dần.
  • MergeRow:
    • 0: Mỗi trường nhóm là một cột riêng.
    • 1: Gộp các trường nhóm thành một cột, phân cách bằng " | ".
  • FilterRng: Vùng điều kiện lọc, gồm hàng đầu là tên cột và hàng cuối là điều kiện. Hỗ trợ các toán tử =, <>, >, <, >=, <= và ký tự đại diện *, ?.
  • DataTable1, DataTable2, ...: Một hoặc nhiều bảng dữ liệu có cùng cấu trúc cần tổng hợp.

Ví dụ: =GROUPX("Khu vực;Nhân viên","Doanh thu",1,1,0,F1:G2,Table2024,Table2025)

Kết quả trả về bảng tổng hợp doanh thu theo Khu vựcNhân viên từ hai bảng Table2024Table2025, chỉ bao gồm các bản ghi thỏa mãn điều kiện trong vùng F1:G2. Kết quả được sắp xếp tăng dần theo trường nhóm và có thêm dòng Total ở cuối chứa tổng doanh thu của tất cả các nhóm. Hàm cũng hỗ trợ tổng hợp đồng thời nhiều cột giá trị và sẽ tự động cộng gộp dữ liệu từ tất cả các bảng được truyền vào.


PivotX (XPivot)

Chức năng: Tạo bảng tổng hợp (Pivot Table) từ một hoặc nhiều bảng dữ liệu theo hàng và cột, đồng thời thực hiện các phép tổng hợp như SUM, COUNT, MAX hoặc MIN. Hàm hỗ trợ nhiều trường nhóm, nhiều trường giá trị, lọc dữ liệu, sắp xếp hàng và cột, gộp các trường nhóm, đồng thời hiển thị tổng cộng theo hàng, theo cột và tổng chung.

Cú pháp: =PIVOTX(RowLabel, ColLabel, ValueLabel, ShowTotal, SortRow, SortCol, MergeRow, FilterRng, DataTable1, [DataTable2], ...)

Trong đó:

  • RowLabel: Một hoặc nhiều tên cột dùng làm tiêu đề hàng, ngăn cách bằng dấu ; hoặc là vùng chứa tên cột.
  • ColLabel: Một hoặc nhiều tên cột dùng làm tiêu đề cột. Nếu để trống (""), kết quả sẽ là bảng tổng hợp theo hàng (tương tự GROUPX).
  • ValueLabel: Một hoặc nhiều cột giá trị cần tổng hợp.
  • ShowTotal:
    • 0: Không hiển thị tổng cộng.
    • 1: Hiển thị tổng cộng ở cuối bảng.
    • -1: Hiển thị tổng cộng ngay dưới dòng tiêu đề.
    • 2: Đếm số bản ghi (COUNT).
    • 3: Lấy giá trị lớn nhất (MAX).
    • 4: Lấy giá trị nhỏ nhất (MIN).
    • Chuỗi văn bản (ví dụ "Grand Total" hoặc "-Grand Total"): Thực hiện phép cộng (SUM) và sử dụng chuỗi làm nhãn dòng tổng.
  • SortRow:
    • 0: Giữ nguyên thứ tự xuất hiện.
    • 1: Sắp xếp tăng dần theo hàng.
    • -1: Sắp xếp giảm dần theo hàng.
  • SortCol:
    • 0: Giữ nguyên thứ tự xuất hiện.
    • 1: Sắp xếp tăng dần theo cột.
    • -1: Sắp xếp giảm dần theo cột.
  • MergeRow:
    • 0: Mỗi trường trong RowLabel là một cột riêng.
    • 1: Gộp các trường nhóm thành một cột, phân cách bằng " | ".
  • FilterRng: Vùng điều kiện lọc, trong đó hàng đầu là tên cột và hàng cuối là điều kiện. Hỗ trợ các toán tử =, <>, >, <, >=, <= và ký tự đại diện *, ?.
  • DataTable1, DataTable2, ...: Một hoặc nhiều bảng dữ liệu có cùng cấu trúc cần tổng hợp. Hàm sẽ tự động gộp dữ liệu từ tất cả các bảng trước khi tạo Pivot.

Ví dụ: =PIVOTX("Khu vực","Năm","Doanh thu",1,1,1,0,F1:G2,Table2024,Table2025)

Kết quả trả về bảng Pivot tổng hợp Doanh thu theo Khu vực (hàng) và Năm (cột) từ hai bảng Table2024Table2025, chỉ bao gồm các bản ghi thỏa mãn điều kiện trong vùng F1:G2. Các hàng và cột được sắp xếp tăng dần, đồng thời có thêm cột tổng theo từng hàng, dòng tổng theo từng cột và tổng cộng toàn bộ bảng ở cuối kết quả. Hàm cũng hỗ trợ đồng thời nhiều trường hàng, nhiều trường cột và nhiều trường giá trị để tạo các bảng tổng hợp phức tạp tương tự Pivot Table của Excel.


UnPivotX

Chức năng: Chuyển đổi dữ liệu từ dạng bảng rộng (wide table), trong đó nhiều cột giá trị được trải ngang, sang dạng bảng dài (long table) với mỗi giá trị trở thành một bản ghi riêng. Hàm hỗ trợ lọc dữ liệu, đổi tên cột sau khi chuyển đổi, hiển thị nguồn dữ liệu, loại bỏ các giá trị bằng 0 và kết hợp dữ liệu từ nhiều bảng có cùng cấu trúc.

Cú pháp: =UNPIVOTX(RowLabel, ValueLabel, FilterRng, RowName, ValName, ShowSource, HideZero, DataTable1, [DataTable2], ...)

Trong đó:

  • RowLabel: Một hoặc nhiều tên cột dùng làm khóa (không chuyển đổi), ngăn cách bằng dấu ; hoặc là vùng chứa tên cột.
  • ValueLabel: Một hoặc nhiều tên cột cần chuyển từ dạng cột sang dạng dòng.
  • FilterRng: Vùng điều kiện lọc, trong đó hàng đầu là tên cột và hàng cuối là điều kiện. Hỗ trợ các toán tử =, <>, >, <, >=, <= và ký tự đại diện *, ?.
  • RowName: Tên cột mới chứa tên của các cột được chuyển đổi. Mặc định là "Column".
  • ValName: Tên cột mới chứa giá trị của các cột được chuyển đổi. Mặc định là "Value".
  • ShowSource:
    • 0: Không hiển thị nguồn dữ liệu.
    • 1: Hiển thị cột Source ở đầu kết quả.
    • -1: Hiển thị cột Source ở cuối kết quả.
  • HideZero:
    • 0: Giữ lại các bản ghi có giá trị bằng 0.
    • 1: Loại bỏ các bản ghi có giá trị bằng 0.
  • DataTable1, DataTable2, ...: Một hoặc nhiều bảng dữ liệu có cùng cấu trúc cần chuyển đổi. Hàm sẽ tự động gộp dữ liệu từ tất cả các bảng trước khi trả về kết quả. Nếu tên cột trong ValueLabel không tồn tại, hàm vẫn tạo bản ghi với giá trị mặc định bằng 0.

Ví dụ: =UNPIVOTX("Mã hàng;Tên hàng","Tháng 1;Tháng 2;Tháng 3",F1:G2,"Tháng","Doanh thu",1,1,Table2024,Table2025)

Kết quả trả về bảng dữ liệu trong đó mỗi giá trị của các cột Tháng 1, Tháng 2Tháng 3 được chuyển thành một dòng riêng với hai cột mới là ThángDoanh thu. Chỉ các bản ghi thỏa mãn điều kiện trong vùng F1:G2 được đưa vào kết quả, các dòng có giá trị bằng 0 được loại bỏ, đồng thời cột Source được thêm ở đầu để xác định bảng dữ liệu nguồn.


XSUMIF

Chức năng: Tính tổng một hoặc nhiều cột giá trị trong một hoặc nhiều bảng dữ liệu khi các bản ghi thỏa mãn các điều kiện lọc theo hàng và theo cột. Hàm hỗ trợ nhiều điều kiện đồng thời, kết hợp dữ liệu từ nhiều bảng và cho phép cột cần tính tổng không tồn tại (được xem như giá trị bằng 0).

Cú pháp: =XSUMIF(SumLabel, RowFilterRng, ColFilterRng, DataTable1, [DataTable2], ...)

Trong đó:

  • SumLabel: Một hoặc nhiều tên cột cần tính tổng, ngăn cách bằng dấu ; hoặc là vùng chứa tên cột.
  • RowFilterRng: Vùng điều kiện lọc theo hàng, trong đó:
    • Hàng đầu chứa tên các cột cần lọc.
    • Hàng cuối chứa điều kiện tương ứng.
  • ColFilterRng: Vùng điều kiện lọc theo cột, trong đó:
    • Cột đầu chứa tên các cột cần lọc.
    • Cột cuối chứa điều kiện tương ứng.
  • DataTable1, DataTable2, ...: Một hoặc nhiều bảng dữ liệu có cùng cấu trúc cần tính tổng.

Các điều kiện lọc hỗ trợ các toán tử =, <>, >, <, >=, <= và ký tự đại diện *, ?. Hàm sẽ cộng dồn giá trị từ tất cả các bảng được truyền vào. Nếu cột trong SumLabel không tồn tại thì cột đó được xem có giá trị bằng 0 và không phát sinh lỗi.

Ví dụ: =XSUMIF("Doanh thu;Chi phí",F1:H2,K1:L3,Table2024,Table2025)

Kết quả trả về tổng của hai cột Doanh thuChi phí trong hai bảng Table2024Table2025 đối với các bản ghi đồng thời thỏa mãn các điều kiện trong vùng F1:H2 (lọc theo hàng) và K1:L3 (lọc theo cột). Nếu một trong hai cột cần tính tổng không có trong bảng dữ liệu thì cột đó được coi có giá trị bằng 0, còn hàm vẫn tiếp tục tính tổng cho các cột còn lại.


XCountIf

Chức năng: Đếm số lượng bản ghi thỏa mãn các điều kiện lọc trong một hoặc nhiều bảng dữ liệu. Hàm hỗ trợ đồng thời nhiều điều kiện lọc theo hàng và theo cột, đồng thời có thể cộng dồn kết quả từ nhiều bảng có cùng cấu trúc. Nếu truyền nhiều cột cần đếm, mỗi bản ghi thỏa mãn sẽ được đếm cho từng cột được chỉ định.

Cú pháp: =XCOUNTIF(CountLabel, RowFilterRng, ColFilterRng, DataTable1, [DataTable2], ...)

Trong đó:

  • CountLabel: Một hoặc nhiều tên cột cần đếm, ngăn cách bằng dấu ; hoặc là vùng chứa tên cột.
  • RowFilterRng: Vùng điều kiện lọc theo hàng, trong đó:
    • Hàng đầu chứa tên các cột cần lọc.
    • Hàng cuối chứa điều kiện tương ứng.
  • ColFilterRng: Vùng điều kiện lọc theo cột, trong đó:
    • Cột đầu chứa tên các cột cần lọc.
    • Cột cuối chứa điều kiện tương ứng.
  • DataTable1, DataTable2, ...: Một hoặc nhiều bảng dữ liệu có cùng cấu trúc cần đếm.

Các điều kiện lọc hỗ trợ các toán tử =, <>, >, <, >=, <= và ký tự đại diện *, ?. Hàm sẽ cộng dồn số lượng bản ghi từ tất cả các bảng được truyền vào. Nếu tên cột trong CountLabel không tồn tại thì hàm vẫn tính như một cột hợp lệ và tiếp tục đếm các bản ghi thỏa mãn điều kiện mà không phát sinh lỗi.

Ví dụ: =XCOUNTIF("Mã hàng",F1:H2,K1:L3,Table2024,Table2025)

Kết quả trả về số lượng bản ghi trong hai bảng Table2024Table2025 đồng thời thỏa mãn các điều kiện trong vùng F1:H2 (lọc theo hàng) và K1:L3 (lọc theo cột). Nếu truyền nhiều cột trong CountLabel, mỗi bản ghi thỏa mãn sẽ được đếm tương ứng cho từng cột và kết quả là tổng số lần đếm của tất cả các cột được chỉ định.


XCalculate

Chức năng: Tạo một hoặc nhiều cột tính toán mới từ dữ liệu của bảng bằng cách đánh giá các biểu thức (công thức) sử dụng trực tiếp tên cột. Hàm tự động thay thế tên cột bằng giá trị tương ứng trên từng dòng rồi tính toán bằng Evaluate, giúp xây dựng các cột tính toán mà không cần thêm cột phụ trong bảng dữ liệu.

Cú pháp: =XCalculate(DataTable, FormulaString, [SetHeaderName])

Trong đó:

  • DataTable: Bảng dữ liệu có hàng đầu tiên là tiêu đề cột.
  • FormulaString: Một hoặc nhiều công thức cần tính, ngăn cách bằng dấu ; hoặc là vùng chứa các công thức. Trong công thức có thể sử dụng trực tiếp tên các cột của bảng.
  • SetHeaderName (tùy chọn): Một hoặc nhiều tên cột kết quả, ngăn cách bằng dấu ; hoặc là vùng chứa tên cột. Nếu bỏ qua, tiêu đề kết quả sẽ chính là nội dung của FormulaString.

Một số lưu ý:

  • Mỗi công thức được tính riêng cho từng dòng dữ liệu.
  • Giá trị rỗng hoặc lỗi trong bảng dữ liệu được tự động thay bằng 0 trước khi tính toán.
  • Có thể sử dụng hầu hết các phép toán và hàm mà Excel hỗ trợ trong Evaluate.
  • Nếu công thức không hợp lệ hoặc phát sinh lỗi khi tính toán, hàm trả về lỗi #VALUE!.

Ví dụ: =XCalculate(TableSales,"Số lượng*Đơn giá;Doanh thu*0.1","Doanh thu;Thuế VAT")

Kết quả trả về một bảng gồm hai cột mới là Doanh thuThuế VAT. Với mỗi dòng dữ liệu, hàm sẽ tính Doanh thu = Số lượng × Đơn giáThuế VAT = Doanh thu × 10%. Nếu ô Số lượng, Đơn giá hoặc Doanh thu bị trống hoặc chứa lỗi thì giá trị đó được xem là 0 trước khi thực hiện phép tính.


XAvegIf

Chức năng: Tính giá trị trung bình của một hoặc nhiều cột trong một hoặc nhiều bảng dữ liệu khi các bản ghi thỏa mãn các điều kiện lọc theo hàng và theo cột. Hàm hỗ trợ nhiều điều kiện đồng thời, kết hợp dữ liệu từ nhiều bảng và tự động bỏ qua các giá trị không phải số khi tính trung bình.

Cú pháp: =XAVGIF(AverageLabel, RowFilterRng, ColFilterRng, DataTable1, [DataTable2], ...)

Trong đó:

  • AverageLabel: Một hoặc nhiều tên cột cần tính trung bình, ngăn cách bằng dấu ; hoặc là vùng chứa tên cột.
  • RowFilterRng: Vùng điều kiện lọc theo hàng, trong đó:
    • Hàng đầu chứa tên các cột cần lọc.
    • Hàng cuối chứa điều kiện tương ứng.
  • ColFilterRng: Vùng điều kiện lọc theo cột, trong đó:
    • Cột đầu chứa tên các cột cần lọc.
    • Cột cuối chứa điều kiện tương ứng.
  • DataTable1, DataTable2, ...: Một hoặc nhiều bảng dữ liệu có cùng cấu trúc cần tính trung bình.

Các điều kiện lọc hỗ trợ các toán tử =, <>, >, <, >=, <= và ký tự đại diện *, ?. Hàm sẽ cộng dồn dữ liệu từ tất cả các bảng được truyền vào để tính một giá trị trung bình chung. Chỉ các giá trị số mới được đưa vào phép tính trung bình. Nếu tên cột trong AverageLabel không tồn tại thì cột đó được xem có giá trị bằng 0 và vẫn được tính vào số lượng phần tử. Nếu không có bản ghi nào thỏa mãn điều kiện, hàm trả về 0.

Ví dụ: =XAVGIF("Doanh thu",F1:H2,K1:L3,Table2024,Table2025)

Kết quả trả về giá trị trung bình của cột Doanh thu trong hai bảng Table2024Table2025 đối với các bản ghi đồng thời thỏa mãn các điều kiện trong vùng F1:H2 (lọc theo hàng) và K1:L3 (lọc theo cột). Nếu truyền nhiều cột trong AverageLabel, hàm sẽ tính trung bình trên toàn bộ các giá trị số của các cột được chỉ định sau khi đã áp dụng điều kiện lọc.


XColumn

Chức năng: Trích xuất một hoặc nhiều cột dữ liệu từ bảng dựa trên tên cột thay vì số thứ tự cột. Hàm cho phép trả về nhiều cột cùng lúc, tùy chọn hiển thị hoặc ẩn dòng tiêu đề và tự động xử lý khi một cột không tồn tại trong bảng dữ liệu.

Cú pháp: =XColumn(DataTable, ColumnLabel, [HeaderName])

Trong đó:

  • DataTable: Bảng dữ liệu hoặc mảng dữ liệu có hàng đầu tiên là tiêu đề cột.
  • ColumnLabel: Một hoặc nhiều tên cột cần trích xuất, ngăn cách bằng dấu ; hoặc là vùng chứa các tên cột.
  • HeaderName (tùy chọn):
    • 1 hoặc TRUE (mặc định): Trả về dòng tiêu đề.
    • 0 hoặc FALSE: Chỉ trả về dữ liệu, không có dòng tiêu đề.

Một số lưu ý:

  • Có thể trích xuất đồng thời nhiều cột theo đúng thứ tự được chỉ định trong ColumnLabel.
  • Nếu một tên cột không tồn tại trong bảng dữ liệu, toàn bộ cột tương ứng trong kết quả sẽ trả về lỗi #N/A.
  • Hàm hoạt động với cả vùng dữ liệu Excel (Range) và mảng dữ liệu được trả về từ các hàm khác.

Ví dụ: =XColumn(TableSales,"Mã hàng;Tên hàng;Đơn giá",TRUE)

Kết quả trả về ba cột Mã hàng, Tên hàngĐơn giá từ bảng TableSales, bao gồm cả dòng tiêu đề. Nếu thay đối số cuối bằng FALSE, hàm chỉ trả về dữ liệu mà không có hàng tiêu đề. Nếu cột Đơn giá không tồn tại trong bảng, cột này trong kết quả sẽ chứa lỗi #N/A cho tất cả các dòng.


LikeX

Chức năng: Kiểm tra xem một giá trị có thỏa mãn một hoặc nhiều điều kiện hay không và trả về kết quả TRUE hoặc FALSE. Hàm hỗ trợ so sánh bằng, khác, lớn hơn, nhỏ hơn, lớn hơn hoặc bằng, nhỏ hơn hoặc bằng, đồng thời hỗ trợ ký tự đại diện (*, ?) theo cú pháp Like của VBA. Đây là hàm nền được nhiều hàm khác như TABLEX, GROUPX, PIVOTX, UNPIVOTX, XSUMIF, XCOUNTIFXAVGIF sử dụng để xử lý điều kiện lọc.

Cú pháp: =LIKEX(Value, Criterias)

Trong đó:

  • Value: Giá trị cần kiểm tra.
  • Criterias: Một hoặc nhiều điều kiện, ngăn cách bằng dấu ;. Mỗi điều kiện có thể là:
    • =Giá trị
    • <>Giá trị
    • >Giá trị
    • <Giá trị
    • >=Giá trị
    • <=Giá trị
    • Mẫu sử dụng ký tự đại diện *? (không cần dấu =), theo quy tắc Like của VBA.

Một số lưu ý:

  • Nếu Criterias để trống, hàm luôn trả về TRUE.
  • Nếu có nhiều điều kiện, chỉ cần một điều kiện đúng thì hàm trả về TRUE.
  • Việc phân biệt chữ hoa và chữ thường phụ thuộc vào giá trị truyền vào; trong các hàm của bộ XFunction, dữ liệu thường được chuyển sang chữ thường (LCase) trước khi gọi LIKEX, do đó việc so khớp thường không phân biệt hoa/thường.

Ví dụ: =LIKEX("Táo","Tá*;Cam")

Kết quả trả về TRUE vì giá trị "Táo" khớp với điều kiện *"Tá"**.

Hoặc: =LIKEX(150,">100;=50")

Kết quả trả về TRUE150 lớn hơn 100. Nếu giá trị là 80, hàm sẽ trả về FALSE vì không thỏa mãn bất kỳ điều kiện nào được chỉ định.


  •  

 

 

 

---

×