janyad wrote: Fri Nov 29, 2019 9:11 am
,$B4,OFFSET(INDIRECT("'"&{1,2,3,4,5}&"'!e3:e158"),0,COLUMNS($C4:C4)-1)))
ที่ตัดมาถามแปลไม่ได้เพราะไม่ครบองค์ประกอบของความเป็นสูตรครับ
จากสูตร =SUM(SUMIF(INDIRECT("'"&{1,2,3,4,5}&"'!c3:c158"),$B4,OFFSET(INDIRECT("'"&{1,2,3,4,5}&"'!e3:e158"),0,COLUMNS($C4:C4)-1)))
หมายถึงให้หายอดรวมของ SUMIF(INDIRECT("'"&{1,2,3,4,5}&"'!c3:c158"),$B4,OFFSET(INDIRECT("'"&{1,2,3,4,5}&"'!e3:e158"),0,COLUMNS($C4:C4)-1))
Sumif มีไวยากรณ์คือ
sumif(range,criteria,sum_range)
range คือช่วงข้อมูลที่เป็นชุดเงื่อนไข ในที่นี้คือ INDIRECT("'"&{1,2,3,4,5}&"'!c3:c158") หมายถึง C3:C158 ของชีต 1-5
criteria คือเงื่อนไขที่จะนำไปตรวจสอบกับ range ในที่นี้คือ $B4
sum_range คือช่วงข้อมูลที่ต้องนำมารวมเป็นผลลัพธ์เมื่อเข้าเงื่อนไข ในที่นี้คือ OFFSET(INDIRECT("'"&{1,2,3,4,5}&"'!e3:e158"),0,COLUMNS($C4:C4)-1)
Offset มีไวยากรณ์คือ
offset(reference,rows,cols,height,width)
reference คือตำแหน่งเซลล์ที่เป็นจุดเริ่มต้น ในที่นี้คือ INDIRECT("'"&{1,2,3,4,5}&"'!e3:e158") ดูคำแปลของสูตรนี้ที่ด้านบนเพียงแต่เป็นคนละคอลัมน์
rows คือจำนวนบรรทัดที่ห่างจากจุดเริ่มต้น ในที่นี้คือ 0
cols คือจำนวนคอลัมน์ที่ห่างจากจุดเริ่มต้น ในที่นี้คือ COLUMNS($C4:C4)-1 แปลว่าจำนวนบรรทัดในช่วง C4:C4 หักออกด้วย 1 จากสูตรนี้ผลลัพธ์จะได้ 0 เพราะ COLUMNS($C4:C4) มีค่าเป็น 1 เมื่อหักออกด้วย 1 จึงเป็น 0
height คือความสูงของข้อมูล สูตรนี้มีการละไว้
width คือความกว้างของข้อมูล สูตรนี้มีการละไว้
จากสูตรนี้แปลโดยรวมของ Offset ได้ว่าจากจุดเริ่มต้นขยับไปทางบรรทัด 0 บรรทัด ขยับไปทางคอลัมน์ 0 คอลัมน์ แสดงว่าอยู่ในตำแหน่งเดิม
แต่เมื่อคัดลอกไปทางขวาจำนวนคอลัมน์จะเพิ่มมากขึ้นจากสูตร COLUMNS($C4:C4)-1 หากคัดลอกไปทางขวา 1 คอลัมน์สูตรจะกลายเป็น COLUMNS($C4:D4)-1 ผลลัพธ์เป็น 1 แปลว่าขยับไปทางขวา 1 คอลัมน์ เช่น จากเดิม C3:C158 ก็จะกลายเป็น D3:D158 เป็นต้น