Page 1 of 2

เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Wed Sep 12, 2012 5:57 pm
by manager
=SUMPRODUCT(--(ข้อมูล!$E$4:$E$5990=$B4),--(ข้อมูล!$B$4:$B$5990=D$3),ข้อมูล!$K$4:$K$5990)
เดิมเป็นสูตรผลรวมตรงๆ รบกวนปรับสูตรเป็นค่าเฉลี่ยเป็นเปอร์เซนต์ ข้อมูล K เป็นเปอร์เซนต์ ไม่ทราบว่าจะได้หรือเปล่าครับ
ขอบคุณครับ

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Wed Sep 12, 2012 6:05 pm
by snasui
:lol: การคำนวณค่าเฉลี่ยเป็น % แสดงว่าต้องมียอดรวมทั้งหมดอยู่แล้ว เราสามารถนำสูตรตามที่ยกมาถามตั้งแล้วหารด้วยยอดรวมทั้งหมดก็จะได้คำตอบที่ต้องการ

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Thu Sep 13, 2012 7:38 am
by manager
G8 คำตอบต้อง 10% ครับ
ผมลองแล้วไม่โอเค ทราบที่มาที่ไป พูดง่ายๆทำสูตรไม่เป็นว่างั้นเถอะครับ เลยเเนบไฟล์มาให้ครับ
ขอบคุณครับ

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Thu Sep 13, 2012 7:55 am
by snasui
:D ตัวอย่างสูตรตามด้านล่างครับ

=SUMPRODUCT(--(ข้อมูล!$E$4:$E$5990=$B8),--(ข้อมูล!$B$4:$B$5990=G$3),ข้อมูล!$J$4:$J$5990)/SUMPRODUCT(--(ข้อมูล!$E$4:$E$5990=$B8),--(ข้อมูล!$B$4:$B$5990=G$3),ข้อมูล!$I$4:$I$5990)

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Thu Sep 13, 2012 8:29 am
by manager
=SUMPRODUCT(--(ข้อมูล!$E$4:$E$5990=$B5),--(ข้อมูล!$B$4:$B$5990=G$3),(ข้อมูล!$j$4:$j$5990/ข้อมูล!$i$4:$i$5990)
แบบนี้ครับที่ผมคิดและอีกหลายแบบอยู่มั่วเลย อาจารย์หัวเราะใส่ผมได้เลย
ขอบคุณมากครับ

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Thu Sep 13, 2012 9:03 am
by manager
ต้องรบกวนอาจารย์อีกครั้งครับ ส่วนอื่นที่ตัวเลขโอเค ส่วนไม่ตัวเลขขึ้น #div/0 ไปดูที่อาจารย์ตอบเมื่อวาน=IF(I3661=0,0,J3661/I3661) ดูแล้วไม่ทราบจะผูกสูตรอย่างไรดีครับ
ขอบคุณครับ

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Thu Sep 13, 2012 9:23 am
by bank9597
:D เราใช้ If ได้ครับ สมมุติต้องการให้แสดงเป็นค่าว่าง ก็เพิ่ม if เข้าไปดังนี้

ที่ G8 คีย์ =IF(B8="","",SUMPRODUCT(--(ข้อมูล!$E$4:$E$5990=$B8),--(ข้อมูล!$B$4:$B$5990=G$3),ข้อมูล!$J$4:$J$5990)/SUMPRODUCT(--(ข้อมูล!$E$4:$E$5990=$B8),--(ข้อมูล!$B$4:$B$5990=G$3),ข้อมูล!$I$4:$I$5990))
คัดลอกลงมาครับ

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Thu Sep 13, 2012 9:26 am
by snasui
:D
manager wrote:ต้องรบกวนอาจารย์อีกครั้งครับ ส่วนอื่นที่ตัวเลขโอเค ส่วนไม่ตัวเลขขึ้น #div/0 ไปดูที่อาจารย์ตอบเมื่อวาน=IF(I3661=0,0,J3661/I3661) ดูแล้วไม่ทราบจะผูกสูตรอย่างไรดีครับ
ขอบคุณครับ
ให้ดูรูปแบบการใช้ Max เข้ามาช่วยแล้วปรับใช้ดูครับ

จากสูตร =SUMPRODUCT(--(ข้อมูล!$E$4:$E$5990=$B5),--(ข้อมูล!$B$4:$B$5990=G$3),ข้อมูล!$j$4:$j$5990/ข้อมูล!$i$4:$i$5990) ก็สามารถใช้ได้หากว่า ข้อมูล!$i$4:$i$5990 ไม่มีค่า 0 ปนอยู่ด้วย

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Thu Sep 13, 2012 9:52 am
by manager
รบกวนปรับแก้ไม่ต้องการ #DIV/0
1 D9 สูตรนี้ของอาจารย์
2. D8 สูตรนี้ของคุณbank9597
ไม่ทราบผมทำผิดหรือเข้าใจผิดเปล่าถึงไม่ได้ที่ต้องการ ผมลองแนบไฟล์มาให้อีกครั้ง
ขอบคุณครับ

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Thu Sep 13, 2012 10:07 am
by snasui
:D ลองดูตัวอย่างการใช้ Max ตามด้านล่างอีกครั้งหนึ่งว่านำมาใช้อย่างไร Max อยู่ตรงตำแหน่งใด ลองปรับมาดูกันใหม่ครับ
snasui wrote::D
manager wrote:
manager wrote:B 344 หาร A 344 เป็นช่องว่าง = ช่องคำตอบ C 344 =#DIV/0 อยากทำสูตรช่อง C ไม่ให้เกิด #DIV/0 ครับ
ขอบคุณครับ[/quote
หายเหมือนกันครับ C344=IF(C344=0,0,B344/A344) แต่หาก B หาร A เป็นค่าตัวเลขอื่นที่มากกว่า 0 ค่า K เวลาลากสูตร จะได้คำ ตอบเดียวกันหมด
ขอบคุณครับ
ถ้าเขียนสูตรใน C344 เป็นการเขียนสูตรที่ไม่ถูกตำแหน่งครับ เพราะสูตรควรจะเป็น เช่น

=If(A344=0,0,B344/A344) หรือ
=B344/Max(1,A344)

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Thu Sep 13, 2012 10:18 am
by bank9597
:D แบบนี้พอได้ไหมครับ

ที่ D8 คีย์ =IF(ISERROR(SUMPRODUCT(--(ข้อมูล!$E$4:$E$5990=$B8),--(ข้อมูล!$B$4:$B$5990=D$3),ข้อมูล!$J$4:$J$5990)/SUMPRODUCT(--(ข้อมูล!$E$4:$E$5990=$B8),--(ข้อมูล!$B$4:$B$5990=D$3),ข้อมูล!$I$4:$I$5990)),0,SUMPRODUCT(--(ข้อมูล!$E$4:$E$5990=$B8),--(ข้อมูล!$B$4:$B$5990=D$3),ข้อมูล!$J$4:$J$5990)/SUMPRODUCT(--(ข้อมูล!$E$4:$E$5990=$B8),--(ข้อมูล!$B$4:$B$5990=D$3),ข้อมูล!$I$4:$I$5990))

คัดลอกลงมา

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Thu Sep 13, 2012 11:54 am
by manager
อันนี้สูตรของอาจารย์ผมทำใหม่=SUMPRODUCT(--(ข้อมูล!$E$4:$E$5990=$B8),--(ข้อมูล!$B$4:$B$5990=G$3),ข้อมูล!$J$4:$J$5990/MAX(1,ข้อมูล!$I$4:$I$5990)) ไม่ทราบว่าผมทำถูกไหมครับ?
ส่วนสูตรของคุณbank9597 กำลังทดลองใช้อยู่
ผมลองทำเบื้องต้นใช้ได้ทั้งสองสูตรครับ แต่ผล%ยังไม่ลงตัว จะลองตรวจสอบ data ดูก่อนว่าผิดปกติอะไร ถ้าติดขัดจะรบกวนถามอีกครั้งครับ
ขอบคุณครับ

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Thu Sep 13, 2012 12:26 pm
by bank9597
:D ผลลัพท์ที่ต้องการนั้น หากยังผิดอยู่ ให้ตรวจสอบสูตรและข้อมูลครับ

หากผลลัพท์ที่ได้ ถูกต้องแล้ว แต่มีปัญหาการแสดงเออเรอร์ #div/0 ในส่วนที่ไม่มีข้อมูล ตรงนี้สามารถใช้ If ,ISERROR,ฯลฯ เข้าไปดักได้ว่าจะให้แสดงอะไรในกรณีที่มันเออร์เรอร์

ที่ผมตอบไปคือการดัก #div/0 เท่านั้นเองครับ

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Thu Sep 13, 2012 12:31 pm
by snasui
manager wrote:อันนี้สูตรของอาจารย์ผมทำใหม่=SUMPRODUCT(--(ข้อมูล!$E$4:$E$5990=$B8),--(ข้อมูล!$B$4:$B$5990=G$3),ข้อมูล!$J$4:$J$5990/MAX(1,ข้อมูล!$I$4:$I$5990)) ไม่ทราบว่าผมทำถูกไหมครับ?
ส่วนสูตรของคุณbank9597 กำลังทดลองใช้อยู่
ผมลองทำเบื้องต้นใช้ได้ทั้งสองสูตรครับ แต่ผล%ยังไม่ลงตัว จะลองตรวจสอบ data ดูก่อนว่าผิดปกติอะไร ถ้าติดขัดจะรบกวนถามอีกครั้งครับ
ขอบคุณครับ
:D ลองสูตรด้านล่างแล้วยังครับ

=SUMPRODUCT(--(ข้อมูล!$E$4:$E$5990=$B8),--(ข้อมูล!$B$4:$B$5990=G$3),ข้อมูล!$J$4:$J$5990)/Max(1,SUMPRODUCT(--(ข้อมูล!$E$4:$E$5990=$B8),--(ข้อมูล!$B$4:$B$5990=G$3),ข้อมูล!$I$4:$I$5990))

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Thu Sep 13, 2012 12:59 pm
by manager
ได้โอเคเลยครับ
ถามต่อนิดครับ =AVERAGE(D4:D320) บางบรรทัดจะไม่มีตัวเลข ในกรณีนี้เปลี่ยนสูตรให้ AVERAGE เฉพาะมีตัวเลข จะต้องทำสูตรอย่างไรครับ
ขอบคุณครับ

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Thu Sep 13, 2012 1:29 pm
by bank9597
:D ลองตามนี้ครับ

คีย์ =AVERAGE(IF(D4:D320>0,D4:D320)) กด Ctrl+Shift+Enter

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Thu Sep 13, 2012 2:27 pm
by manager
{=AVERAGE(IF(D5:S5>0,D5:S5))} ถามเพิ่มครับ ถ้าช่อง D5:S5 ไม่มีตัวเลขจะขึ้น #div/0 อยากปรับสูตรไม่ให้มีครับ
ขอบคุณครับ

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Thu Sep 13, 2012 3:11 pm
by bank9597
:lol: อย่างที่เคยบอกไปครับ เราสามารถใช้ IF,ISERROR เข้ามาดักเออเรอร์ตัวนี้ได้ ยกตัวอย่างเช่น

=IF(COUNTA(D5:S5)=0,"",AVERAGE(IF(D5:S5>0,D5:S5)))

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Thu Sep 13, 2012 3:58 pm
by manager
=IF(COUNTA(D5:S5)=0,"",AVERAGE(IF(D5:S5>0,D5:S5))) ทำแล้วขึ้น #value! ผมทำผิดอะไรหรือเปล่า
ขอบคุณครับ

Re: เปลี่ยนสูตรผลรวมตรงๆเปลี่ยนเป็นค่าเฉลี่ย

Posted: Thu Sep 13, 2012 4:03 pm
by bank9597
manager wrote:=IF(COUNTA(D5:S5)=0,"",AVERAGE(IF(D5:S5>0,D5:S5))) ทำแล้วขึ้น #value! ผมทำผิดอะไรหรือเปล่า
ขอบคุณครับ
:lol: ขออภัยครับ ผมลืมบอกว่าต้องกด Ctrl+Shift+Enter ขอโทาด้วยครับ :tt: