Page 1 of 3

ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 1:58 am
by rocketkenji
อยากทราบสูตรที่ใช้หาค่า จากไฟล์ที่แนบมาครับ ขอบคุณครับ

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 6:54 am
by snasui
:D ยังไม่เคลียร์ครับ เซลล์ G18 มีค่า 60 มาจากเซลล์ไหนบ้าง และมีเงื่อนไขใดบ้างครับ :?:

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 12:54 pm
by rocketkenji
G18 มาจาก E3+F3+G3
G19 มาจาก H13+I13
G20 มาจาก E15+F15+G15+H15+I15
G21 มาจาก G6 ครับ
เงื่อนไขนี่เป็นยังไงครับ

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 1:54 pm
by snasui
:shock: ตอบเรื่องเงื่อนไขก่อนนะครับ

เช่น ที่ G18 ตัวเลข 60 มาจาก E3, F3, G3

การที่จะให้ไปหา E3, F3, G3 ต้องพิจารณาอะไรถึงได้ตัวเลขนั้นมา นี่คือเงื่อนไขครับ เช่นพิจารณาว่า
1. ตัวเลขที่ D18 ตรงกับ B2:B15
2. ตัวเลขที่ F18 ตรงกับ E2:I2
3. ตัวเลขที่ E18 ตรงกับ C2:C15

เช่นนี้เป็นต้น

สำหรับคำตอบลองตามนี้ครับ
1. ที่ I18 คีย์สูตรเพื่อนับว่า G18 มีกี่อักขระ

=LEN(F18)

Enter > Copy ลงด้านล่าง

2. ที่ J18 เขียนสูตรเพื่อกระจาย F18 ออกมา

=TRIM(MID(SUBSTITUTE(","&$F18,",",REPT(" ",$I18)),COLUMNS($J18:J18)*$I18,$I18))

Enter > Copy ไปด้านขวาและลงด้านล่าง

3. ที่ O 18 คีย์สูตรเพื่อตรวจสอบว่ามีค่าซ้ำหรือไม่

=SUMPRODUCT(--(J18:N18<>""),--(COUNTIF(J18:N18,J18:N18)>1))

Enter > Copy ลงด้านล่าง ถ้าผลลัพธ์เป็น 0 แสดงว่าไม่ซ้ำ

4. ที่ G18 คีย์สูตรเพื่อหาคำตอบ

=SUM(INDEX($E$3:$I$15,MATCH(1,IF($B$3:$B$15=$D18,IF($C$3:$C$15=$E18,1)),0),0)*ISNUMBER(MATCH($J18:$N18+0,$E$2:$I$2,0)))

Ctrl+Shift+Enter > Copy ลงด้านล่าง สังเกตการกดแป้น ตอนสร้างและตอนแก้ไปปรับปรุงสูตร จะต้องกด Ctrl+Shift ตามด้วย Enter เสมอ เนื่องจากเป็นสูตร Array หากกดแป้นถูกต้องจะเห็นเครื่องหมายปีกกาคร่อมสูตร ปีกกานี้จะคีย์เข้าไปเองไม่ได้ครับ :P

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 2:01 pm
by rocketkenji
ข้อมูลในช่อง E3 ถึง I7 และ E11 ถึง I15 เป็นค่าที่เราป้อนเข้าไปเองครับ

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 2:06 pm
by rocketkenji
ขอบคุณมากครับ :D

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 2:14 pm
by rocketkenji
ติดอีกนิดครับ ตรงตรวจสอบว่า ลงมัดงานซ้ำไหม ผมลองเปลี่ยนดู มันยังตรวจสอบไม่ได้อะครับ ขอบคุณมากครับ

และจากช่อง B18 - O21 จะมีวิธีการตรวจสอบไหมครับ ว่ามัดงานมัดไหน ที่เรายังไม่ได้ลงข้อมูลลงไปครับ

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 2:29 pm
by snasui
:lol: เป็นเพราะโจทย์ไม่เคลียร์ครับ ;)

การที่ตรวจสอบว่ามัดงานซ้ำหรือไม่ซ้ำจากไฟล์ที่แนบมาคือ O18 เป็นต้นไป โดยเป็นการตรวจสอบว่าใน F18 มีการคีย์เลขเดียวกันซ้ำหรือไม่ เช่น 1,2,2 เช่นนี้ถือว่าซ้ำ

แต่สิ่งที่คุณ rocketkenji ต้องการคือให้ตรวจสอบว่าจะไม่มีการคีย์มัดงานซ้ำ นั่นหมายถึง F18 มีค่า 3 แล้ว F21 จะใส่ค่า 3 อีกไม่ได้

การทำเช่นนั้นสามารถทำดังนี้ครับ

1. คลุม F18:Fn (n คือค่าใด ๆ ที่ต้องการเช่น 1000)
2. เข้าเมนู Data > Data Validation
3. ที่แถบ Setting ตรง Allow เลือก Custiom > ตรง Formula คีย์
=COUNTIF($F$18:F18,F18)=1
4. คลิก OK แล้วทดสอบการคีย์ข้อมูล > สังเกตการแสดงผล

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 2:42 pm
by rocketkenji
ถ้าผมย้าย B17 ถึง O21 ไปสร้างในชีสใหม่ ต้องแก้สูตรยังไงครับ

สูตรช่อง G18 G19 G21 ยังผิดอยู่ครับ ค่าที่ได้ต้องได้เท่ากับ

G18 = G3
G19 = H13 + I13
G21 = H3
ขอบคุณมากครับ

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 3:04 pm
by snasui
:D ไม่ต้องเขียนสูตรใหม่ครับ

ลองตามนี้ครับ

คลุม B17:O21 > คลิกขวา > Cut > ไปที่ชีทใหม่ > คลิกขวาที่เซลล์ที่ต้องการวาง > Paste

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 3:07 pm
by rocketkenji
ช่อง G9ต้องได้ 90 ครับ จาก I6+J6 ผมแยกชีสแล้วนะครับ
ขอบคุณมากครับ

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 3:38 pm
by snasui
:tt: ปรับสูตรที่ G18 ใหม่ตามด้านล่างครับ

=SUM(INDEX($E$3:$I$15,MATCH(1,IF($B$3:$B$15=$D18,IF($C$3:$C$15=$E18,1)),0),0)*ISNUMBER(MATCH($E$2:$I$2,$J18:$N18+0,0)))

Ctrl+Shift+Enter > Copy ลงด้านล่าง

สังเกตที่ระบายสีไว้จะสลับกับสูตรเดิม

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 3:43 pm
by snasui
rocketkenji wrote:ช่อง G9ต้องได้ 90 ครับ จาก I6+J6 ผมแยกชีสแล้วนะครับ
ขอบคุณมากครับ
ก่อนจะปรับมาเป็นชีทใหม่แก้สูตรตามคำตอบด้านบนก่อนครับ

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 3:46 pm
by rocketkenji
snasui wrote::lol: เป็นเพราะโจทย์ไม่เคลียร์ครับ ;)

การที่ตรวจสอบว่ามัดงานซ้ำหรือไม่ซ้ำจากไฟล์ที่แนบมาคือ O18 เป็นต้นไป โดยเป็นการตรวจสอบว่าใน F18 มีการคีย์เลขเดียวกันซ้ำหรือไม่ เช่น 1,2,2 เช่นนี้ถือว่าซ้ำ

แต่สิ่งที่คุณ rocketkenji ต้องการคือให้ตรวจสอบว่าจะไม่มีการคีย์มัดงานซ้ำ นั่นหมายถึง F18 มีค่า 3 แล้ว F21 จะใส่ค่า 3 อีกไม่ได้

การทำเช่นนั้นสามารถทำดังนี้ครับ

1. คลุม F18:Fn (n คือค่าใด ๆ ที่ต้องการเช่น 1000)
2. เข้าเมนู Data > Data Validation
3. ที่แถบ Setting ตรง Allow เลือก Custiom > ตรง Formula คีย์
=COUNTIF($F$18:F18,F18)=1
4. คลิก OK แล้วทดสอบการคีย์ข้อมูล > สังเกตการแสดงผล
ลองทำแล้วแต่ไม่ได้ครับ

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 3:46 pm
by rocketkenji
snasui wrote:
rocketkenji wrote:ช่อง G9ต้องได้ 90 ครับ จาก I6+J6 ผมแยกชีสแล้วนะครับ
ขอบคุณมากครับ
ก่อนจะปรับมาเป็นชีทใหม่แก้สูตรตามคำตอบด้านบนก่อนครับ
แก้แล้วครับผม

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 3:56 pm
by snasui
rocketkenji wrote:
snasui wrote:
rocketkenji wrote:ช่อง G9ต้องได้ 90 ครับ จาก I6+J6 ผมแยกชีสแล้วนะครับ
ขอบคุณมากครับ
ก่อนจะปรับมาเป็นชีทใหม่แก้สูตรตามคำตอบด้านบนก่อนครับ
แก้แล้วครับผม
:lol: ผมดูไฟล์ที่ส่งมา ยังไม่แก้ครับ :twisted:

Note: วันนี้เนตผมค่อนข้างช้า

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 3:59 pm
by rocketkenji
คลุมที่ แถว F แล้ว ใส่สูตรลงไปได้เลยใช่ไหมครับ

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 4:14 pm
by snasui
:D ฟอรัมไม่ได้ไว้แชทครับ กรณีไม่มีคำอธิบายเพิ่มเติมหรือข้อสงสัยไม่ควรโพสต์ครับ ผมลบความเห็นที่เขียนว่า งงมากครับ ออกไปแล้ว :twisted:
ผมทำไฟล์มาให้ใหม่ ซึ่งหลังจากแยกชีทแล้ว ดูว่าได้ตามต้องการหรือไม่ครับ พยายามทำตามที่ผมแนะนำก่อน ติดตรงไหนหรือไม่ได้อย่างไรก็ควรอธิบายมาด้วยครับจะได้แก้ตรงประเด็น เนื่องจากวันนี้เนตผมช้ามากก็เลยทำให้ก่อน

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 4:16 pm
by rocketkenji
ขอบคุณมากครับผม

Re: ให้Excell แสดงผลลัพธ์ครับ

Posted: Sun Jun 26, 2011 4:20 pm
by rocketkenji
ถ้าผมเปลี่ยน รหัสสินค้าเป็น 002 แล้ว ใส่ช่วงงานที่ 1 ผมจะใส่มัดงานที่ 1 ไม่ได้ครับ