:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

Conditional Format

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
kmb
Bronze
Bronze
Posts: 305
Joined: Thu Oct 14, 2010 10:03 pm

Conditional Format

#1

Post by kmb »

จากไฟล์ที่แนบมา ผมใส่ Conditional format ว่าถ้าค่าในคอลัมน์ B มากกว่า 10 ให้ cell เป็นสีเหลือง ก็ทำได้ไม่มีปัญหาครับ
แต่ต้องการใส่ขอบเขตไว้สำหรับในกรณีที่มีจำนวนบรรทัดมากขึ้น โดยเปลียนจาก applied to : =$A$1:$B$12 เป็น
=OFFSET($A$1,0,0,COUNTA($A:$A),COUNTA($1:$1)) โดยตรง หรือใช้วิธี define name แล้วก็ใส่สูตร OFFSET ไปที่ NAME แทน แล้วแทนค่า
มันก็ทำงานนะครับ แต่มันก็เปลี่ยนค่าจาก OFFSET หรือ NAME นั้น ๆ กลับไปเป็น =$A$1:$B$12 ทุกครั้ง

ไม่ทราบว่าพอจะมีวิธีทำให้สามารถเปลี่ยนขอบเขตลักษณะนี้ได้ไหมครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31175
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Conditional Format

#2

Post by snasui »

:D ดูแล้วน่าจะเป็นความฉลาดของโปรแกรมครับ แม้ว่าจะให้ชื่อไว้กับช่วงข้อมูลแล้วนำมาใช้ในช่อง Applied to แต่โปรแกรมก็แปลงกลับมาเป็นช่วงข้อมูล แต่การกำหนด Conditional Formatting นั้นสามารถที่จะเพิ่มลดตามตามปริมาณข้อมูลที่เราคีย์เพิ่มได้ ไม่ใช่ว่าโปรแกรมแปลงกลับมาเป็นช่วงข้อมูลแล้วจะจำกัด Conditional Formatting อยู่เพียงแต่ช่วงเซลล์นั้น 8-)
kmb
Bronze
Bronze
Posts: 305
Joined: Thu Oct 14, 2010 10:03 pm

Re: Conditional Format

#3

Post by kmb »

แต่พอผมลองคีย์ข้อมูลเพิ่ม range มันไม่เปลี่ยนตามน่ะครับ
format จะตามมาด้วยในกรณีที่ copy จาก range เดิมเท่านั้น
หรือไม่ก็ต้อง copy คำสั่ง OFFSET หรือ NAME ไปใ่ส่ในช่อง applied to ใหม่ มันถึงจะเปลี่ยนเป็น range ใหม่ให้
User avatar
snasui
Site Admin
Site Admin
Posts: 31175
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Conditional Format

#4

Post by snasui »

:shock: ดูภาพการทดสอบสด ๆ จากไฟล์ที่คุณ kmb แนบมาครับ 8-)
You do not have the required permissions to view the files attached to this post.
kmb
Bronze
Bronze
Posts: 305
Joined: Thu Oct 14, 2010 10:03 pm

Re: Conditional Format

#5

Post by kmb »

ถ้าเป็นการเพิ่มทีละบรรทัดดังในรูป ไม่มีปัญหาครับ
แต่ตอนที่ใช้งาน ผมทำจาก 2 วิธีครับ คือ
1. ใช้ Autofill
2. ใช้ copy --> paste
ซึ่งจะเป็นการใส่ข้อมูลมากกว่า 1 บรรทัดต่อครั้ง
Range มันจะคลุมเพิ่มแค่บรรทัดแรกบรรทัดเดียวเท่านั้นน่ะครับ
ขอโทษทีครับ ทำเป็นภาพให้เห็นอย่างข้างบนไม่เป็น
User avatar
snasui
Site Admin
Site Admin
Posts: 31175
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Conditional Format

#6

Post by snasui »

:shock: การ Copy แล้ววางให้วางแบบ Special ครับคือ

หลังจาก Copy เซลล์ต้นทาง > คลิกขวาที่เซลล์เป้าหมาย > Paste Special > Value

หากวางตรง ๆ จะทำให้ Conditional Formatting ที่กำหนดไว้ถูกทับด้วย Format ของเซลล์ที่วางครับ 8-)
kmb
Bronze
Bronze
Posts: 305
Joined: Thu Oct 14, 2010 10:03 pm

Re: Conditional Format

#7

Post by kmb »

snasui wrote::shock: การ Copy แล้ววางให้วางแบบ Special ครับคือ

หลังจาก Copy เซลล์ต้นทาง > คลิกขวาที่เซลล์เป้าหมาย > Paste Special > Value

หากวางตรง ๆ จะทำให้ Conditional Formatting ที่กำหนดไว้ถูกทับด้วย Format ของเซลล์ที่วางครับ 8-)


มันเป็นแบบนี้น่ะครับ เวลา paste ถึงแม้ว่าจะ paste value ก็ตาม
cf.gif
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31175
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Conditional Format

#8

Post by snasui »

:D ไม่เป็นไรครับ เราไปปรับช่วงข้อมูลเผื่อไว้ก่อนครับ เช่นจากเดิม Applied to: =$A$1:$B$12 ให้เราแก้เป็น =$A$1:$B$1200 ครับ :mrgreen:
kmb
Bronze
Bronze
Posts: 305
Joined: Thu Oct 14, 2010 10:03 pm

Re: Conditional Format

#9

Post by kmb »

snasui wrote::D ไม่เป็นไรครับ เราไปปรับช่วงข้อมูลเผื่อไว้ก่อนครับ เช่นจากเดิม Applied to: =$A$1:$B$12 ให้เราแก้เป็น =$A$1:$B$1200 ครับ :mrgreen:
ขอบคุณครับ จริง ๆ แล้วถ้ามีข้อมูลใน Column A & B ทั้งหมดเพื่อจะตรวจสอบตามเงื่อนไขเหมือนกันหมด
ก็คงใส่เป็น Applied to: =$A:$B ไปเลยน่ะครับ
แต่ที่จะพยายามเขียนสูตรให้เปลี่ยน range ได้เผื่อในกรณีที่ worksheet นั้น มีการแบ่งข้อมูลออกเป็นช่วง ๆ สำหรับกรณีที่ต่างกันน่ะครับ
จะลองหาวิธีประยุกต์ดูครับ
kmb
Bronze
Bronze
Posts: 305
Joined: Thu Oct 14, 2010 10:03 pm

Re: Conditional Format

#10

Post by kmb »

ถ้าในกรณีที่มีหลาย worksheet แล้วต้องการจะ copy conditional format จาก sheet นึง ไปยัง sheet อื่น ๆ สามารถทำได้ไหมครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31175
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Conditional Format

#11

Post by snasui »

:D หากกำหนด Conditional Format ด้วยการดูค่าในเซลล์สามารถ Copy Format ไปได้ครับ แม้ว่าจะข้ามไฟล์กันก็ตาม แต่การจะให้แสดงผลเหมือนกัน สภาพแวดล้อมของข้อมูลที่นำ Format ไปวางก็ต้องมีลักษณะเดียวกันครับ

หากกำหนด Condition Format เป็นสูตรก็คงต้องดูเป็นกรณี ๆ ไปครับ :mrgreen:
kmb
Bronze
Bronze
Posts: 305
Joined: Thu Oct 14, 2010 10:03 pm

Re: Conditional Format

#12

Post by kmb »

ตามตัวอย่างไฟล์ที่แนบมา ถ้าต้องการ copy conditional format จาก sheet 1 ไปยัง sheet 2 มีวิธีการไหมครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31175
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Conditional Format

#13

Post by snasui »

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

1. ที่ Sheet1 คลุม B2:O34 > คลิกขวา > Copy
2. ไปที่ Sheet2 คลิกขวาเซลล์ B2 > Paste Special > Format
kmb
Bronze
Bronze
Posts: 305
Joined: Thu Oct 14, 2010 10:03 pm

Re: Conditional Format

#14

Post by kmb »

ถ้าใช้วิธีเลือกที่ Conditional Formatting > Manage Rules ...
เลือก New Rule ... แล้วเปลี่ยนค่าในสูตร กับช่อง Applied to โดยให้อ้างอิงค่าด้วยการใส่ชื่อ Worksheet นั้น ๆ ได้ไหมครับ
แต่ผมลองแล้ว ทำไม่ได้ ไม่รู้ว่าเป็นเพราะทำไม่ถูกหรือเปล่า
ตอนนี้ถ้าจะทำได้ต้องไปเลือก Worksheet นั้น ๆ ก่อนแล้วค่อยเลือก New Rule ... เพื่อเปลี่ยนค่าในช่อง Applied to ทีหลัง
เหตุผลที่ไม่ใช้วิธี Paste Special > Format เพราะว่าแต่ละ Worksheet มีการ Format อื่น ๆ ซึ่งจะไม่เหมือนกัน เช่นการตีเส้น เป็นเส้นเดี่ยว เส้นคู่ หรือตัวหนังสือเป็นตัวหนาในบางบรรทัด ประมาณนั้นน่ะครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31175
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Conditional Format

#15

Post by snasui »

:D ในการเขียนสูตร Conditional Formatting เราจะอ้างอย่างไรก็ได้ครับ แต่ในช่อง Applies to ถูกบังคับให้อ้าง Sheet ปัจจุบันเท่านั้น ดังนั้น การเขียน Conditional Formatting เพื่อไป Applies to กับชีทอื่นจึงไม่น่าจะทำได้ด้วยวิธีนี้

แต่เราสามารถอ้างอิงเงื่อนไขจากชีทอื่นเพื่อมาใช้กับชีทปัจจุบันได้ครับ ดูตัวอย่างการเขียนสูตรตามไฟล์แนบครับ :mrgreen:
You do not have the required permissions to view the files attached to this post.
kmb
Bronze
Bronze
Posts: 305
Joined: Thu Oct 14, 2010 10:03 pm

Re: Conditional Format

#16

Post by kmb »

ขอบคุณครับ ถ้างั้นในกรณีผม คงต้องทำไปทีละ worksheet
User avatar
snasui
Site Admin
Site Admin
Posts: 31175
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Conditional Format

#17

Post by snasui »

:D โดยลักษณะการทำงานของ Conditional Formatting จะกำหนดให้ทำที่ชีทใครชีทมันครับ ถ้ามีข้อจำกัดว่าไม่สามารถจะ Copy Format ได้ ก็จำเป็นต้องทำทีละชีทครับ :mrgreen:
kmb
Bronze
Bronze
Posts: 305
Joined: Thu Oct 14, 2010 10:03 pm

Re: Conditional Format

#18

Post by kmb »

ไม่ทราบว่าสามารถประยุกต์โดยใช้ define name แทนการใส่สูตรโดยระบุชื่อ worksheet ได้ไหมครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31175
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Conditional Format

#19

Post by snasui »

:D สามารถทำได้ครับ 8-)
Post Reply