: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

เขียนสูตรในเร้งเนม

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
pongpang
Member
Member
Posts: 242
Joined: Fri Jul 05, 2013 9:35 pm

เขียนสูตรในเร้งเนม

#1

Post by pongpang »

ขอทราบว่าการเขียนสูตรในเร้งเนม ครับ โดยให้เลือกแถว(ROW)ที่ว่างครับ ซึ่งไม่จำกัดจำนวนแถว เพราะเแถวที่ว่างอาจจะไม่เท่ากัน ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: เขียนสูตรในเร้งเนม

#2

Post by bank9597 »

pongpang wrote:ขอทราบว่าการเขียนสูตรในเร้งเนม ครับ โดยให้เลือกแถว(ROW)ที่ว่างครับ ซึ่งไม่จำกัดจำนวนแถว เพราะเแถวที่ว่างอาจจะไม่เท่ากัน ครับ
:D ผมคิดว่าไม่สามารถทำได้ครับ เขียนให้หาค่าว่างนั้นสามารถทำได้ แต่จะให้เจาะจงว่าว่างตรงเซลล์ไหนบ้างนั้น ไม่สามารถทำได้ครับ

สูตรที่ใช้ใน RangName เช่น =OFFSET('Sheet1 (1)'!B4,0,0,COUNTA('Sheet1 (1)'!$B:$B)-2) ใช้สำหรับข้อมูลที่เป็น Database ซึ่งจะไม่มีช่องว่างในตารางครับ

ถ้าให้ดี ลองแนบไฟล์ และอธิบายโจทย์มาอีกครั้งครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
pongpang
Member
Member
Posts: 242
Joined: Fri Jul 05, 2013 9:35 pm

Re: เขียนสูตรในเร้งเนม

#3

Post by pongpang »

ขอเรียนดังนี้ครับ
เมื่อเขียนสูตรในเร้งเนมแล้ว เมื่อคลิกที่สูตรของเร้งเนม จะมีเส้นประเลือกเฉพาะแถวที่ว่างครับ
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: เขียนสูตรในเร้งเนม

#4

Post by bank9597 »

:D กรณีที่เซลล์ว่างอยู่ติดกันดังรูปที่แนบมานั้น สามารถเขียนสูตรได้ครับ แต่ในกรณีที่เซลล์ว่างสลับกับเซลล์ที่มีข้อมูลปะปนกันไป ไม่คิดว่าไม่สามารถทำได้ครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
pongpang
Member
Member
Posts: 242
Joined: Fri Jul 05, 2013 9:35 pm

Re: เขียนสูตรในเร้งเนม

#5

Post by pongpang »

เรียน เพิ่มเติม ครับ
เซลอยู่ติดกันและเป็นด้านล่างครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: เขียนสูตรในเร้งเนม

#6

Post by bank9597 »

pongpang wrote:เรียน เพิ่มเติม ครับ
เซลอยู่ติดกันและเป็นด้านล่างครับ
:D รบกวนส่งไฟล์ตัวอย่างมาดูหน่อยครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
pongpang
Member
Member
Posts: 242
Joined: Fri Jul 05, 2013 9:35 pm

Re: เขียนสูตรในเร้งเนม

#7

Post by pongpang »

เรียน คุณ bank9597 ขอบคุณมากครับ เขียนได้แล้วครับ คือ=OFFSET(Sheet1!$A$2,COUNTA(Sheet1!$A$2:$A$20),0,COUNTBLANK(Sheet1!$A$2:$A$20),3)
แต่ผลที่ติดตามมา คือ ถ้าหากลบแถวหรือเซลที่เลือก จะทำให้สูตรในเร้งเนมเปลี่ยนไป ครับ เช่น =OFFSET(Sheet1!$A$2,COUNTA(Sheet1!$A$2:$A$20),0,COUNTBLANK(Sheet1!$A$2:$A$20),3)
ถ้าหากลบ 10 แถวจะเปลี่ยนเป็น =OFFSET(Sheet1!$A$2,COUNTA(Sheet1!$A$2:$A$10),0,COUNTBLANK(Sheet1!$A$2:$A$10),3) ต้องแก้ปัญหานี้อย่างไรครับ ถ้าต้องการให้สูตรของเร้งเนมคงที่
ทดลองในไฟล์ที่แนบครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: เขียนสูตรในเร้งเนม

#8

Post by snasui »

:D เปลี่ยนสูตรเป็นตามด้านล่างครับ

=OFFSET(Sheet1!$A$2,MATCH(9.99999999999999E+307,Sheet1!$A:$A)-1,0,COUNTBLANK(Sheet1!$A$2:$A$16),3) หรือ
=INDEX(Sheet1!$A:$A,MATCH(9.99999999999999E+307,Sheet1!$A:$A)+1):INDEX(Sheet1!$C:$C,MATCH(CHAR(255),Sheet1!$A:$A)-1)
pongpang
Member
Member
Posts: 242
Joined: Fri Jul 05, 2013 9:35 pm

Re: เขียนสูตรในเร้งเนม

#9

Post by pongpang »

ขอบคุณ คุณคนควน ครับ จากสูตรทั้ง 2 สูตร ได้นำไปทดลองแล้ว มีผลดังนี้ครับ
1. =OFFSET(Sheet1!$A$2,MATCH(9.99999999999999E+307,Sheet1!$A:$A)-1,0,COUNTBLANK(Sheet1!$A$2:$A$20),3) เมื่อลบแถวแล้ว ส่วนนี้COUNTBLANK(Sheet1!$A$2:$A$20) ตามข้างล่างครับ
=OFFSET(Sheet1!$A$2,MATCH(9.99999999999999E+307,Sheet1!$A:$A)-1,0,COUNTBLANK(Sheet1!$A$2:$A$10),3)
2. =INDEX(Sheet1!$A:$A,MATCH(9.99999999999999E+307,Sheet1!$A:$A)+1):INDEX(Sheet1!$C:$C,MATCH(CHAR(255),Sheet1!$A:$A)-1) เมื่อสั่งลบด้วย Macro ซึ่งเขียน Code ดังนี้

Code: Select all

 Sub delete_1()

    Application.Goto Reference:="AA"
    Selection.Select
    Selection.Delete
    Sheets("sheet1").Select
     Range("c2").Select
   
End Sub
เมื่อแถวถูกลบ คอลัมน์ทางขวาจะเลื่อนมาแทนที่ทางซ้ายมือครับ ไม่ทราบว่าจะแก้ไขอย่างไรครับ
ขอความกรุณาด้วยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: เขียนสูตรในเร้งเนม

#10

Post by snasui »

:shock: ไม่เข้าใจครับ
  1. AA คืออะไร
  2. สิ่งที่ต้องการลบคือคอลัมน์ หรือบรรทัด และทำไมต้องลบ
  3. ใช้การ Clear Content แทนได้หรือไม่ครับ
pongpang
Member
Member
Posts: 242
Joined: Fri Jul 05, 2013 9:35 pm

Re: เขียนสูตรในเร้งเนม

#11

Post by pongpang »

snasui wrote::shock: ไม่เข้าใจครับ
  1. AA คืออะไร
  2. สิ่งที่ต้องการลบคือคอลัมน์ หรือบรรทัด และทำไมต้องลบ
  3. ใช้การ Clear Content แทนได้หรือไม่ครับ
เรียน คุณ คนควน
ขอบตอบคำถามเป็นข้อ ๆ ดังนี้ ครับ
ข้อ1 AA คือ เร้งเนมที่เขียนสูตร ครับ
ข้อ 2 สิ่งที่ต้องการลบ คือบรรทัด ครับ เพราะต้องการให้จำนวนแถว(บรรทัด)ที่ต้องการพริ้นท์ลดลงและไม่มีบรรทัดว่าง ครับ
ข้อ 3 ใช้การ Clear Content ไม่ได้ครับ เพราะไม่ทำให้แถว(บรรทัด)ลดลง เมื่อลบแล้วทำให้จำนวน แถว(บรรทัด)ลดลง และจะสั่งพรินท์ ต่อไป ครับ

Code: Select all

Sub delete_1()

    Application.Goto Reference:="AA"
    'AA เป็นชื่อเร้งเนม ทำให้เร้งเนม สูตรเปลี่ยนแปลง
    'Application.Goto Reference:="BB"
    'BB เป็นชื่อเร้งเนม ทำให้เซลเลื่อนจากขวาไปทางซ้าย จำนวนแถว(บรรทัด)เท่าเดิม
    Selection.Select
    Selection.Delete
    Sheets("sheet1").Select
     Range("c2").Select
 End Sub
You do not have the required permissions to view the files attached to this post.
Last edited by pongpang on Sun Sep 22, 2013 1:45 pm, edited 1 time in total.
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: เขียนสูตรในเร้งเนม

#12

Post by snasui »

:D การลบบรรทัดว่างไม่จำเป็นต้องเขียน Range Name เนื่องจาก Excel สามารถหาบรรทัดว่างได้โดยไม่ต้องมีตัวช่วยครับ

สำหรับการหาบรรทัดว่างสามารถใช้แป้น F5 เข้ามาช่วยได้โดย
  1. คลิกหัวคอลัมน์ที่ต้องการหาบรรทัดว่าง
  2. กดแป้น F5 > Special > Blanks > OK
  3. คลิกขวาลงในเซลล์ใด ๆ ที่ถูกเลือก > Delete > Entire row > OK
สามารถบันทึก Macro ตามการกระทำนี้เพื่อนำไปใช้ในภายหลังได้ครับ
pongpang
Member
Member
Posts: 242
Joined: Fri Jul 05, 2013 9:35 pm

Re: เขียนสูตรในเร้งเนม

#13

Post by pongpang »

ขอบคุณ คนควน มากครับ ผมทำได้แล้ว มัวคิดมากไปถ้าไม่ได้รับการช่วยเหลือคงจะโง่อยู่อีกนาน ครับ
Post Reply