Excel - Thêm công thức excel trong FilterXML
Tôi có một bảng tính excel chứa danh sách các chuỗi trong một cột. Danh sách các chuỗi được tạo thành từ một số số với độ dài khác nhau, được phân tách bằng “/” và “;” Mục nhập đầu tiên của chuỗi là id mã (luôn có độ dài 3) (ví dụ màu đỏ) theo sau là “/” sau đó là số tiền (thay đổi về độ dài) (ví dụ màu xanh lá cây) theo sau là “;” nếu chuỗi tiếp tục.
Với sự giúp đỡ của một thành viên, bây giờ tôi có thể tách số màu xanh lá cây bằng công thức sau:
=IF(ISBLANK(A4);"";TRANSPOSE(FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(A4;"/";";");";";"</s><s>")&"</s></t>";"//s[position() mod 2 = 0]")))
Tuy nhiên, tôi vẫn cần một công thức khác nhân số màu xanh lá cây với một biến, nếu điều kiện được đáp ứng.
Hàm ví dụ:
=IFS(B2<=10;B2*1,25;B2<=20;B2*1,18;B2<=100;B2*1,05;B2<=250;B2*1,01;B2>250;B2)
Có cách nào để kết hợp cả hai chức năng này không?
Trả lời
Một cách rất hay để giải quyết vấn đề này là gán toàn bộ mảng cho một tên, giả sử như một biến, thông qua LET(). Vì vậy, công thức của bạn trong B2sẽ trở thành:
=IF(A2<>"",LET(MNT,TRANSPOSE(FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(A2,"/",";"),";","</s><s>")&"</s></t>","//s[position() mod 2 = 0]")),IFS(MNT<=10,MNT*1.25,MNT<=20,MNT*1.18,MNT<=100,MNT*1.05,MNT<=250,MNT*1.01,MNT>250,MNT)),"")
Tuy nhiên, nó yêu cầu Excel O365. Nhưng vì bạn đang chuyển đổi mảng, có vẻ như bạn có điều đó.