snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
aof111
Member
Posts: 12 Joined: Mon Oct 10, 2016 7:23 pm
#1
Post
by aof111 » Wed Oct 26, 2016 6:26 pm
1.รบกวนสอบถามการเรียงข้อมูล โดยใช้ ฟังก์ชัน จาก column C ไปยัง column G ครับ
2.โดยค่าที่ย้ายไปไม่มีการเว้นช่องว่าง ครับ
3.แปลงตัวเลข 1,2,...ให้เป็น วันที่ 1 ตุลาคม 2559 เป็นต้น ครับ
ขอความกรุณารบกวนด้วยครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30744 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#2
Post
by snasui » Wed Oct 26, 2016 6:50 pm
กรณีเป็นงานที่ทำครั้งเดียวไม่จำเป็นต้องใช้สูตร สามารถใช้การ Filter หรือ เลือกคอลัมน์ C:D > กดแป้น F5 แล้วเลือก Special > Constants > Copy ไปวางที่คอลัมน์ G
กรณีต้องการใช้สูตรสามารถทำตามด้านล่างครับ
เซลล์ G2 คีย์
=IF(ROWS(G$2:G2)<=MAX($C$2:$C$101),DATE(2010,10,ROWS(G$2:G2)),"")
Enter > Copy ลงด้านล่าง
เซลล์ H2 คีย์
=IF(N(G2),INDEX($D$2:$D$101,MATCH(DAY(G2),$C$2:$C$101,0)),"")
Enter > Copy ลงด้านล่าง
aof111
Member
Posts: 12 Joined: Mon Oct 10, 2016 7:23 pm
#3
Post
by aof111 » Wed Oct 26, 2016 7:56 pm
ขอบคุณ ครับ
aof111
Member
Posts: 12 Joined: Mon Oct 10, 2016 7:23 pm
#4
Post
by aof111 » Wed Oct 26, 2016 8:55 pm
ขอรบกวนอีก ครั้งนะครับ หาก มีคน 2 คน หรือ 3 คน ที่อยู่วันที่เดียวกันต้องเพิ่มสูตรอย่างไรครับ
snasui
Site Admin
Posts: 30744 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#5
Post
by snasui » Wed Oct 26, 2016 9:00 pm
แนบตัวอย่างไฟล์ที่แสดงข้อมูลเช่นน้้นมาด้วยครับ
aof111
Member
Posts: 12 Joined: Mon Oct 10, 2016 7:23 pm
#6
Post
by aof111 » Wed Oct 26, 2016 9:09 pm
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30744 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#7
Post
by snasui » Wed Oct 26, 2016 9:24 pm
ตัวอย่างสูตรครับ
เซลล์ G2 คีย์สูตร
=IF(ROWS(G$2:G2)>COUNT($C$2:$C$56),"",DATE(2010,10,SMALL($C$2:$C$56,ROWS(G$2:G2))))
Enter > Copy ลงด้านล่าง
เซลล์ H2 คีย์สูตร
=IF(N(G2),INDEX($D$2:$D$56,SMALL(IF($C$2:$C$56=DAY(G2),ROW($D$2:$D$56)-ROW($D$2)+1),COUNTIF (G$2:G2,G2))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง อ่าน Note ด้านล่างอย่างละเอียด ครับ
! Note: Ctrl+Shift+Enter เป็นการสร้างสูตร Array โดยสามารถเลือกดำเนินการตามข้อ 1 หรือ 2 ด้านล่าง
กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน จากนั้นกดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วตามด้วย Enter เพื่อสร้างเป็นสูตร Array
หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น { =YourFormulas(...)} ปีกกานี้ไม่สามารถคีย์เข้าไปเอง จะต้องมาด้วยการกดแป้น Ctrl+Shift+Enter เท่านั้น ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง
aof111
Member
Posts: 12 Joined: Mon Oct 10, 2016 7:23 pm
#8
Post
by aof111 » Wed Oct 26, 2016 9:36 pm
ขอบคุณมากๆ ครับ
aof111
Member
Posts: 12 Joined: Mon Oct 10, 2016 7:23 pm
#9
Post
by aof111 » Thu Oct 27, 2016 7:50 pm
ข้อมูล จาก Sheet 6 ส่ง link มายัง sheet NO call คอลัมน์ C แล้วให้ผลรวม ใน คอลัมน์ H แต่ข้อมูลส่งมาไม่ครบ โดยขาดไปตั้งแต่ 29-31 ครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30744 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#10
Post
by snasui » Thu Oct 27, 2016 8:13 pm
ข้อมูลมาไม่ครบเพราะ Link มาไม่ครบครับ
ใน Sheet6 มีข้อมูลตั้งแต่ E:Z แต่เมื่อ Link มาที่ ON call ไม่ได้ Link มาทุกเซลล์ ตัวอย่างเช่น
C13 สูตรคือ =Sheet6!$
F $12
C14 สูตรคือ =Sheet6!$
H $12
จะเห็นว่า =Sheet6!$
G $12 ไม่ถูก Link มาครับ
aof111
Member
Posts: 12 Joined: Mon Oct 10, 2016 7:23 pm
#11
Post
by aof111 » Thu Oct 27, 2016 8:43 pm
C13 สูตรคือ =Sheet6!$F$12
C14 สูตรคือ =Sheet6!$H$12
ไม่มี Sheet6!$G$12 เนื่องจากต้อง ลบวันที่ซำ้กันของข้อมูล จากsheet 6 ให้เหลือเป็นหนึ่งวันต่อหนึ่งคนครับ
มีวิธีไหมครับที่จะให้ค่าจาก sheet 6 มาโชว์ค่าเป็นตัวเลขธรรมดา
เนื่องจาก ค่าตัวเลขที่ลอง คีย์เองเป็น 29 30 31 ผลจะไปโชว์ที่ คอลัมน์ H ได้ครับ
snasui
Site Admin
Posts: 30744 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#12
Post
by snasui » Thu Oct 27, 2016 9:02 pm
ถ้าเช่นนั้นกรุณาอธิบายมาใหม่ให้เข้าใจว่าส่งข้อมูลไม่ครบที่ว่านั้นสังเกตได้จากตรงไหน อย่างไรครับ
ถ้าครบ ข้อมูลนั้นจะต้องมาแสดงด้วยสูตรในเซลล์ใดครับ
aof111
Member
Posts: 12 Joined: Mon Oct 10, 2016 7:23 pm
#13
Post
by aof111 » Thu Oct 27, 2016 9:14 pm
ครับ
1.ใน sheet ON call คอลัมน์ C จะส่งไปเรียงวันที่ คอลัมน์ H จากน้อยไปมาก 1-31 ครับ
2.เมื่อข้อมูลไปเรียงที่ คอลัมน์ H แล้วสังเกตว่า ตัวเลขจะรันไปจาก 1-28 เท่านั้นส่วน 29,30,31 หายไป ครับ
snasui
Site Admin
Posts: 30744 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#14
Post
by snasui » Thu Oct 27, 2016 9:41 pm
ตัวอย่างการแก้ไขสูตรครับ
เซลล์ H2
=IF(ROWS(H$2:H2)>COUNT($C$2:$C$56+0),"",DATE(2016,10,SMALL(IF(ISNUMBER($C$2:$C$56+0),$C$2:$C$56+0),ROWS(H$2:H2))))
Ctrl+Shift+Enter > Copy ลงด้านล่าง
เซลล์ I2 คีย์
=IF(N(H2),INDEX($D$2:$D$56,SMALL(IF(IF(ISNUMBER($C$2:$C$56+0),$C$2:$C$56+0)=DAY(H2),ROW($D$2:$D$56)-ROW($D$2)+1),COUNTIF (H$2:H2,H2))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
ที่แก้เป็นเช่นนี้เพราะข้อมูลในคอลัมน์ C บางตัวที่แม้จะเห็นเป็นตัวเลข แต่ไม่ได้เป็นตัวเลขจริง ๆ ต้องทำการแปลงให้เป็นตัวเลขจริง ๆ เสียก่อน
aof111
Member
Posts: 12 Joined: Mon Oct 10, 2016 7:23 pm
#15
Post
by aof111 » Thu Oct 27, 2016 9:42 pm
ได้แล้วครับ ขอบคุณมากครับ