Page 1 of 2

อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Fri Jan 04, 2013 10:35 pm
by ryback
ผมศึกษาเอง และทำ Drop Down List ได้แล้ว แต่มีความต้องการอยากเพิ่มให้ ข้อมูลที่จัดเก็บ ดูได้ง่ายขึ้น ดังนี้
1. เพิ่มสีพื้นเมื่อเลือก Drop Down List ต่างข้อกัน เช่น ทรัพย์สินที่ยังไม่ได้คืน เป็นสีแดง คืนแล้วเป็นสีเขียว ครับ
2. ผมไม่ทราบว่า มีวิธีไหนที่จะสามารถเรียกข้อมูลมาดูเฉพาะร้านค้าที่ยังไม่ได้คืนทรัพย์สิน แล้วสั่งพิมพ์ออกมา ครับ

ขอบคุณล่วงหน้าครับ :cp:

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Fri Jan 04, 2013 10:41 pm
by snasui
:D แนบไฟล์ตัวอย่างมาด้วยครับ แสดงให้เห็นว่าข้อมูลเป็นอย่างไร ต้องการคำตอบเป็นอย่างไร จะได้เข้าใจตรงกันครับ

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Fri Jan 04, 2013 11:52 pm
by ryback
ขอบคุณมากครับ
http://upic.me/i/g1/excel.jpg

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Sat Jan 05, 2013 12:09 am
by snasui
:D ลองตามนี้ครับ
  1. คลุม A2:J16
  2. เข้าเมนู Home > Conditional Formatting > Manage Rules
  3. คลิก New Rule > ตรง Select rule type: เลือก Use formula determine which cells to format
  4. ตรง Formula values where this formula is true: คีย์ =$H2="ยังไม่ได้คืน" > คลิกปุ่ม Format > ที่แถบ Fill ระบายสีแดง > OK
  5. ทำข้อ 3-4 ซ้ำ โดยคีย์สูตรเป็น =$H2="คืนแล้ว" > คลิกปุ่ม Format > ที่แถบ Fill ระบายสเขียว > OK > OK > OK
ryback wrote:2. ผมไม่ทราบว่า มีวิธีไหนที่จะสามารถเรียกข้อมูลมาดูเฉพาะร้านค้าที่ยังไม่ได้คืนทรัพย์สิน แล้วสั่งพิมพ์ออกมา ครับ
ลองทำตัวอย่างมาครับว่าต้องการจะดูข้อมูลในพื้นที่ใด โดยดึงข้อมูลใดมาบ้าง

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Sat Jan 05, 2013 12:48 am
by ryback
โอ้ ทำได้แล้วครับ ไม่ยากอย่างที่คิดแฮะ
ส่วนข้อ 2 ประมาณว่า จะสร้าง Sheet ใหม่ขึ้นมา โดยตารางข้อมูลเหมือนเดิม แต่ให้แสดงแต่เฉพาะร้านค้าที่มีปัญหา ติดสีแดง คือ ค้างส่งอย่างใดอย่างหนึ่ง หรือทั้ง 3 อย่างเลยครับ
เพื่อที่ว่าเวลาจะสั่งพิมพ์ก็จะได้สั่งเฉพาะชีทนี้ ไม่ต้องพิมพ์หมดทุกอัน โดยชีทใหม่ไม่จำเป็นต้องมีสีพื้นแล้ว เพราะมีแต่ข้อมูลร้านที่มีปัญหาครับ

ขอบคุณมากๆๆ เลยครับ

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Sat Jan 05, 2013 7:02 am
by snasui
:lol: ให้สร้างชีทขึ้นมาก่อนเพื่อให้เห็นว่าข้อมูลที่ต้องการอยู่ในชีทไหน หน้าตาเป็นอย่างไร แล้วแนบไฟล์นั้นกลับมาอีกครั้งจะได้สะดวกในการตอบแบบอ้างอิงเซลล์อ้างอิงชีทครับ

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Sat Jan 05, 2013 7:42 am
by ryback
อยากทำตามรูปนี้ครับ ขอคำแนะนำด้วย ขอบคุณมากๆๆครับ ^/\^

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Sat Jan 05, 2013 8:17 am
by snasui
:D จากภาพที่แนบมา เซลล์ A3 คีย์

=IFERROR(INDEX(AllData!C$2:C$16,SMALL(IF(AllData!$B$2:$B$16=$G$1,IF(AllData!$H$2:$H$16="ยังไม่ได้คืน",ROW(AllData!$B$2:$B$16)-ROW(AllData!$B$2)+1)),ROWS(A$3:A3))),"")

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

Note: Ctrl+Shift+Enter หมายถึงเมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้คีย์เข้าไปเองไม่ได้ ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Sat Jan 05, 2013 9:44 am
by ryback
ทำตามที่ ท่านบอกแล้วครับ ก็ขึ้นปีกกา แต่ไม่ขึ้นข้อมูลอะไร เป็นช่องว่างๆตามรูปเลยครับ

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Sat Jan 05, 2013 11:18 am
by snasui
:D ตัวอย่างข้อมูล สูตรและผลลัพธ์ตามภาพด้านล่างครับ

การไม่เห็นไฟล์ว่าคีย์อย่างไรทำให้ตอบลำบากครับ :mrgreen:

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Sat Jan 05, 2013 12:21 pm
by ryback
อ่า รบกวนท่านดูจากไฟล์ที่ผมแก้ไขไว้ ตรวจสูตรก็ตรงทุกตัวอักษร เลยไม่ทราบว่าต้องแก้ไขจากตรงไหน

ปล. พวกสูตรนี้จะหาศีกษาได้จากไหนครับ ดูมันลึกล้ำมาก

ขอบคุณมากๆครับ

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Sat Jan 05, 2013 12:29 pm
by snasui
:D คำว่า ยังไม่ได้คืน ในสูตรที่เขียนมา มีวรรค อยู่ข้างหน้า 1 วรรค ให้ลบวรรคทิ้งไปก็จะได้คำตอบครับ

สูตรพวกนี้ในเวบนี้มีจำนวนมากครับ การจะเขียนได้ซับซ้อนจำเป็นจะต้องทราบว่าแต่ละฟังก์ชั่นให้ผลลัพธ์เป็นอย่างไร ศึกษาฟังก์ชั่นต่าง ๆ ได้ที่ http://office.microsoft.com/th-th/excel ... aspx?CTT=1

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Sat Jan 05, 2013 1:41 pm
by ryback
กรำ ตายตอนจบ เส้นผมบังภูเขา จริงๆ 5555+
ในสูตรถ้าผมจะเพิ่ม "เอกสารยังไม่ครบ" และ "ยังไม่เข้าระบบ" จะเพิ่มตรงไหนได้บ้างครับ

ขอบคุณมากๆครับ ^/\^ ขอให้ปีใหม่นี้พบเจอแต่ สิ่งดีๆนะครับผม

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Sat Jan 05, 2013 1:51 pm
by snasui
:lol:
ryback wrote:กรำ ตายตอนจบ เส้นผมบังภูเขา จริงๆ 5555+
อย่าพยายามหลงลืมใช้ภาษาแชทบ่อยครับ อ่านกฎทุกข้อให้เข้าใจอีกครั้งครับ :roll:

หาค่าอื่นก็แค่เปลี่ยนคำอื่นแทน ยังไม่ได้คืน ครับ

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Sat Jan 05, 2013 3:34 pm
by ryback
ขอโทษครับ พอดีแสดงอารมณ์ชัดเจนไปหน่อย :roll:

ในสูตรไม่เปลี่ยนคำครับ แต่อยากจะเพิ่มคำดังกล่าวเพิ่มเข้าไป พอจะทำได้ไหมครับ

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Sat Jan 05, 2013 3:41 pm
by snasui
:D ถ้าจะเพิมค่าการค้นหาเปลี่ยนสูตรเป็นด้านล่างครับ

=IFERROR(INDEX(AllData!C$2:C$16,SMALL(IF(AllData!$B$2:$B$16=$G$1,IF(Isnumber(match(AllData!$H$2:$H$16,{"ยังไม่ได้คืน","เอกสารยังไม่ครบ","ยังไม่เข้าระบบ"},0)),ROW(AllData!$B$2:$B$16)-ROW(AllData!$B$2)+1)),ROWS(A$3:A3))),"")

ต้องการใส่อีกกี่ค่าก็ใส่เข้าไปในวงเล็บปีกกาครับ

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Sat Jan 05, 2013 7:20 pm
by ryback
ลองเปลี่ยนแล้วครับ แต่สูตรก็ยังอ้างอิงที่ H2 จึงทำให้ปัญหาอื่นๆที่เพิ่มไป ไม่แสดงในหน้าสรุปผล ผมเลยลองแก้ไขเองดังนี้

=IFERROR(INDEX(AllData!C$2:C$300,SMALL(IF(AllData!$B$2:$B$300=$H$1,IF(ISNUMBER(MATCH(AllData!$G$2:$I$300,{"ยังไม่ได้คืน","เอกสารยังไม่ครบ","ยังไม่เข้าระบบ"},0)),ROW(AllData!$B$2:$B$300)-ROW(AllData!$B$2)+1)),ROWS(B$3:B7))),"")

ผลที่ได้เป็นไปตามที่ต้องการครับ แต่ว่ามันแสดงผลซ้ำตาม จำนวนปัญญาที่เกิดขึ้น เช่น ถ้าร้านไหนมีปัญหาครบสามข้อ "ยังไม่ได้คืน","เอกสารยังไม่ครบ","ยังไม่เข้าระบบ" ในหน้าสรุปผลก็จะแสดงซ้ำ 3 อัน อยากให้แสดงผลแค่ครั้งเดียวพอต้องทำอย่างไรครับ

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Sat Jan 05, 2013 7:31 pm
by snasui
:lol: สรุปยังต้องดูที่ H1 อยู่อีกหรือไม่ครับ หรือว่าไม่สนใจว่าสายอะไรขอแค่ให้เข้าเงื่อนไขตามที่บอกมาก็ให้นำมาทั้งหมด สำหรับสูตรที่ผมเขียนให้นั้น จะปรับตามด้านล่างไม่ได้ครับ

=IFERROR(INDEX(AllData!C$2:C$300,SMALL(IF(AllData!$B$2:$B$300=$H$1,IF(ISNUMBER(MATCH(AllData!$G$2:$I$300,{"ยังไม่ได้คืน","เอกสารยังไม่ครบ","ยังไม่เข้าระบบ"},0)),ROW(AllData!$B$2:$B$300)-ROW(AllData!$B$2)+1)),ROWS(B$3:B7))),"")

การอ้างว่าเข้าเงื่อนไขหรือไม่เข้าเงื่อนไขพิจารณาที่คอลัมน์ H อย่างเดียว ไม่ใช่ G:I

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Sat Jan 05, 2013 7:37 pm
by snasui
:shock: ผมอ่านดูอีกทีเหมือนต้องการจะใช้เงื่อนไข 3 คอลัมน์ ช่วยอธิบายมาให้ละเอียดว่าต้องการอย่างไร จะได้เข้าใจตรงกัน

Re: อยากทราบวิธีเพิ่มสีพื้นเมื่อเลือกDropDownList ครับ

Posted: Sat Jan 05, 2013 9:02 pm
by ryback
snasui wrote::shock: ผมอ่านดูอีกทีเหมือนต้องการจะใช้เงื่อนไข 3 คอลัมน์ ช่วยอธิบายมาให้ละเอียดว่าต้องการอย่างไร จะได้เข้าใจตรงกัน
ใช่แล้วครับ ผมอยากให้นำผลทั้งสามคอลัมน์ G, H และ I มาแสดงสรุปใน ชีท SumR01 เพื่อที่จะได้ทราบว่ามีปัญหาอะไรบ้างที่ต้องติดตาม แม้ว่าจะติดปัญหาแค่เรื่องเดียวก็ตาม

=IFERROR(INDEX(AllData!C$2:C$16,SMALL(IF(AllData!$B$2:$B$16=$G$1,IF(Isnumber(match(AllData!$H$2:$H$16,{"ยังไม่ได้คืน","เอกสารยังไม่ครบ","ยังไม่เข้าระบบ"},0)),ROW(AllData!$B$2:$B$16)-ROW(AllData!$B$2)+1)),ROWS(A$3:A3))),"")

ตามสูตรเดิม แม้จะเพิ่มข้อมูล(เอกสารยังไม่ครบ และยังไม่ได้เข้า)เข้าไป แต่ว่า ในช่อง H2 จะมีข้อมูลอยู่แค่ 2 อันคือ "ยังไม่ได้คืนกับคืนแล้ว" จึงทำให้เมื่อ เลือกช่อง H2 ให้มีค่าเป็น "คืนแล้ว" แต่ช่องอื่นเป็น "เอกสารยังไม่ครบ และยังไม่ได้เข้าระบบ" ใน SumR01 เลยกลับ ไม่มีข้อมูลอะไรแสดงให้เห็นเลย ทั้งๆที่ ติดปัญหาดังกล่าวอีก 2 ข้อ ทำให้ไม่สามารถติดตามปัญหาที่เหลือได้ในหน้า SumR01 ครับ

สิ่งที่ผมอยากทำก็คือ ในคอลัมน์ G, H และ I หากมีปัญหาเกิดขึ้นเพียงแค่ 1 อย่าง ไม่ว่าจะเป็น "ยังไม่ได้คืน","เอกสารยังไม่ครบ","ยังไม่เข้าระบบ" หรืออย่างใดอย่างหนึ่ง
ให้ไปแสดงในหน้า SumR01 ครับ