Page 1 of 1
รวมเลขข้าม Sheet หลาย ๆ Sheet รายบุคคล
Posted: Sun Apr 07, 2019 2:04 pm
by kkoy
รบกวนสอบถามวิธีการบวกเลขหลาย ๆ Sheet โดยมี Sheet สรุปข้อมูล ซึ่งจะต้องนำข้อมูลแต่ละ Sheet แต่ละหัวข้อ มารวมกัน
Sheet สรุป จะมีรายชื่อ และ หัวข้อที่ต้องการรวมข้อมูลของแต่ละ Sheet ไว้
ซึ่งต้องการรวมเลข ตามหัวข้อ และชื่อ ไว้ที่ Sheet สรุป อันเดียว
ไม่ทราบว่าต้องใช้สูตรใดในการจัดทำคะ
Re: รวมเลขข้าม Sheet หลาย ๆ Sheet รายบุคคล
Posted: Sun Apr 07, 2019 2:52 pm
by snasui

ตัวอย่างสูตรตามด้านล่างครับ
- ที่ L1:S1 คีย์ชื่อชีตทั้งหมด เริ่มจาก 15 พ.ย. ถึง 28 ก.พ.
- ที่ K2 คีย์สูตรเพื่อแสดงหัวคอลัมน์
=IFERROR(INDEX($C$1:$I$1,ROWS(K$2:K2)),"")
Enter > Copy ลงด้านล่าง
- ที่ L2 คีย์สูตรเพื่อหาว่าในแต่ละชีตคอลัมน์ต่าง ๆ ห่างจาก D1 ไปกี่คอลัมน์
=IF($K2="","",IFERROR(MATCH($K2,INDIRECT("'"&L$1&"'!D1:Z1"),0),20))
Enter > ไปด้านขวาถึง S2 และ Copy ลงด้านล่าง
- ที่ C2 คีย์สูตรเพื่อหายอดรวมของทุกชีตตามรหัสในคอลัมน์ A และคอลัมน์ในบรรทัดที่ 1
=SUMPRODUCT(SUMIF(INDIRECT("'"&$L$1:$S$1&"'!A2:A100"),$A2,OFFSET(INDIRECT("'"&$L$1:$S$1&"'!C2:C100"),0,INDEX($L$2:$S$8,MATCH(C$1,$K$2:$K$8,0),0))))
Enter > Copy ลงด้านล่าง
Re: รวมเลขข้าม Sheet หลาย ๆ Sheet รายบุคคล
Posted: Tue Apr 09, 2019 9:16 am
by Supachok
เรียน ท่านอาจารย์
มีความสงสัยเรื่อง sumif ในสูตรตามภาพจะขึ้น #Value
แต่สูตรสามารถนำตัวเลขมาแสดงเพื่อคำนวนได้
ในตัวอย่างข้ออีกกระทู้ก็เป็นวิธีคล้ายๆกัน
https://www.snasui.com/viewtopic.php?f=3&t=15100
ขอให้ช่วยอธิบายทีครับ
Re: รวมเลขข้าม Sheet หลาย ๆ Sheet รายบุคคล
Posted: Tue Apr 09, 2019 9:52 pm
by snasui

กรณีใช้ Volatile Function ประกอบกับฟังก์ชั่นอื่น ๆ ในลักษณะที่ซับซ้อนซึ่งในกรณีนี้คือ Indirect และ Offset เมื่อ Evaluate Formula จะแสดงค่าผิดพลาดเกิดขึ้นได้ ให้ทำการ Evaluate ด้วยการกดแป้น F9 แทนครับ
Re: รวมเลขข้าม Sheet หลาย ๆ Sheet รายบุคคล
Posted: Fri Apr 12, 2019 10:49 am
by kkoy
ขอบคุณมากค่ะ
Re: รวมเลขข้าม Sheet หลาย ๆ Sheet รายบุคคล
Posted: Wed Feb 26, 2020 3:55 pm
by ixohoxi65
snasui wrote: Sun Apr 07, 2019 2:52 pm

ตัวอย่างสูตรตามด้านล่างครับ
- ที่ L1:S1 คีย์ชื่อชีตทั้งหมด เริ่มจาก 15 พ.ย. ถึง 28 ก.พ.
- ที่ K2 คีย์สูตรเพื่อแสดงหัวคอลัมน์
=IFERROR(INDEX($C$1:$I$1,ROWS(K$2:K2)),"")
Enter > Copy ลงด้านล่าง
- ที่ L2 คีย์สูตรเพื่อหาว่าในแต่ละชีตคอลัมน์ต่าง ๆ ห่างจาก D1 ไปกี่คอลัมน์
=IF($K2="","",IFERROR(MATCH($K2,INDIRECT("'"&L$1&"'!D1:Z1"),0),20))
Enter > ไปด้านขวาถึง S2 และ Copy ลงด้านล่าง
- ที่ C2 คีย์สูตรเพื่อหายอดรวมของทุกชีตตามรหัสในคอลัมน์ A และคอลัมน์ในบรรทัดที่ 1
=SUMPRODUCT(SUMIF(INDIRECT("'"&$L$1:$S$1&"'!A2:A100"),$A2,OFFSET(INDIRECT("'"&$L$1:$S$1&"'!C2:C100"),0,INDEX($L$2:$S$8,MATCH(C$1,$K$2:$K$8,0),0))))
Enter > Copy ลงด้านล่าง
สงสัยตรงสูตรนี้ครับ =IF($K2="","",IFERROR(MATCH($K2,INDIRECT("'"&L$1&"'!D1:Z1"),0),20))
ทำไม Indirect ถึงอ้างอิงเป็นช่วงได้ ผมลองทำข้อมูลใน Excel และดูค่าแล้วงงมากๆ เลยครับ
รบกวนท่านอาจารย์ อธิบายให้หน่อยครับ
ขอบคุณครับ
Re: รวมเลขข้าม Sheet หลาย ๆ Sheet รายบุคคล
Posted: Sat Feb 29, 2020 9:34 pm
by snasui
ixohoxi65 wrote: Wed Feb 26, 2020 3:55 pm
ทำไม Indirect ถึงอ้างอิงเป็นช่วงได้

เป็นความสามารถปกติของ Indirect ที่จะอ้างเป็นช่วงได้ครับ