Page 1 of 2
คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Fri Mar 13, 2015 3:56 am
by kchn_deaw
เรียน เพื่อนสมาชิก
ขอความช่วยเหลือค่ะ เนื่องจากว่า มีชุดข้อมูลอยู่ชุดหนึ่ง เป็นรูปแบบตัวเลขที่มีหลัก หรือ Digit ไม่เท่ากัน ต้องการทำให้เท่ากัน เพื่อใช้ข้อมูลในบางตำแหน่งไปลิงค์กับข้อมูลอื่นต่อไป ดังนี้ค่ะ
ชุดข้อมูลที่ได้มาจากการผลิตสินค้าใน 1 กะ มีการระบุ
Codeผลผลิต/เบอร์กล่อง/ปี/เดือน/วัน/ชม./นาที/วินาที ออกมาเป็นชุดตัวเลข ดังนี้
212020152295500
214120152914513
212320152652041
21372015212133900
1728201532185440
185201532183715
1827201532191730
ซึ่ง ถ้าอ่านจากชุดตัวเลขดังกล่าวก็จะพอเดาได้ว่า ตัวเลขส่วนหน้าก่อนที่จะเป็น 2015 คือชุดข้อมูล Codeผลผลิต และ เบอร์กล่อง
ถัดจากนั้นก็จะเป็น ปี/เดือน/วัน (เพราะมันเท่ากับ 2015 หมด เลยจับได้ว่าอย.ู่ตำแหน่งไหน) ปัญหาของช่วงนี้คือ บางเดือน มี 1 หลัก บางเดือนมี 2 หลัก ตัวเลขจึงไม่เท่ากัน และ วันที่ บางวันมี 1 หลัก บางวัน มี 2หลัก ตัวเลขจึงไม่เท่ากัน
ถัดจาก ปี/เดือน/วัน ก็จะเป็นเวลาโดยออกมาเป็นตัวเลขติดๆกันที่แสดงถึง ชม./นาที/วินาที *****อันนี้ยิ่งหลักไม่เท่ากัน ใหญ่เลย****
หากต้องการแบ่งชุดตัวเลขนี้ ให้อยู่ในรูปแบบ
ชุดข้อมูลต้นฉบับ 21332015212142000
แบ่งได้ดังนี้ 21|33|2015|2|12|14|20|00
ต้องการผลลัพธ์ 20 Digit เสมอ XX|XXXX|YYYY|mm|dd|hh|mm|ss
ผลลัพธ์จึงออกมาเป็น 21003320150212142000
โดยในขณะนี้ ทำได้เพียงการทำให้ได้ 20 Digit จากการเติม 0 เข้าไปข้างหน้า ด้วยสูร len
เช่น ที่ O4777 มีข้อมูล 21332015212142000
=IF(LEN($O4777)=11,"0000000"&O4777,IF(LEN($O4777)=12,"000000"&O4777,IF(LEN($O4777)=13,"00000"&O4777,IF(LEN($O4777)=14,"0000"&O4777,IF(LEN($O4777)=15,"000"&O4777,IF(LEN($O4777)=16,"00"&O4777,IF(LEN($O4777)=17,"0"&$O4777,IF(LEN($O4777)=18,$O4777))))))))
ก็จะได้ผลลัพธ์ = 021332015212142000 :ซึ่งยังไม่ใช่ข้อมูลที่ถูกต้อง
จึงอยากรบกวนขอคำแนะนำการใช้สูตรเพื่อให้ได้ผลลัพธ์ ที่ต้องการหน่อยค่ะ
ขอบคุณค่ะ
test.jpg
ปล.พยายามแนบไฟล์อยู่ แต่มันฟ้องว่าไฟล์ใหญ่ไป ทั้งที่มีข้อมูลแค่ 721k เองน้า เลยอธิบายเอา
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Fri Mar 13, 2015 9:34 am
by DhitiBank
ขนาดไฟล์ที่แนบไม่เกิน 300 kb ครับ
ข้อสงสัยนะครับ
1. ตัวเลขชุดด้านหน้าก่อนถึงปี ค.ศ. หากมี 4 หลักก็ไม่มีปัญหา แต่ถ้ามี 3 หลัก เช่น 1822015 จะต้องใส่ 0 อย่างไรครับ?
2. ตัวเลขชุดหน้าจนถึงปี ค.ศ. จะมีโอกาสเป็น 20152015 บ้างไหมครับ?
3. ตัวเลข 4 ตัวท้ายในข้อมูลดิบ เป็น mmss เสมอหรือเปล่าครับ หรือว่าถ้านาทีอยู่ในช่วง 1-9 ก็จะแสดงหลักเดียวเป็น mss เพราะเท่าที่ดูหลักวินาทีจะแสดงสองหลักตลอด
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Fri Mar 13, 2015 10:23 am
by menem
ข้อมูลตัวนี้ มีอะไรผิดพลาดไหมครับ ?
212020152295500
เพราะตัดแล้ว วันที่ 20150229 ไม่มีในของจริง (มันจะต้องเป็น 20150301)
ผลการตัดที่ผมได้นะครับ (ยังไม่แยก code ผลผลิต/เบอร์กล่อง)
21202015029055000
21412015029014513
21232015026052041
21372015022133900
17282015032185440
01852015032183715
18272015032191730
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Fri Mar 13, 2015 1:24 pm
by menem
ขอโทษด้วยครับ ลงค่าผลลัพธ์ผิด
212020150229055000
214120150209014513
212320150206052041
213720150212133900
172820150302185440
018520150302183715
182720150302191730
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Fri Mar 13, 2015 6:42 pm
by DhitiBank
มีข้อสงสัยเพิ่มเติมครับ
จากตัวอย่างรูปที่คุณให้มา (เล็กและเบลอมาก
) มีตัวอย่างรหัสคือ
1:: 132520152101959
00 --> 130025201502101959
00
2:: 13720152101839
50 --> 130007201502101839
50
3:: 72220152191948
20 --> 070022201502191948
20
4:: 13252015210113
00 --> 13002520150210113
000
5:: 712015217115
45 --> 07000120150217115
450
(ที่จริงมี 7 ตัวอย่าง แต่รูปแบบซ้ำกันแล้ว เลยยกมาแค่นี้) เกิดข้อสงสัยครับเพราะรู้สึกว่าการแปลงรหัสที่ 4-5 ไม่สอดคล้องกับรหัส 1-3 เพราะสังเกตว่า "วินาที" ในรหัสที่ 1-3 แม้จะลงท้ายด้วย 0 ก็ยัง
แสดงให้ครบถ้วนโดยไม่ตัดทิ้ง จาก 3 รหัสนี้สรุปได้ว่า 2 ตำแหน่งที่อยู่ทางขวาสุดต้องเป็น "วินาที" แน่นอน แต่พอมาถึงรหัสที่ 4-5 ตำแหน่ง 2 ตัวท้ายที่น่าจะเป็นวินาทีกลับไม่ใช่
(ตามความรู้สึก รหัส 4 น่าจะเป็น
13|0025|2015|02|10|01|13|00 หรือ
13|0025|2015|02|10|11|03|00
รหัส 5 น่าจะเป็น
07|0001|2015|02|17|01|15|45 หรือ
07|0001|2015|02|17|11|05|45)
จึงอยากถามเพิ่มเติมว่า
1. หากเลข 4 ตัวท้าย ไม่ใช่ mmss ตายตัวแล้ว จะมีวิธีตัดสินใจอย่างไรว่าหลักไหนเป็นนาที วินาที
2. นอกจากปี ที่มีจำนวน 4 หลักตายตัว มีตำแหน่งไหนอีกไหมที่มีจำนวนหลักเท่าเดิมเสมอ (ผมเดาว่าไม่มี ถ้า 4 ตัวท้ายไม่ใช่ mmss ถ้าหากเป็นแบบนี้ผมว่ายากมากเลยนะครับ ที่จะเขียนสูตรให้ครอบคลุมทุกกรณี แต่อาจารย์หรือเพื่อนๆ ท่านอื่นอาจมีวิธีครับ)
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Fri Mar 13, 2015 10:39 pm
by kchn_deaw
ตอบคุณ DhitiBank
1. ตัวเลขชุดด้านหน้าก่อนถึงปี ค.ศ. หากมี 4 หลักก็ไม่มีปัญหา แต่ถ้ามี 3 หลัก เช่น 1822015 จะต้องใส่ 0 อย่างไรครับ?
ตอบ: ต้องการเติม 0 ให้ครบ 4 หลัก ถูกต้องค่ะ ดังนั้นหากเป็น 1822015 ก็จะเป็น 01822015 ค่ะ
2. ตัวเลขชุดหน้าจนถึงปี ค.ศ. จะมีโอกาสเป็น 20152015 บ้างไหมครับ?
ตอบ: มีค่ะ นั่นคือที่กลัว!! เมื่อ Running number รันถึง 2015 ก็จะซ้ำกับ 2015 ที่เป็น พ.ศ. แต่ก็กะว่า จะเช็ค Condition ไว้ ว่าถ้ามี 20152015 ติดกันแบบนี้เมื่อไหร่ จะให้ Warnning
3. ตัวเลข 4 ตัวท้ายในข้อมูลดิบ เป็น mmss เสมอหรือเปล่าครับ หรือว่าถ้านาทีอยู่ในช่วง 1-9 ก็จะแสดงหลักเดียวเป็น mss เพราะเท่าที่ดูหลักวินาทีจะแสดงสองหลักตลอด
ตอบ: ไม่เสมอค่ะ แต่ผลลัพธ์ที่ต้องการต้องการให้เป็น mmss เสมอ ซึ่งตรงนี้รู้สึกเหมือนกันว่ายากมากในการกำหนดเงื่อนไข เพราะต้องคอยดูว่า mm ต้องเป็นตัวเลข 0-60 เช่นเดียวกับss ก็ 0-60 ถ้าชุดตัวเลขในข้อมูลดิบออกมาเป็น 58 ก็ไม่ทราบจะตัดสินใจอย่างไร ว่าจะให้เป็น นาทีที่ 5 วินาทีที่ 8 หรือ นาทีที่ 58 วินาทีที่ 00
จึงตัดสินใจไม่สนใจค่าวินาทีเพราะมีผลน้อยสุดและไม่ทำให้ข้อมูลบิดเบือนมากนัก ดังนั้นถ้า เลขไม่พอตัดสินใจ ก็จะปัดให้เป็นชุดของนาทีไปเลย ตราบใดที่มันไม่เกิน 0-60
**ขอโทษนะ ไม่ทราบจะอธิบายอย่างไรให้เข้าใจง่ายกว่านี้***
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Fri Mar 13, 2015 10:49 pm
by kchn_deaw
ตอบ คุณ menem
ข้อมูลตัวนี้ มีอะไรผิดพลาดไหมครับ ?
212020152295500
เพราะตัดแล้ว วันที่ 20150229 ไม่มีในของจริง (มันจะต้องเป็น 20150301)
ตอบ: จากชุดตัวเลข 212020152295500
น่าจะได้เป็น 21|0020|2015|02|02|09|55|00
เพราะ เดือน 2 น่าจะเป็นวันที่ 2 มากว่าวันที่ 29 เพราะเดือน 2 ปีนี้ มี 28วัน แต่เราตัดสินใจจากเลขถัดไปมากกว่าตรงที่ถ้าเป็นที่ 29 เลขถัดไปก็จะเป็น 5500 ซึ่งมันไม่น่ามีชั่วโมงที่ 5 นาทีที่ 5 วินาที ที่ 00
อ้อ อีกอย่างหนึ่งค่ะ ณ วันที่ได้ชุดข้อมูล จะเป็นวันที่จะไม่มีทางเป็นวันที่ที่ยังมาไม่ถึง คือเงื่อนไขที่ใช้พิสูจน์ความจริง เช่นสมมุติ ถึงแม้ปีนี้เดือน ก.พ.จะมี 29 วัน แต่สมมุติ ณ วันที่ทำ มันเป็นวันที่ 5/2/2015 ตัวเลขชุดนี้ก็จะไม่เป็น 20150229 แน่นอน แสดงว่า เลข 9 ต้องเป็นข้อมูลของ hhmmss แทน.....เป็นต้น
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Fri Mar 13, 2015 11:12 pm
by kchn_deaw
ตอบคุณ DhitiBank จากข้อที่สงสัยเรื่อง 4 ตัวท้าย
1. หากเลข 4 ตัวท้าย ไม่ใช่ mmss ตายตัวแล้ว จะมีวิธีตัดสินใจอย่างไรว่าหลักไหนเป็นนาที วินาที
ตอบจริงๆนะ ไม่ทราบจริงๆ ค่ะ เดาเอา จากความน่าจะเป็น ขอเพียง ชั่วโมง อยู่ในเลข 0-12 เลขนาทีคือ 0-60 ส่วนที่เหลือวินาที ไม่ค่อยเป็นผล เราตัวสินใจเติม 0 ข้างหลังให้ครบหลัก แทนที่จะเติม 0 ที่ชั่วโมง หรือ นาที
2. นอกจากปี ที่มีจำนวน 4 หลักตายตัว มีตำแหน่งไหนอีกไหมที่มีจำนวนหลักเท่าเดิมเสมอ (ผมเดาว่าไม่มี ถ้า 4 ตัวท้ายไม่ใช่ mmss ถ้าหากเป็นแบบนี้ผมว่ายากมากเลยนะครับ ที่จะเขียนสูตรให้ครอบคลุมทุกกรณี แต่อาจารย์หรือเพื่อนๆ ท่านอื่นอาจมีวิธีครับ)
ตอบค่ะ ไม่มีค่ะ เท่าที่ดูแล้ว ทุกตัวทุกตำแหน่งสามารถมี 0 ข้างหน้าได้หมดเลย
เช่น ตำแหน่งที่ 1,2 แสดงcode ผลผลิต สามารถเป็นได้ ตั้งแต่ 01-48 เท่านั้น
ตำแหน่งที่ 3-6 แสดงเบอร์กล่อง สามารถเป็นได้ ตั้งแต่ 0001-9999 เท่านั้น
ตำแหน่งที่ 7-10 แสดงปีที่ผลิต ดังนั้น ปีปัจจุบันจึงเป็นไปได้เพียว 2015 เท่านั้น ถ้าปีหน้าก็ 2016
ตำแหน่งที่ 11,12 แสดงเดือนที่ผลิต สามารถเป็นได้ ตั้งแต่ 01-12 เท่านั้น แต่วันที่ได้ชุดข้อมูลมา จะต้องไม่เกินกว่า วันที่ปัจจุบัน เช่น ณ วันที่ 3/2/2015 ได้เลข 2015229550 ก็น่าจะเป็นเดือน 02 วันที่ 02 เป็นต้น
ตำแหน่งที่ 13,14 แสดงวันที่ผลิต สามารถเป็นได้ ตั้งแต่ 01-30 หรือ 01-31 หรือ 01-28 หรือ 01-29 ขึ้นอยู่กับเลขชุดก่อนหน้าว่าเป็นเดือนอะไร
ตำแหน่งที่ 15-16 แสดงชั่วโมงที่ผลิต สามารถเป็นได้ ตั้งแต่ 01-24 เท่านั้น
ตำแหน่งที่ 17-18 แสดงนาทีที่ผลิต สามารถเป็นได้ ตั้งแต่ 00-60 เท่านั้น
ตำแหน่งที่ 19-20 แสดงวินาทีที่ผลิต สามารถเป็นได้ ตั้งแต่ 00-60 เท่านั้น ***แต่จะตัดสินใจจากเลขของนาทีก่อนเสมอ ถ้าชุดตัวเลขข้อมูลดิบที่ได้มาหมดแล้ว ก็จะเติมเป็น 00 เพื่อให้ครบหลัก เท่านั้น****
ปัญหาที่เกิดจากชุดตัวเลขที่ได้มานี้ คือ เครื่องจักรจะแสดงชุดตัวเลขที่ทำการผลิตเฉาะค่าตัวเลข 1-9 ข้อมูลที่ต้องเป็น 0ข้างหน้า เครื่องจะไม่แสดง ทำให้ต้องมาหาวิธีแยกค่ะ
ยากอยู่ค่ะ เลยมาถามเพื่อนในที่นี้ นึกว่าเล่นเกมส์แล้วกันเนอะ เกมส์ชุดตัวเลข อิอิ.....
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Fri Mar 13, 2015 11:20 pm
by menem
ลองดูนะครับ (อยากให้ลองป้อนตัวเลขเล่น ๆ ดูด้วย)
อีกอย่างคือ มันเป็นเรื่องที่ค่อนข้างยากในการแปลงค่าลักษณะนี้กลับครับ
เพราะต้อง "เดา" ค่อนข้างมาก
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Fri Mar 13, 2015 11:43 pm
by kchn_deaw
ผมนี่ รีบไปแกะสูตร เลยครับ ถึงแม้จะใกล้เคียง แต่ก็ช่วยได้มากอยู่ค่ะ จะลองไปปรับบางตัวดู เพื่อเป็นเงื่อนไขตัดสินใจเพิ่ม ขอบคุณมากค่ะขอบคุณ
ปล. ท่านอื่น แนะนำเพิ่มเติมได้นะคะ ปล. อาจารย์ยังไม่อยู่ สงสัยตรวจงานสร้างบ้านอยู่ .....รีบมาตอบเร้วววว.....
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Fri Mar 13, 2015 11:53 pm
by snasui
kchn_deaw wrote:รีบมาตอบเร้วววว
สำหรับการถามตอบในฟอรัม ขอให้คำนึงถึงกฎทุกข้อด้านบนเสมอไป ระมัดระวังด้วยครับ
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Fri Mar 13, 2015 11:56 pm
by kchn_deaw
ขอโทษค่ะ จะระวังค่ะ
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Sat Mar 14, 2015 2:11 am
by DhitiBank
อีกแบบหนึ่ง ลองดูตามไฟล์แนบครับ (ใช้คอลัมน์ช่วยเยอะ เขียนสูตรลงในนี้ไม่สะดวก)
หากทำเป็นประจำวัน สูตรที่ใช้จะง่ายกว่านี้ครับ
ที่จริง หากถามผู้จำหน่ายเครื่องดังกล่าวนี้น่าจะทราบรูปแบบรหัสที่แน่นอนนะครับ หรือบางทีอาจจะตั้งใหม่เป็นรูปแบบที่ต้องการได้ (ความคิดส่วนตัวนะครับ เคยทำงานโรงงาน พวกเครื่องรันรหัสรอบการผลิตมักจะตั้งตามความต้องการของผู้ใช้งานได้)
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Sat Mar 14, 2015 8:20 am
by snasui
อีกตัวอย่าง สมมุติข้อมูลเริ่มที่ A2 ครับ
- B2 คีย์สูตรเพื่อหา วัน เดือน ปี
=TEXT(LOOKUP(9.99999999999999E+307,--TEXT(MID(A2,FIND(2015,A2),{6,7,7,8}),{"0000\/0\/0","0000\/0\/00","0000\/00\/0","0000\/00\/00"})),"yyyymd")
Enter > Copy ลงด้านล่าง
- C2 คีย์สูตรเพื่อจัด Format รายการใหม่
=REPLACE(IF(LEFT(A2)+0>=5,0,"")&LEFT(A2,FIND(2015,A2,3)-1),3,0,REPT(0,6-LEN(IF(LEFT(A2)+0>=5,0,"")&LEFT(A2,FIND(2015,A2,3)-1))))&TEXT(LOOKUP(9.99999999999999E+307,--TEXT(MID(B2,1,{6,7,7,8}),{"0000\/0\/0","0000\/0\/00","0000\/00\/0","0000\/00\/00"})),"yyyymmdd")&TEXT(MID(A2,FIND(B2,A2)+LEN(B2),6),"000000")
Enter > Copy ลงด้านล่าง
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Sat Mar 14, 2015 9:10 am
by DhitiBank
จดๆๆๆๆ
อาจารย์ครับ การจัดรูปแบบของ TEXT แบบนี้
TEXT(MID(B7,1,{6,7,7,8}),{
"0000\/0\/0","0000\/0\/00","0000\/00\/0","0000\/00\/00"})
หมายถึงอะไรเหรอครับ สำหรับวันที่เท่านั้นหรือเปล่าครับ ทำไมต้องมี "\/"
ขอบคุณครับ
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Sat Mar 14, 2015 9:16 am
by snasui
เป็นการจัดรูปแบบตัวเลขที่มองเห็นว่าเป็นวันที่ให้แสดงออกมาเป็นวันที่ได้ครับ
สำหรับเรื่องหมาย \ จะเป็นการกำหนดว่าให้ทำการแทรกเครื่องหมายที่อยู่ด้านหลังเครื่องหมายนี้เอาไว้ใน Format ด้วย
หากเขียนเป็น \0 แสดงว่าต้องการแทรก 0 เข้าไปใน Format หรือหากเขียนเป็น \/ ตามตัวอย่างด้านบน จะเป็นการแทรกเครื่องหมาย / เข้าไปใน Format ครับ
การจัด Format มีเรื่องที่ต้องเรียนรู้จำนวนมากและไม่จำเป็นต้องเกียวกับวันที่เท่านั้น ต้องค่อย ๆ ศึกษาไปครับ ลองศึกษาจาก Link นี้เพิ่มเติมครับ
Number Format
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Sat Mar 14, 2015 9:37 am
by DhitiBank
เป็นแบบนี้นี่เอง
ขอบคุณอาจารย์มากครับ
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Sun Mar 15, 2015 12:07 am
by kchn_deaw
snasui wrote:ลองศึกษาจาก Link นี้เพิ่มเติมครับ
Number Format
ตามไปศึกษาดู ยากมาก ทำความเข้าใจอยู่นาน กลับมานั่ง แกะความหมายสูตรของแต่ละท่านที่ช่วยแนะนำมา พยายามเอา ของอาจารย์ มาผสมกับของ DhitiBank เนื่องจากท่าน DhitiBank เช็ค today() มาด้วย
กำลังแก้ไขชุดตัวเลขตัวอย่าง จากสูตรอาจารย์ ถ้าข้อมูล = 71520153182221 ผลลัพธ์อาจารย์ = 07001520150318002221 ซึ่งผลลัพธ์ที่น่าจะเป็นคือ 07001520150301082221 เนื่องจากขณะนี้ยังไม่ถึงวันที่ 18/3/2015 จึงน่าจะเป็น 1/3/2015 มากกว่า
ในขณะทดสอบ ปรับสูตร คุณ DhitiBank และ คุณ menem พบว่า วันที่หายไปเลย กลายเป็น 71520150300182200 วันที่เป็น 00 เนื่องจากสูตรนี้นับจากหลังมารวมกับหน้าแล้วถ้า Digit ครบก็เดาว่าเป็น hhmmss ไป พอตัวเลขใช้หมดแล้ววันที่เลยหายไป
ที่พิมพ์แจ้งนี้ คือรายงานผลให้ทราบว่า ได้เอาไปต่อยอด คิดต่อแล้วสำหรับของทุกๆท่าน ขอบคุณมาก สนุกมาก ทั้งที่ยังไม่ถูกต้องซะทั้งหมด แต่ก็สนุกดีที่ได้คิดต่อ ได้แกะสูตร ได้ลองแยกตัวเลข ได้อ่านความรู้ใหม่เกี่ยวกับ Number format ด้วย
ท้ายที่สุดนี้ก็เข้าใจนะคะว่า แก้ที่เครื่องจักรเลยซะก็หมดเรื่อง แต่เนื่องจากแจ้งเรื่องไปแล้วเงียบมากเพราะต้องติดต่ออีกหลายทอด สุดท้าย เราก็ต้องช่วยตัวเองไปก่อน เช่นนี้แล
ฝากไฟล์ที่เอาไปทำไว้ให้ดู เผื่อท่านใดอยากสนุกต่อ เหมือน เจ้าของกระทู้
kchn - Copy.xlsx
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Sun Mar 15, 2015 12:29 am
by snasui
เซลล์ Q2 ปรับสูตรเป็นด้านล่างครับ
=TEXT(MIN(TODAY(),IF(ISNUMBER(TEXT(MID($G$10,FIND(2015,$G$10),{6,7,7,8}),{"0000\/0\/0","0000\/0\/00","0000\/00\/0","0000\/00\/00"})+0),TEXT(MID($G$10,FIND(2015,$G$10),{6,7,7,8}),{"0000\/0\/0","0000\/0\/00","0000\/00\/0","0000\/00\/00"})+0)),"yyyymd")
Enter
Re: คำแนะนำการใช้สูตรที่ช่วยให้จำนวน Digit ของชุดข้อมูลอยู่ในตำแหน่งเดียวกัน
Posted: Sun Mar 15, 2015 2:01 pm
by DhitiBank
มีข้อสงสัยเพิ่มเติมครับ เกี่ยวกับ 6 ตำแหน่งแรกก่อนถึงตำแหน่งที่เป็นปี ค.ศ. คือ
XX XXXX YYYY
สองตำแหน่งแรกมีค่าระหว่าง 01 - 48
สี่ตำแหน่งถัดมามีค่าระหว่าง 0001 - 9999
และจากตัวอย่างข้อมูลดิบ(ยังไม่แปลง) พบว่าตัวเลข 6 หลักนี้ จะแทนด้วยตัวเลข 2 - 6 หลัก แล้วจึงตามด้วยปี ถูกต้องไหมครับ เช่น
722015,
13232015,
7112015 ฯลฯ
หากตัวเลขในข้อมูลดิบมี 2 ตัว หรือ 6 ตัวก็จะไม่มีปัญหา แต่หากมี 3 - 5 ตัว อาจเกิดข้อผิดพลาดได้ถ้า 2 ตัวซ้ายน้อยกว่า 49 เช่น
123 --> 01 0023 หรือ 12 0003
21333 --> 21 0333 หรือ 02 1333
แต่ถ้าข้างหน้าเป็นเลขมากกว่า 4 หรือสองตัวซ้ายเป็น 49 ขึ้นไป จะไม่สับสน เช่น
577 --> 05 0077
4911 --> 04 0911
เลยอยากถามว่าเลข Bill กับเลข Running มีความสัมพันธ์แบบอื่นอีกไหมครับที่จะช่วยตัดข้อผิดพลาดด้านบนทิ้งไปได้ เช่น เลข bill เปลี่ยนไปเมื่อเลข running ถึงเท่านี้ หรืออื่นๆ เพราะคิดว่าเลขชุดนี้คงเอาไว้ใช้ทำ mock recall ด้วย กรณีต้องสอบกลับเพราะสินค้ามีปัญหา หากทราบเกณฑ์ที่ละเอียดขึ้น ก็จะช่วยให้แปลงรหัสได้สมบูรณ์มากขึ้นครับ เพราะอาจารย์ก็จัดการเรื่องสันที่ให้แล้ว