Sumif/countif đơn giản trong power automate


1. Chuẩn bị 2 array, 1 array là bảng detail cần tổng hợp, 1 array là unique key ID
array detail, mấy cột số nhớ để dạng số, nếu chưa phải thì hãy chuẩn hóa bằng công thwucs sau:coalesce(item()?['crff2_quantity'], 0) để tránh bẫy null và bẫy ko phải số:



{
"crff2_product_id": "PRO_2025-16-06_0002",
"crff2_quantity": 6,
"crff2_use_up_date": "2026-06-21T00:00:00Z",
"est_used": 0,
"remaining": 6
},
{
"crff2_product_id": "PRO_2025-15-06_0001",
"crff2_quantity": 0.5,
"crff2_use_up_date": "2025-07-30T00:00:00Z",
"est_used": 0.32,
"remaining": 0.18
},
{


Array list key:
[
"PRO_2025-16-06_0002",
"PRO_2025-15-06_0001",
"PRO_2025-16-06_0014",
"PRO_2025-15-06_0001",
"PRO_2025-15-06_0002",
"PRO_2025-15-06_0005",
"PRO_2025-31-05_0002",
"PRO_2025-24-06_0007",
"PRO_2025-15-06_0001",
"PRO_14052025_0000",


*cách tạo array list key: select cột key =>thành output1từ detail=>union(output1,output1)




Tiến hành:
1. Compose như sau cho array detail:



{ "root": { "array": @{body('Select_3')} } }



2. Tạo XML cho compose trên




3. Tạo 1 select với nguồn từ Array list(tính toán cho từng item trên list key)
để count, sum, điền công thức như sau:

Ngoài tính toán ra, có thể thêm bất ký cột nào, chỉ cần tên cột(đơn giản) và điền công thức trong ô Expression : item()?['tên cột']

count:xpath(outputs('Compose_3'), concat('count(/root/array[normalize-space(crff2_product_id)="', item(), '"])'))
sum:xpath(outputs('Compose_3'), concat('sum(/root/array[normalize-space(crff2_product_id)="', item(), '"]/crff2_quantity)'))

Trong đó:
outputs('Compose_3') :output XML
crff2_product_id=Key
crff2_quantity =field cần sum




4. Kết quả:



Nhận xét