(Công thức Unpivot) Biến 1 dòng thành nhiều dòng theo số lượng chỉ định




Bài toán thực tế


Bạn có một danh sách mã hàng và số lượng cần in tem hoặc số ngày cần chạy.

Ví dụ: Mã A cần lặp lại 5 dòng, Mã B cần 3 dòng, Mã C cần 10 dòng.

Thay vì ngồi Copy-Paste tay cho đủ số lượng, bạn dùng công thức để nó tự động dàn hàng dọc ra cho bạn.

Công thức 1:

ví dụ: cột G là giá trị, cột H là số dòng muốn lặp lại giá trị này

=LOOKUP(2,1/(SUMIF(OFFSET($H$1,,,ROW($1:3)),">0")+1<=ROWS($1:1)),$G$2:$G$4)

$H$1:chỗ có số lượng, số dòng luôn lớn hơn range chứa giá trị 1 dòng

$G$2:$G$4:range chứa giá trị cần trải nhiều dòng

=LOOKUP(2,1/(SUMIF(OFFSET($K$1,,,ROW($1:3)),">0")+1<=ROWS($1:1)),$J$2:$J$115)






Công thức 2:


=IF(D1=$A$1,A2,INDEX($A$1:$B$30,IF(COUNTIF($D$1:D1,D1)=VLOOKUP(D1,$A$1:$B$30,2,FALSE),MATCH(D1,$A$1:$A$30,0)+1,MATCH(D1,$A$1:$A$30,0)),1))

Nhận xét