Page 2 of 2

Re: การบวก และการนับที่มีเงื่อนไข

Posted: Sun Dec 23, 2012 8:45 pm
by วังวู ช่ง
snasui wrote::D อายุการควรเขียนให้สื่อถึงความเป็นจริงครับ เลือกใช้สักอันระหว่าง อายุ <01 ปี กับ อายุ 1-5 ปี เพราะการเขียนสูตรจะไม่เหมือนกัน :!:

จากที่ถามมา เซลล์ G7 คีย์สูตร

=SUM((ISNUMBER(MATCH($C$2:$C$91,IF(ISNUMBER(SEARCH("-",LOOKUP(CHAR(255),$F7))),ROW(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LOOKUP(CHAR(255),$F7),"อายุ",""),"ปี",""),"-",":"))),ROW(INDIRECT(TRIM(SUBSTITUTE(SUBSTITUTE(LOOKUP(CHAR(255),$F7),"อายุ",""),"ปีขื้นไป",""))&":100"))),0)))*IF(G$6="จำนวน",1,$D$2:$D$91))

Ctrl+Shift+Enter > Copy ไปทางขวาและลงด้านล่าง สังเกตการใช้ $ ที่ G6 ในสูตรด้านบนครับ :arl:
ได้คำตอบตามต้องกานขอบคุณท่านอาจารย์มากๆครับ

Re: การบวก และการนับที่มีเงื่อนไข

Posted: Mon Dec 24, 2012 9:01 am
by norkaz
ตรงนี้
=SUM((ISNUMBER(MATCH($C$2:$C$91,IF(ISNUMBER(SEARCH("-",LOOKUP(CHAR(255),$E$1:E$1))),ROW(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LOOKUP(CHAR(255),$E$1:E$1),"อายุ",""),"ปี",""),"-",":"))),ROW(INDIRECT(TRIM(SUBSTITUTE(SUBSTITUTE(LOOKUP(CHAR(255),$E$1:E$1),"อายุ",""),"ปีขื้นไป",""))&":100"))),0)))*IF(E2="จำนวน",1,$C$2:$C$91))

คุณ คนควน ตัดเงื่อนไข IF จากด้านหน้าไปไว้ด้านหลัง บังคับให้ "คูณ" กดเป็น Array ทำให้สูตรกระชับลงได้คลาสสิค สุดยอดระดับ เซียนเรียกพี่ ผีเรียกพ่อ จริงๆ!!

การเข้าใจในเรื่อง กล Array ผลคูณแบบนี้ คงหาคนที่สองไม่ได้อีกแล้วครับ

สวัสดีปีหน้าครับ :)

นับถือ
Norkaz

Re: การบวก และการนับที่มีเงื่อนไข

Posted: Mon Dec 24, 2012 11:04 am
by snasui
:D ขอบคุณ คุณ norkaz ที่มาช่วยขยายความ เพื่อน ๆ จะได้ทราบลักษณะของการประยุกต์พลิกแพลงไปด้วย :thup:

ขอขอบคุณสำหรับคำชมและสวัสดีปี 2556 ครับ

Re: การบวก และการนับที่มีเงื่อนไข

Posted: Mon Dec 24, 2012 9:27 pm
by วังวู ช่ง
snasui wrote::D อายุการควรเขียนให้สื่อถึงความเป็นจริงครับ เลือกใช้สักอันระหว่าง อายุ <01 ปี กับ อายุ 1-5 ปี เพราะการเขียนสูตรจะไม่เหมือนกัน :!:

จากที่ถามมา เซลล์ G7 คีย์สูตร

=SUM((ISNUMBER(MATCH($C$2:$C$91,IF(ISNUMBER(SEARCH("-",LOOKUP(CHAR(255),$F7))),ROW(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LOOKUP(CHAR(255),$F7),"อายุ",""),"ปี",""),"-",":"))),ROW(INDIRECT(TRIM(SUBSTITUTE(SUBSTITUTE(LOOKUP(CHAR(255),$F7),"อายุ",""),"ปีขื้นไป",""))&":100"))),0)))*IF(G$6="จำนวน",1,$D$2:$D$91))

Ctrl+Shift+Enter > Copy ไปทางขวาและลงด้านล่าง สังเกตการใช้ $ ที่ G6 ในสูตรด้านบนครับ :arl:
ผมจะสึกสาดู เป็นไงจะแจ้งให้อีกทีครับ