> For the complete documentation index, see [llms.txt](https://knowins.gitbook.io/tai-lieu-huong-dan-knowins-phan-1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://knowins.gitbook.io/tai-lieu-huong-dan-knowins-phan-1/huong-dan/tong-hop.md).

# Tổng Hợp

{% hint style="info" %}
Nhớ lại trong phần Reporting Primer chúng ta đã học cách tạo một báo cáo tổng hợp và tải file mẫu báo cáo về.
{% endhint %}

Trong phần trước, chúng ta đã tạo ra một báo cáo các giao dịch cho tiền các chương trình  gây quỹ `ONEIRO_AF_CP`. Báo cáo này lấy ra giao dịch của tất cả các chương trình gây quỹ từ tất cả các cộng tác viên.

Bấy giờ, bạn muốn tạo ra một báo cáo tổng quát hoạt động quảng bá cho một cộng tác viên cụ thể. Cộng tác viên được xác định duy nhất bằng địa chỉ ví của họ. Chúng ta sẽ dùng địa chỉ ví này: *`0x78a02bb94b324bd2d671ba32f644530b55a0271e`* cho các phần thực hành tiếp theo.

KNOWINS hỗ trợ bộ lọc do người dùng nhập vào trước khi chạy báo cáo để làm điều này.

## Bộ Lọc Của Người Dùng

Quay trở lại **Lập Báo Cáo > Tổng Hợp**, chọn `ONEIRO_AF_CP` và nhấn vào biểu tượng Xem.

Nhớ lại là bảng nhu liệu `ONEIRO_AF_TX`được tạo trên bảng *`affiliate`* có cột *`address`* chính là địa chỉ ví của cộng tác viên. Kéo cột *`address`* trong bộ nhu liệu `ONEIRO_AF_TX` từ bên trái vào lưới bộ lọc phía trên bên tay phải, và dán địa chỉ ví *`0x78a02bb94b324bd2d671ba32f644530b55a0271e`* vào ô tương ứng trong cột Giá Trị.

<figure><img src="/files/rSI252zYF40nPyK8pNsn" alt=""><figcaption><p>Lọc theo địa chỉ ví của cộng tác viên</p></figcaption></figure>

{% hint style="info" %}
Nếu bạn chọn giá trị cho cột Toán Tử của bộ lọc là Ví Tiền Số thì khi người dùng đăng nhập sử dụng ví tiền số, địa chỉ ví của họ sẽ được tự động gán cho bộ lọc.&#x20;
{% endhint %}

Chạy báo cáo. Bạn sẽ có kết quả chỉ bao gồm các giao dịch quyên tiền xuất phát từ quảng bá của cộng tác viên có địa chỉ ví này, như sau:

<figure><img src="/files/jTUL1pTBqcFmPM4eQQ71" alt=""><figcaption><p>Kết quả lọc theo địa chỉ ví cộng tác viên</p></figcaption></figure>

Tương tự như vậy, bạn có thể kéo thêm nhiều cột khác vào lưới bộ lọc. Kết quả sẽ là bộ lọc tổng hợp của các cột đó.

{% hint style="info" %}
Khi lọc theo nhiều cột thì logic AND sẽ luôn được áp dụng cho giá trị giữa các cột đó. Nếu một cột được lọc nhiều lần thì logic OR sẽ áp dụng cho bản thân giá trị của cột đó.
{% endhint %}

Ví dụ để lọc giao dịch theo cộng tác viên *`0x78a02bb94b324bd2d671ba32f644530b55a0271e`* cho chương trình gây quỹ  *`0x66197d8e98028b60e2682b1c079c79583f4b1047`* bạn có thể dùng bộ lọc như sau:

<figure><img src="/files/h0Kv8AWYPLTcuSobSQzh" alt="" width="563"><figcaption><p>Lọc với logic AND: A VÀ B</p></figcaption></figure>

Bộ lọc trên tương đương với logic sau:&#x20;

```
address = 0x78a02bb94b324bd2d671ba32f644530b55a0271e
 AND 
contract_address = 0x66197d8e98028b60e2682b1c079c79583f4b1047
```

Hoặc nếu bạn muốn lọc các giao dịch của một trong hai chương trình gây quỹ trong năm 2023 bạn có thể dùng bộ lọc như sau:

<figure><img src="/files/eiZQabbW9zeuYtRTtDU8" alt="" width="563"><figcaption><p>Lọc với logic OR: A HOẶC B</p></figcaption></figure>

Bộ lọc này tương đương với logic sau:&#x20;

```
(
 contract_address = 0x66197d8e98028b60e2682b1c079c79583f4b1047 
  OR
 contract_address = 0x0641e11c87252b99a47e6f3f36be31081f362660
)
 AND 
(transactiondate >= 2022-01-01 AND transactiondate <= 2022-12-31)
```

## Các Loại Bộ Lọc

KNOWINS cho phép chọn lựa nhiều loại bộ lọc khác nhau trong cột Toán Tử (operator) của lưới bộ lọc.

<table><thead><tr><th width="121">Toán Tử</th><th width="157">Tiếng Việt</th><th>Giải thích</th></tr></thead><tbody><tr><td>=</td><td>so sánh bằng</td><td>Bằng với cột Giá Trị</td></tr><tr><td>>, >=</td><td>so sánh lớn hơn</td><td>Lớn hơn cột Giá Trị</td></tr><tr><td>&#x3C;, &#x3C;=</td><td>so sánh nhỏ hơn</td><td>Nhỏ hơn hơn cột Giá Trị</td></tr><tr><td>&#x3C;></td><td>so sánh khác</td><td>Khác cột Giá Trị</td></tr><tr><td>-</td><td>so sánh</td><td>Bằng với cột Giá Trị <br><br>hoặc, nếu có nhập Đến Giá Trị:<br><br>lớn hơn cột Giá Trị  và nhỏ hơn cột Đến Giá Trị</td></tr><tr><td>begin</td><td>bắt đầu</td><td>bắt đầu với giá trị trong cột Giá Trị</td></tr><tr><td>end</td><td>kết thúc</td><td>kết thúc với giá trị trong cột Giá Trị</td></tr><tr><td>like</td><td>giống như, chứa</td><td>tương tự với giá trị trong cột Giá Trị</td></tr><tr><td>cross</td><td>giao</td><td></td></tr><tr><td>between</td><td>giữa</td><td>lớn hơn cột Giá Trị và nhỏ hơn cột Đến Giá Trị.<br><br>Ví dụ:  <em><code>amount</code></em> BETWEEN <em><code>20</code></em> AND  <em><code>100</code></em></td></tr><tr><td>in</td><td>trong</td><td>Một trong số các giá trị trong cột Giá Trị. <br><br>Lưu ý: các giá trị được liệt kê cách nhau bởi dấu phẩy.<br><br>Ví dụ:  <em><code>block_number</code></em> IN <em><code>5111,5112,5113</code></em></td></tr><tr><td>exists</td><td>tồn tại</td><td>phải có tồn tại giá trị của cột này</td></tr><tr><td>wallet address</td><td>ví tiền crypto</td><td>Tự động lấy địa chỉ của ví crypto nếu bạn dùng ví để đăng nhập</td></tr></tbody></table>

&#x20;Cột Phủ Định (Is Not) cho phép logic NOT trên bộ lọc.

## Hàm Tính Gộp

Trong bảng tính Excel có một tính năng được sử dụng rất rộng rãi là  lọc dữ liệu theo giá trị của một cột nào đó và sau đó lấy tổng giá trị của một cột khác trong dữ liệu đã được lọc.

Bạn có thể làm y hệt như vậy trong KNOWINS. Ví dụ để cộng tổng số tiền quyên góp được theo ngày, cho chương trình gây quỹ *`0x66197d8e98028b60e2682b1c079c79583f4b1047`*, bạn có thể làm như sau:

1. Kéo cột số tiền (*`amount`*) bên tay trái vào lưới kết xuất bên tay phải.
2. Chọn hàm tính gộp: `TỔNG`
3. Kéo cột ngày giao dịch (*`transactiondate`*) vào lưới kết xuất.
4. Kéo cốt địa chỉ ví của chương trình gây quỹ (*`contract_address`*) vào lưới bộ lọc phía trên và nhập giá trị *`0x66197d8e98028b60e2682b1c079c79583f4b1047`* vào ô trong cột giá trị.

Khi chạy, báo cáo sẽ lọc dữ liệu chỉ lấy các giao dịch quyên góp cho chương trình tại địa chỉ ví là *`0x661...`*, sau đó nó sẽ nhóm các giao dịch này thành từng nhóm theo ngày giao dịch và lấy tổng số tiền cho từng nhóm, cuối cùng nó kết xuất dữ liệu bao gồm hai cột: ngày giao dịch và tổng số tiền trong từng ngày.&#x20;

<figure><img src="/files/r8ITM4QI2tw3hCy1h53i" alt="" width="563"><figcaption><p>Tính tổng số tiền theo từng ngày</p></figcaption></figure>

Chạy báo cáo. Bạn sẽ có kết quả như sau  (nhấn biểu tượng kết xuất ra Excel nếu bạn không nhìn thấy định dạng đầy đủ của cột *`transaction_date`*):

<figure><img src="/files/lKcrooQz2Z6GTV6wucRr" alt="" width="563"><figcaption><p>Kết quả tính tổng số tiền theo ngày</p></figcaption></figure>

## Lấy Giá Trị Bộ Lọc Trong báo Cáo

Bạn có thể lấy các giá trị do người dùng nhập vào trong bộ lọc khi chạy báo cáo bằng cách dùng thẻ hàm <#Lookup>.

Khi chạy, các giá trị trong bộ lọc được truyền vào mẫu báo cáo trong một bảng có tên mặc định là Filters, có cấu trúc như sau:

<table><thead><tr><th width="211.52258064516127">Name</th><th width="94">Is_Not</th><th width="106">Operator</th><th width="141">ValueFrom</th><th width="148">ValueTo</th></tr></thead><tbody><tr><td><em><code>address</code></em></td><td>Y/N</td><td>-</td><td><em><code>0x78a0...</code></em></td><td> </td></tr><tr><td> <em><code>transaction_date</code></em></td><td> </td><td> </td><td> <em><code>2023-01-01</code></em></td><td>  <em><code>2023-12-31</code></em></td></tr></tbody></table>

Nhấn biểu tượng Download để tải mẫu báo cáo `ONEIRO_AF_CP` về. Mở file mẫu báo cáo bằng Excel, sau đó đi vào bảng `<#Config>` và nhập vào ô N17 công thức bên dưới:

```
<#Lookup(Filters;Name;address;ValueFrom)>
```

Công thức này sẽ tìm trong cột *Name* của bảng `Filters` hàng đầu tiên có giá trị là *`address`* và lấy ra giá trị ở trong cột ValueFrom của bảng này, chính là *`0x78a02bb94b324bd2d671ba32f644530b55a0271e`*.

<figure><img src="/files/IqPSZjbW2cPpkDDNWR4M" alt=""><figcaption><p>Dùng thẻ hàm Lookup để lấy giá trị bộ lọc</p></figcaption></figure>

Lưu file mẫu báo cáo mới sửa đổi lại.

Quay trở lại **Lập Báo Cáo > Tổng Hợp**, chọn `ONEIRO_AF_CP`, nhấn biểu tượng <mark style="color:yellow;">Sửa</mark> và sau đó Upload để tải mẫu báo cáo mới lên.&#x20;

Chạy lại báo cáo. Bạn sẽ thấy thẻ tên *`TagName`* được thay thế bằng giá trị của địa chỉ ví *`address`* truyền vào trong bộ lọc.

<figure><img src="/files/JbdAPauVqQMWIUq0RPAM" alt=""><figcaption><p>Giá trị TagName đã bị thay thế</p></figcaption></figure>

Thay đổi giá trị cho bộ lộc *`address`* và chạy lại báo cáo để thấy sự thay đổi.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://knowins.gitbook.io/tai-lieu-huong-dan-knowins-phan-1/huong-dan/tong-hop.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
