Page 1 of 1

Range Name นอกจาก sumif เราใช้ใน lookup และ countif ได้ไหมคร

Posted: Wed Nov 21, 2012 12:08 pm
by dragonna
ในตารางที่แนบมาผมได้ทำการใช้สูตร เพื่อนับเฉพาะตัวที่ไม่ซ้ำ =IF(COUNTIF(B$2:B2,B2)=1,MAX(D$1:D1)+1,"")
และใช้สูตร =LOOKUP(A2,'1'!D:D,'1'!B:B) เพื่อให้ดึงข้อมูลในหน้าสรุป
แล้วใช้สูตร =SUMPRODUCT(SUMIF(INDIRECT("'"&Allsh&"'!B:B"),$B2,(INDIRECT("'"&Allsh&"'!C:C")))) เพื่อดึงยอดรวมทุกชีทครับ

ในคอลัมภ์ D ของแต่ละชีทเราสามารถใช้สูตรเพื่อหาตัวไม่ซ้ำแบบต่อเนื่องข้ามชีทได้ไหมครับ
ในคอลัมภ์ A และ B เราสามารถใช้สูตรต่อเนื่องได้ไหมครับ



ปล.เป็นตารางคำนวณค่าแรงในแต่ละวัน โดยแยกงานในแต่ละแผนก

กราบขอบพระคุณทุกท่านช่วยชี้แนะให้ผมด้วยครับ

Re: Range Name นอกจาก sumif เราใช้ใน lookup และ countif ได้ไ

Posted: Wed Nov 21, 2012 1:23 pm
by snasui
:D
dragonna wrote:Range Name นอกจาก sumif เราใช้ใน lookup และ countif ได้ไหมคร
Range Name สามารถใช้ได้กับทุกสูตรครับ
dragonna wrote:ในคอลัมภ์ D ของแต่ละชีทเราสามารถใช้สูตรเพื่อหาตัวไม่ซ้ำแบบต่อเนื่องข้ามชีทได้ไหมครับ
คำถามนี้ไม่เข้าใจครับ ช่วยแสดงตัวอย่างข้อมูลที่ถูกต้องมาให้ดูเป็นตัวอย่างว่า ค่าไม่ซ้ำต่อเนื่องข้ามชีทนั้นใช้ค่าใดมาแสดง และแสดงเป็นเช่นไร นอกจากนี้เหตุใดต้องทำในคำลัมน์ D ของแต่ละชีทครับ

Re: Range Name นอกจาก sumif เราใช้ใน lookup และ countif ได้ไ

Posted: Wed Nov 21, 2012 1:44 pm
by dragonna
ใช้ lookup ดึงข้อมูลจากชีทที่ Range Name ได้ไหมครับ

ในช่อง B2 ผมใส่สูตร =LOOKUP($A2,INDIRECT("'"&Allsh&"'!D:D"),INDIRECT("'"&Allsh&"'!B:B")) หาค่าได้

แต่พอลากสูตรลงมากลายเป็นค่า #N/A และ #Value ครับ

Re: Range Name นอกจาก sumif เราใช้ใน lookup และ countif ได้ไ

Posted: Wed Nov 21, 2012 1:44 pm
by dragonna
ผมต้องการสรุปในหน้า Sum ครับ

Re: Range Name นอกจาก sumif เราใช้ใน lookup และ countif ได้ไ

Posted: Wed Nov 21, 2012 1:46 pm
by dragonna
รบกวนอาจารย์อีกรอบครับผม ผมทำไฟล์แนบมาให้ใหม่แล้วครับผม

ในคอลัมภ์ D ชีทที่ 2 จะนับเพิ่มต่อจากคอลัมภ์ D ชีทที่ 1 ครับ
ในคอลัมภ์ D ชีทที่ 3 จะนับเพิ่มต่อจากคอลัมภ์ D ชีทที่ 1 และ 2 ครับ

Re: Range Name นอกจาก sumif เราใช้ใน lookup และ countif ได้ไ

Posted: Wed Nov 21, 2012 3:16 pm
by snasui
:D ควรนำข้อมูลมาต่อกันในชีทเดียวเพื่อให้เป็น Database จากนั้นใช้สูตรหาค่าใด ๆ ตามต้องการ

ฟังก์ชั่นที่ให้แสดงผลลักษณะ 3 มิติอย่างเช่น
dragonna wrote:=SUMPRODUCT(SUMIF(INDIRECT("'"&Allsh&"'!B:B"),$B2,(INDIRECT("'"&Allsh&"'!C:C"))))
มีลักษณะการใช้งานอย่างจำกัด ไม่ได้มีความสามารถในการนำข้อมูลมาต่อกันต่อเนื่องกันเหมือนที่อยากให้เป็นครับ

Re: Range Name นอกจาก sumif เราใช้ใน lookup และ countif ได้ไ

Posted: Wed Nov 21, 2012 4:32 pm
by dragonna
ขอบคุณครับอาจารย์ ผมเข้าใจที่อาจารย์สอนนะครับ แต่ผมได้ข้อมูลมาจากแผนกอื่นครับ พยายามไปปรับเปลี่ยนวิธีคิดให้เค้าแล้ว ทำไฟล์ให้เค้าแล้ว เค้าก็ไม่เข้าใจ ก็ยังคงทำแบบเดิมอยู่ครับ

ผมแค่ลองคิดเผื่อดูครับ เผื่อว่าทำได้ ในหน้า sum จะได้ไม่ต้องมาคีย์เพิ่มครับ แต่ผมเช็คโดยใช้ countif อยู่แล้วครับผม

ผมเองก็คิดไปเรื่อยครับ ตอนนี้มาทำต้นทุนซึ่งเยอะมาก(ความต้องการ) แต่ก็สนุกดี พอเข้าใจเรื่องสูตรเอ็กเซล ก็เลยว่าอยากจะเรียนเพิ่ม เป็นนักคณิตศาสตร์ประกันภัย เผื่อจะอัพรายได้เพิ่มขึ้นครับ

ขอบคุณอาจารย์ีที่ช่วยแนะนำนะครับ

Re: Range Name นอกจาก sumif เราใช้ใน lookup และ countif ได้ไ

Posted: Wed Nov 21, 2012 5:53 pm
by bank9597
dragonna wrote:ขอบคุณครับอาจารย์ ผมเข้าใจที่อาจารย์สอนนะครับ แต่ผมได้ข้อมูลมาจากแผนกอื่นครับ พยายามไปปรับเปลี่ยนวิธีคิดให้เค้าแล้ว ทำไฟล์ให้เค้าแล้ว เค้าก็ไม่เข้าใจ ก็ยังคงทำแบบเดิมอยู่ครับ

ผมแค่ลองคิดเผื่อดูครับ เผื่อว่าทำได้ ในหน้า sum จะได้ไม่ต้องมาคีย์เพิ่มครับ แต่ผมเช็คโดยใช้ countif อยู่แล้วครับผม

ผมเองก็คิดไปเรื่อยครับ ตอนนี้มาทำต้นทุนซึ่งเยอะมาก(ความต้องการ) แต่ก็สนุกดี พอเข้าใจเรื่องสูตรเอ็กเซล ก็เลยว่าอยากจะเรียนเพิ่ม เป็นนักคณิตศาสตร์ประกันภัย เผื่อจะอัพรายได้เพิ่มขึ้นครับ

ขอบคุณอาจารย์ีที่ช่วยแนะนำนะครับ
:D ลองพยายามดูครับ การทำงานให้เป็นมาตรฐานเดียว จะช่วยให้งานเร็วและไม่ผิดพลาดครับ ผมสนับสนุนความคิดของอาจารย์คนควนครับ เพราะง่ายต่อการจัดการ

ส่วนอันนี้ ผมตอบให้ดูก่อนครับ แสดงให้เห็นถึงว่ายุงยากในการใช้สูตร
อ้างอิงลิงค์นี้ http://snasui.blogspot.com/2009/12/sheet-sheet.html โดยอาจารย์สันติพงศ์ ลองไปศึกษาดูครับ

ที่ F2:F3 คีย์ชื่อชีทไว้ 1 ถึง 3
ที่ G2 คีย์ =COUNTA(INDIRECT("'"&F2&"'!"&"B2:B65536")) คัดลอกลงมาถึง G4
ที่ G5 คีย์ =SUM(G2:G4)
ที่ H2 คีย์ =SUM($G$2:G2)-G2+1 คัดลอกลงมา ถึง H4

จากนั้นทำการ list ชื่อชีทออกมา
ที่ A2 คีย์ =IF(ROWS($A$2:A2)>$G$5,"",LOOKUP(ROWS($A$2:A2),$H$2:$H$4,$F$2:$F$4)) คัดลอกลงมา
จากนั้นทำการ list ค่าที่อ้างอิงจากชื่อชีทในคอลัมน์ A ออกมา
ที่ B2 คีย์ =IF($A2<>"",INDIRECT("'"&$A2&"'!"&SUBSTITUTE(ADDRESS(1,COLUMN()),1,"")&COUNTIF($A$2:$A2,$A2)+1),"") คัดลอกลงมา
ที่ C2 คีย์ =IF($A2<>"",INDIRECT("'"&$A2&"'!"&SUBSTITUTE(ADDRESS(2,COLUMN()),2,"")&COUNTIF($A$2:$A2,$A2)+1),"") คัดลอกลงมา
จะได้ค่าในชีทต่างๆนำมาเรียงต่อกัน

หาค่ารวมยอด
ที่ D2 คีย์ =IF(COUNTIF($B$2:B2,$B2)=1,SUMIF($B$2:$B$31,B2,$C$2:$C$31),"") คดลอกลงมา

Re: Range Name นอกจาก sumif เราใช้ใน lookup และ countif ได้ไ

Posted: Thu Nov 22, 2012 9:35 am
by dragonna
ขอบคุณคุณ bank9597 มากนะครับวิธีการใช้ได้เลยครับ ตอนนี้ต้องพิสูจน์ตัวเองให้หัวหน้าเห็นก่อนว่าผมก็ใช้สูตรเอ็กเซลทำงานได้ดีระดับไหนครับ เพราะกลัวว่าก่อนจะเปลี่ยนแปลงอะไรก็ตาม หากมีปัญหาผมต้องแก้และรับผิดชอบได้ด้วครับ พอหัวหน้าเชื่อใจแล้วค่อย ๆ ปรับแต่ละแผนกไปครับ

ขอบคุณทุก ๆ ที่ให้ความรู้เพื่อนำไปใช้ประโยชน์ต่อไปได้ครับผม