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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Jong1978
Member
Posts: 8 Joined: Thu Aug 31, 2023 9:56 pm
Excel Ver: 2010 wiht OF 365
#1
Post
by Jong1978 » Sun Sep 03, 2023 3:38 pm
ต้องการ นับจำนวนเดือนจาก Start Date กับ Date ที่เก่าสุด ระหว่าง" End Date หรือ Report Date"
จากข้อมูล ต้องการสูตร นับจำนวนเดือน แบบมีเงื่อนไข ตรวจสอบ ว่าจะใช้ Date ไหนในการคำนวณ ระยะเวลา
ตัวอย่าง จากข้อมูล Comumn A Start Date เป็นระยะเวลาตั้งต้น
โดยก่อนจะนับ ต้องการตรวจสอบเงื่อนไข ระหว่าง" End Date หรือ Report Date"
โดยใช้หลักพิจาณาว่า Date ใดเก่ากว่าให้ใช้ Date นั้น ในการคำนวณ ระยะของปลายทาง
หากเปรียบเทียบแล้วทั้ง 2 Date มีค่า เท่ากัน ให้ยึดการคำนวณจาก End Date ครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
norkaz
Gold
Posts: 1758 Joined: Wed Jan 12, 2011 7:59 pm
Excel Ver: 2013,365
#2
Post
by norkaz » Sun Sep 03, 2023 10:15 pm
...
ลบทุกอย่างที่ คอลัมน์ D และ E ออกไปก่อน
E2
=MAP(B2:B8,C2:C8,LAMBDA(x,y,MIN(x,y)))
D2
=DATEDIF(A2:A8,E2:E8,"M")
**สนับสนุนฟอรั่ม กรุณาคลิกโฆษณาที่หน้าเพจ***
แมวใหญ่ Bigcat9
You do not have the required permissions to view the files attached to this post.
norkaz
Gold
Posts: 1758 Joined: Wed Jan 12, 2011 7:59 pm
Excel Ver: 2013,365
#3
Post
by norkaz » Sun Sep 03, 2023 11:19 pm
..
หรือ
ลบทุกอย่างที่ คอลัมน์ D และ E ออกไปก่อน
D2
=LET(a,A2:A8,b,B2:B8,c,C2:C8,m,MAP(b,c,LAMBDA(a,b,MIN(a,b))),HSTACK(DATEDIF(a,m,"M"),m))
**สนับสนุนฟอรั่ม กรุณาคลิกโฆษณาที่หน้าเพจ***
แมวใหญ่ Bigcat9
Jong1978
Member
Posts: 8 Joined: Thu Aug 31, 2023 9:56 pm
Excel Ver: 2010 wiht OF 365
#4
Post
by Jong1978 » Mon Sep 04, 2023 1:06 pm
ขอบคุณมาก ๆ เลยครับ ขอสอบถามเพิ่มเติม นะครับ
1.ได้นำสูตรมาลองในไฟล์งานจริง แล้วขึ้น SPILL ไปเจอใน Google ให้กด Crtl+Shift+Enter อันนี้ ทำถูกแล้วใช่ไหมครับ
2.จากข้อมูลจริงไปเจอ เงื่อนไข เพิ่มเติม เลยขอทำตัวอย่างไว้ที่ Row 9 หากพบว่า Date ที่เก่ากว่า มีค่าน้อยกว่า Start Date ให้ค่าที่ออกมา เป็น จำนวนเดือน แบบติดลบ ได้ไหมครับ ( ตอนนี้สูตรออกเป็นค่า !NUM )
ขอบคุณครับ click ads สนับสนุน เรียบร้อยครับ
You do not have the required permissions to view the files attached to this post.
Jong1978
Member
Posts: 8 Joined: Thu Aug 31, 2023 9:56 pm
Excel Ver: 2010 wiht OF 365
#5
Post
by Jong1978 » Mon Sep 04, 2023 1:07 pm
สูตรที่แนะนำมา ผมใช้ จากสูตรด้านล่างนี้ นะครับ
ลบทุกอย่างที่ คอลัมน์ D และ E ออกไปก่อน
E2
=MAP(B2:B8,C2:C8,LAMBDA(x,y,MIN(x,y)))
D2
=DATEDIF(A2:A8,E2:E8,"M")
Xcelvba
Silver
Posts: 592 Joined: Thu Feb 03, 2022 9:04 am
Excel Ver: 2019
#6
Post
by Xcelvba » Mon Sep 04, 2023 3:25 pm
การที่สูตรขึ้น #SPILL แสดงว่ามีข้อมูลขวางในช่วงของ Array อยู่ครับ ลบข้อมูลในช่วงออกให้หมดครับ
norkaz
Gold
Posts: 1758 Joined: Wed Jan 12, 2011 7:59 pm
Excel Ver: 2013,365
#7
Post
by norkaz » Mon Sep 04, 2023 3:55 pm
...
Spill คือการแสดงค่าในชุด Array ออกมาให้เห็นด้วยตา เป็นเรื่องปกติของ Excel 365
แต่ถ้าไปเจอคำว่า Spill แปลว่า มีอะไรไปขวางทาง ชุดข้อมูลที่จะ แสดงออกมา ต้องลบข้อมูล ที่เกะกะ นั้นออกไปก่อน จึงมองเห็นค่าที่จะแสดงออกมาครับ
** ส่วนข้อ 2 ค่าที่ได้ ควรติดลบ 11 ไม่ใช่ ลบ12
ลองปรับสูตรไปตามนี้ครับ
D2
=IF(A2:A9<E2:E9,DATEDIF(A2:A9,E2:E9,"M"),-DATEDIF(E2:E9,A2:A9,"M"))
E2
=MAP(B2:B9,C2:C9,LAMBDA(x,y,MIN(x,y)))
**สนับสนุนฟอรั่ม กรุณาคลิกโฆษณาที่หน้าเพจ***
แมวใหญ่ Bigcat9
You do not have the required permissions to view the files attached to this post.
Jong1978
Member
Posts: 8 Joined: Thu Aug 31, 2023 9:56 pm
Excel Ver: 2010 wiht OF 365
#8
Post
by Jong1978 » Mon Sep 04, 2023 5:42 pm
สูตรสามารถใช้งานได้ปกติครับ ขอบคุณครับ