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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
ซำเหมา
Member
Posts: 97 Joined: Fri Jun 08, 2012 9:28 am
#1
Post
by ซำเหมา » Thu Feb 19, 2015 11:56 am
ผมพยายาม จะเขียนสูตร หาจำนวน ชม. ในช่วงเวลาภายใน 16:30 เป็น ชม.ใช้งานในเวลา
และชม.ใช้งาน นอกเวลา ตามลำดับ
เจอข้อแรก ก็ทำไม่ได้ ลองเขียนมาดังนี้
=IF(D4>="16:30/24","",E4)
ถ้า ช่องD4มากกว่าหรือเท่ากับ เวลา 16:30 ให้ใส่ช่องว่าง ไม่งั้นให้ใส่เวลาที่ E4 แทน
คือ ต้องการแยก ช่วงเวลา ในเวลาคือ 8.30-16.30 นอกนั้นคือนอกเวลา รวมทั้ง เสาร์อาทิตย์คือนอกเวลา
แต่ยังเขียนไม่ได้เลย ทำแค่ในเวลาก่อน
ช่วยแก้ให้ด้วยครับ
เอาแบบง่ายๆเข้าใจง่ายด้วยนะครับ จากง่ายไปยาก อยากทำเองได้บ้าง
You do not have the required permissions to view the files attached to this post.
cruzz
Member
Posts: 54 Joined: Thu Dec 23, 2010 1:07 pm
#2
Post
by cruzz » Thu Feb 19, 2015 1:30 pm
รูปแบบที่ผมใช้หาเวลา (แบบใช้ส่วนตัวครับ) คือ 19/2/2014 13:00:00 ใส่แบบนี้เข้าไปในเซลล์เดียวเลยครับ
เวลาสั่งให้ + หรือ - ค่าที่ต้องการก็แสดงผลได้ถูกต้องดีครับ เช่น
19/2/2014 13:30:00 - 19/2/2014 13:00:00 = 0:30:00 <= ค่าผลลัพท์แสดงตาม Format Cell ที่เราต้องการครับ
ซำเหมา
Member
Posts: 97 Joined: Fri Jun 08, 2012 9:28 am
#3
Post
by ซำเหมา » Thu Feb 19, 2015 2:32 pm
ขอบคุณครับ เดี๋ยวไปทดสอบก่อนครับ
ซำเหมา
Member
Posts: 97 Joined: Fri Jun 08, 2012 9:28 am
#4
Post
by ซำเหมา » Thu Feb 19, 2015 9:08 pm
ยิ่งเขียนก็ยิ่งงง ทำไมมันไม่เป็น "" ก็หารด้วย 24 ก็แล้ว D4=16:30 ต้องเป็น ช่องว่าง แต่ไม่ยอมเป็น
รอ ผู้รู้มาเฉลยดีกว่า ไม่ไหว
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#5
Post
by snasui » Thu Feb 19, 2015 9:24 pm
ตัวอย่างสูตรที่เซลล์ F4 ครับ
=IF(E4="","",IF(MOD(D4,1)>="16:30"+0,"",E4))
ซำเหมา
Member
Posts: 97 Joined: Fri Jun 08, 2012 9:28 am
#6
Post
by ซำเหมา » Thu Feb 19, 2015 10:32 pm
ขอบคุณครับอาจารย์ เดี๋ยวไปทำความเข้าใจก่อนครับ mod ของใหม่ สำหรับผม
อธิบายได้ไม๊ครับ
ผมลองคิดเอง
ถ้า E4เท่ากับช่องว่างให้ใส่ช่องว่าง ไม่งั้นถ้า MOD ตรงนี้ไม่เข้าใจ มากกว่าหรือเท่ากับ 16:30 ต้องใส่ " "เพราะอะไร ให้ใส่ช่องว่าง หรือไม่งั้นก็ ค่าในช่อง E4
ซำเหมา
Member
Posts: 97 Joined: Fri Jun 08, 2012 9:28 am
#7
Post
by ซำเหมา » Thu Feb 19, 2015 10:44 pm
สูตรใช้งานได้ครับอาจารย์
แต่ยังไม่เข้าใจความหมายสูตร
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#8
Post
by snasui » Thu Feb 19, 2015 10:46 pm
ที่ลองคิดมานั้นถูกต้องแล้วครับ
การครอบด้วย " " เป็น "16:30" นั้น เป็น เพราะสูตรจะไม่รู้จักว่าเป็นเวลาเนื่องจากไปซ้ำกับค่าบรรทัดใน Excel ซึ่งปกติค่าบรรทัดเราจะใช้กับฟังก์ชั่น Row, Rows ยกตัวอย่างเช่น Rows(16:30) หมายถึงจำนวนบรรทัดจากบรรทัดที่ 16 ถึงบรรทัดที่ 30 เป็นต้น
และเมื่อครอบด้วย " " แล้วตัวเลข 16:30 จะกลายเป็น Text จึงบวกด้วย 0 เข้าไปอีกรอบเพื่อให้กลับมาเป็นเวลาครับ
ซำเหมา
Member
Posts: 97 Joined: Fri Jun 08, 2012 9:28 am
#9
Post
by ซำเหมา » Thu Feb 19, 2015 11:10 pm
ความรู้ใหม่สำหรับผมเลยครับ รวมทั้ง การทำเป็น text การทำเป็นเวลา
ตรงนี้แปลว่าอะไรครับ
IF(MOD(D4,1)
ยังไม่เข้าใจ
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#10
Post
by snasui » Thu Feb 19, 2015 11:19 pm
เป็นการหาเศษที่เหลือจากการหาร D4 ด้วย 1 ลงตัวครับ
เซลล์ D4 มีทั้งวันที่และเวลา วันที่จะเป็นจำนวนเต็ม ส่วนเวลาจะอยู่ในรูปเศษทศนิยม
=Mod(D4,1) จึงเป็นการนำเฉพาะเศษทศนิยมซึ่งเป็นเวลามาใช้นั่นเอง
ซำเหมา
Member
Posts: 97 Joined: Fri Jun 08, 2012 9:28 am
#11
Post
by ซำเหมา » Thu Feb 19, 2015 11:54 pm
=IF(E4="","",IF(MOD(D4,1)>="16:30"+0,"",E4))
ถ้า ค่าในช่อง E4เท่ากับ ช่องว่างให้ใส่ช่องว่าง ถ้าค่าเวลา ในช่อง d4 มากกว่าหรือเท่ากับ เวลา 16:30 ให่ใส่ช่องว่าง ไม่เช่นนั้นให้นำค่า ในช่อง E4 มาใส่แทน
ผมเข้าใจแบบนี้ แต่ยังงงกับ MOD
ในช่อง D4 มี วันที่ กับ กับเวลา
10/1/2014 4:30:00 PM
คำสั่ง =MOD(D4,1) แทน เวลา 4:30:00 PM ใช่หรือไม่ครับ
ที่เราต้องทำแบบนี้เพราะ มันมีวันที่และเวลา คือเป็นคำสั่งแยกเอาเวลามาใช้งานใช่หรือไม่ครับ
แล้วในช่องนั้นไม่มีวันที่ เราต้องใช้คำสั่ง MOD(D4.1) หรือไม่ครับ
แบบนี้ เราลบวันที่ทิั้งได้ไม๊ครับ สมมตินะครับ
แต่มันเยอะคงไม่เอาดีกว่า คือผมถามเพราะสงสัยนะครับ พอดีคำสั่ง MOD(D4,1)
ผมคิดเองคงไม่มีวันได้แน่ เลย อยากหาวิธีที่ง่ายกว่านี้เอง เลยต้องถามมากหน่อยครับ
อย่าเพิ่งรำคาญนะครับ อาจารย์
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#12
Post
by snasui » Fri Feb 20, 2015 9:06 am
ซำเหมา wrote: แล้วในช่องนั้นไม่มีวันที่ เราต้องใช้คำสั่ง MOD(D4.1) หรือไม่ครับ
ที่เขียนมานั้นเข้าใจถูกต้องแล้วครับ จะมีวันที่หรือไม่มีวันที่ Mod(D4,1) ก็จะได้ค่าเฉพาะเวลาได้เหมือนกัน แต่หากไม่มีวันที่ เราไม่จำเป็นต้องใช้ Mod
การเขียนสูตรควรใช้เฉพาะเมื่อจำเป็นเท่านั้น เพราะทุกสูตรจะเกิดการคำนวณเป็นการสร้างภาระให้กับไฟล์ แม้เป็นสูตรง่าย ๆ แต่หากใช้จำนวณมากก็จะเกิดการคำนวณนานได้เช่นกันครับ
ซำเหมา
Member
Posts: 97 Joined: Fri Jun 08, 2012 9:28 am
#13
Post
by ซำเหมา » Fri Feb 20, 2015 12:44 pm
เข้าใจแล้วครับ ขอบพระคุณมากครับอาจารย์ ผมรู้สึกว่า เวลาใช้สูตรมันสนุกดีครับ แม้จะง่ายๆแต่สำหรับผม มันค่อนข้างยาก เหมือนได้ของเล่นใหม่
ถ้าเราใช้สูตร แล้ว copy แล้ว past แบบให้สูตรหายแล้วค่ายังคงอยู่ แบบนี้ ภาระของไฟล์จะยังคงอยู่หรือไม่ครับ
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#14
Post
by snasui » Fri Feb 20, 2015 2:53 pm
ซำเหมา wrote: ถ้าเราใช้สูตร แล้ว copy แล้ว past แบบให้สูตรหายแล้วค่ายังคงอยู่ แบบนี้ ภาระของไฟล์จะยังคงอยู่หรือไม่ครับ
เมื่อไม่เป็นสูตรก็จะไม่เกิดภาระการคำนวณสำหรับส่วนนั้นครับ
ซำเหมา
Member
Posts: 97 Joined: Fri Jun 08, 2012 9:28 am
#15
Post
by ซำเหมา » Fri Feb 20, 2015 3:57 pm
รับทราบครับ สูตรที่อาจารย์แนะนำ ทำให้ผมทำงานได้สบายขึ้นมากเลยครับ ไม่ต้องนั่งลบ นั่งกรอก นั่วบวกลบ ตาแทบแตก พิมพ์งานก็ไม่เก่ง ตอนนี้ พิมพ์น้อยลงมาก
ขอให้อาจารย์มีความสุข ตลอดไปนะครับ เดี๋ยวผมติดอะไรจะขอคำแนะนำอีก ตอนนี้ก็เตาะแตะไปก่อน ดีกว่าเดิมเยอะมากๆ