
การสร้าง Range Name แบบ Dynamic ลองแบบนี้ดูครับ
1.ไปที่แถบ Formulas > Define Name
2.พิมพ์ชื่อ Data ลงในช่อง Name
3.ในช่อง Refers to ด้านล่าง (ถ้ามีข้อความใดๆ ก็ลบออกก่อน) พิมพ์สูตร =OFFSET(DATA!$K$2,0,0,COUNTA(DATA!$A:$A)-1,1)
4.คลิกปุ่ม OK
5.ทำเหมือนข้อที่ 2 ในช่อง Name พิมพ์ชื่อ RangeData
6.ในช่อง Refers to ด้านล่าง พิมพ์สูตร
=OFFSET(DATA!$A$2,0,0,COUNTA(DATA!$B:$B)-1,18)
7.ที่เซลล์ A5 จากสูตร =IF(ROWS(A$5:A5)>COUNTIF(DATA!$K$2:$K$39,$C$1),"",ROWS(A$5:A5)) เปลี่ยนเป็น
=IF(ROWS(A$5:A5)>COUNTIF(
Data,$C$1),"",ROWS(A$5:A5)) Enter . Copy ลงด้านล่าง
8.ที่เซลล์ B5 จากสูตร
=IF(N($A5),INDEX(INDEX(DATA!$A$2:$R$39,0,MATCH(B$4,DATA!$A$1:$R$1,0)),SMALL(IF(DATA!$A$2:$R$39=$C$1,ROW(DATA!$A$2:$R$39)-ROW(DATA!$A$2)+1),$A5)),"") เปลี่ยนเป็น
=IF(N($A5),INDEX(INDEX(
RangeData,0,MATCH(B$4,DATA!$A$1:$R$1,0)),SMALL(IF(
RangeData=$C$1,ROW(
RangeData)-ROW(DATA!$A$2)+1),$A5)),"") กดแป้น Ctrl+Shift+Enter พร้อมกัน จากนั้นก็ Copy ไปทางขวาและลงมาด้านล่าง ลองนำไปประยุกต์ปรับใช้กับข้อมูลอื่นๆ ดูครับ