Page 1 of 2

การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Tue Dec 25, 2012 2:26 pm
by tstc79tt
คือผม มี ชื่อไฟล์ประมาณนี้ครับ

nspluginwrapper-1.4.4-1.el6_3.x86_64.rpm

nspluginwrapper 1.4.4-1 el6_3 x86_64

ผมได้ทดลองแล้วแต่ก็ทำได้แค่ ตัดชื่อออกมาอันเดี่ยวเท่านั้นเองครับ

ในไฟล์มีชื่อให้ทดลองยุครับ

nspluginwrapper-1.4.4-1.el6_3.x86_64
kbd-1.15-11.el6.noarch
boost-regex-1.41.0-11.el16_1.2.x86_64
nspluginwrapper-1.3.0-14.el6_3.x86_64
kernel-debuginfo-common-2.6.18-308.13.1.el5.x86_64

มันจะต่างๆกันในเรื่องของ จำนวนตัวอักษร และ แพทเทิรน ใน ตัวเลขทษนิยมตรงกลาง เลยทำให้ยากมากสำหรับผม
ขอคำแนะนำด้วยครับ

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Tue Dec 25, 2012 2:55 pm
by snasui
:D ลองตามนี้ครับ
  1. เซลล์ G5 คีย์สูตร
    =IF(ISNUMBER(FIND(".x86",$C5)),MID($C5,FIND(".x86",$C5)+1,255),"")
    Enter > Copy ลงด้านล่าง
  2. เซลล์ F5 คีย์สูตร
    =SUBSTITUTE(SUBSTITUTE(MID($C5,FIND(".el",$C5),4),G5,""),".","")
    Enter > Copy ลงด้านล่าง
  3. เซลล์ E5 คีย์สูตร
    =MID($C5,MATCH(TRUE,ISNUMBER(MID($C5,ROW(INDIRECT("1:"&LEN($C5))),1)+0),0),FIND($F5,$C5)-MATCH(TRUE,ISNUMBER(MID($C5,ROW(INDIRECT("1:"&LEN($C5))),1)+0),0)-1)
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  4. เซลล์ D5 คีย์สูตร
    =LEFT(C5,FIND(E5,C5)-2)
    Enter > Copy ลงด้านล่าง
Note: Ctrl+Shift+Enter หมายถึงเมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้คีย์เข้าไปเองไม่ได้ ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Tue Dec 25, 2012 4:08 pm
by tstc79tt
หากผมแก้สูตรใดสูตร หนึ่งต้องแก้สูตรทีเหลือทั้งหมดเลยใช่ไหมครับ เห็นมันเกี่ยวเนื่องกันหมด :D

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Tue Dec 25, 2012 4:12 pm
by snasui
:D สูตรสำหรับแยกข้อมูลลักษณะนี้ควรเกี่ยวข้องกันจะได้เป็น Dynamic สำหรับการแก้สูตรจะต้องทราบว่าแก้อะไรจึงจะบอกได้ว่ากระทบกับเซลล์อื่นหรือไม่ครับ

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Tue Dec 25, 2012 4:45 pm
by tstc79tt
=SUBSTITUTE(SUBSTITUTE(MID($C5,FIND(".el",$C5),4),G5,""),".","")

ต้องปรับแก้ยังไงหรือครับถึงจะเพิ่มจาก el6 เป็น(ให้มีทศนิยม) el6_1.2 เข้ามาครับ ผมลองปรับๆมั่วดูเองแล้วมันไม่ขึ้น

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Tue Dec 25, 2012 4:47 pm
by snasui
:D แนบไฟล์และยกตัวอย่างพร้อมคำตอบที่ต้องการมาใหม่ครับ

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Wed Dec 26, 2012 9:23 am
by tstc79tt
นี่ครับ ตรงส่วนที่บอก el ให้บอกตัวเลขตามหลังทั้งหมด

แล้วก็

หากต้องการ
ให้โชว์ ค่าสตริงหลังจาก " . " ตัวสุดท้าย จากทางด้านขวา ครับ

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Wed Dec 26, 2012 10:09 am
by snasui
tstc79tt wrote:เช่นอันด้านล่างนี้ครับ อยากให้มันออกมาเป็น el6_1.2
:D ควรจะบอกเงื่อนไขมาทั้งหมดว่าดูเงื่อนไขใดถึงให้ดึงตัวเลขตามตัวอย่างคืออยู่หลังเครื่องหมาย _ มาด้วย สำหรับตัวอื่น ๆ ดึงมาเช่นนี้หรือไม่ หรือเฉพาะตัวนี้ตัวเดียว ฯลฯ

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Wed Dec 26, 2012 10:36 am
by tstc79tt
ครับ เช่น boost-regex-1.41.0-11.el16_1.2.x86_64

kbd-1.15-11.el6.noarch


ประมาณนี้ครับ

แบ่งช่วงออกมาประมาณนี้

boost-regex :::::: 1.41.0-11 :::::: el16_1.2:::::: x86_64

ดึงมาด้วยครับ เพราะเหมือนว่าเลขดังกล่าวเป็นตัวบอก เวอชั่น el ครับ

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Wed Dec 26, 2012 10:47 am
by snasui
:D จากไฟล์ที่แนบมาล่าสุด ลองตามด้านล่างครับ
  1. เซลล์ H10 คีย์เพื่อตัดชุดหลังสุดของข้อความ
    =TRIM(RIGHT(SUBSTITUTE(C10,".",REPT(" ",255)),255))
    Enter > Copy ลงด้านล่าง
  2. เซลล์ G10 คีย์สูตรเพื่อตัดชุดที่สามของข้อความ
    =TRIM(RIGHT(SUBSTITUTE(SUBSTITUTE(C10,"."&H10,""),".el",REPT(" ",255)&"el"),255))
    Enter > Copy ลงด้านล่าง
  3. เซลล์ E10 คีย์สูตรเพื่อตัดชุดที่สองของข้อความ
    =MID(SUBSTITUTE(SUBSTITUTE(C10,"."&H10,""),"."&G10,""),FIND(".",SUBSTITUTE(SUBSTITUTE(C10,"."&H10,""),"."&G10,""))-1,255)
    Enter > Copy ลงด้านล่าง
  4. เซลล์ D10 คีย์สูตรเพื่อตัดชุดแรกของข้อความ
    =LEFT(C10,FIND(E10,C10)-2)
    Enter > Copy ลงด้านล่าง

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Wed Dec 26, 2012 10:59 am
by tstc79tt
ซับซ้อน มากเลยน่ะครับเนี่ย :O ลองอ่านตามแล้วงงๆตาไม่ทันเลยหละครับ

ขอบคุณมากๆครับ

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Tue Jan 22, 2013 12:49 am
by tstc79tt
ผม ขออนุญาติ ขุดอันนี้ขึ้นมาน่ะครับ เนื่องจาก ผมได้ใช้ทำงานไปสักพัก ผมเจอ สิ่งที่ต้องแก้แล้วครับจึงอยากเรียนถามผู้รู้มาช่วยผมแก้ที่ (ผมพยายามแก้เองแล้วครับ เท่าที่ผมจะรู้และทำได้ ผสมฟั่งชั่นที่เข้าใจต่างๆรวมกัน T^T แต่ผลที่ได้แค่เกือบ)
ปัญหาคือ

boost-regex-1.41.0-11.el16_1.2.x86_64

แบ่งช่วงออกมาประมาณนี้

boost-regex :::::: 1.41.0-11 :::::: el16_1.2:::::: x86_64

แต่หาก เลข เวอชั่นนั้นหลักแรกนั้นเป็น เลข 2 หลัก เช่น 10.41.0-11
จะทำให้การแบ่ง เพี้ยนครับ เช่นกลายเป็น

boost-regex-1 :::::: 0.41.0-11 :::::: el16_1.2:::::: x86_64

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Tue Jan 22, 2013 8:44 am
by snasui
:D จากสูตรในข้อ 3 ด้านล่าง
snasui wrote:เซลล์ E10 คีย์สูตรเพื่อตัดชุดที่สองของข้อความ
=MID(SUBSTITUTE(SUBSTITUTE(C10,"."&H10,""),"."&G10,""),FIND(".",SUBSTITUTE(SUBSTITUTE(C10,"."&H10,""),"."&G10,""))-1,255)
Enter > Copy ลงด้านล่าง
เปลี่ยนสูตรเป็น

=MID(SUBSTITUTE(SUBSTITUTE(C10,"."&H10,""),"."&G10,""),LOOKUP(9.99999999999999E+307,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},C10&"01234567890"))),255)

Enter > Copy ลงด้านล่าง

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Tue Jan 22, 2013 9:43 am
by tstc79tt
glibc-10.1:::::::::: 2-1.7 ::::: el6:::::::::::::: x86_64

boost-rege ::::::::::x-1.41.0-11::::: el16_1.2 ::::: x86_64

มันเป็นงี้อ่ะครับ

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Tue Jan 22, 2013 9:52 am
by snasui
tstc79tt wrote:glibc-10.1:::::::::: 2-1.7 ::::: el6:::::::::::::: x86_64

boost-rege ::::::::::x-1.41.0-11::::: el16_1.2 ::::: x86_64

มันเป็นงี้อ่ะครับ
:twisted: อย่าลืมกฎข้อ 1 ครับ

แนบไฟล์ตัวอย่างข้อมูลและคำตอบที่ต้องการมาด้วยเพื่อสะดวกในการตอบครับ

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Tue Jan 22, 2013 9:58 am
by tstc79tt
> < ครับ เดี่ยวรวบรวมจัดตำแหน่งสักครู่ครับ

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Tue Jan 22, 2013 10:06 am
by snasui
tstc79tt wrote:> < โอเครครับ เดะรวบรวมจัดตำแหน่งสักครู่ครับ
:evil: ถ้าโพสต์มาแบบนี้อีกรอบผมลบสมาชิกทิ้งนะครับ คุณทำผิดกฎข้อที่ 1 ครับ :evil:

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Tue Jan 22, 2013 10:12 am
by tstc79tt
อาจารย์สูตรอาจารย์ถูกแล้วครับ แต่เป็นเพราะผมดันไปปรับสูตรก่อนหน้านี้ มันเลยทำให้ผิดเป็นทอดๆครับ :D ขอบคุณครับ

ผมลืมคราบบเดี่ยวแก้ครับ

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Tue Jan 22, 2013 10:18 am
by snasui
tstc79tt wrote:อาจารย์สูตรอาจารย์ถูกแล้วครับ แต่เป็นเพราะผมดันไปปรับสูตรก่อนหน้านี้ มันเลยทำให้ผิดเป็นทอดๆครับ :D ขอบคุณครับ

ผมลืมคราบบเดี่ยวแก้ครับ
Banned เรียบร้อยแล้วครับเนื่องจากผิดกฎหลายรอบ ไม่ให้ความสำคัญกับคำเตือน

Re: การแยกสตริง แบบหลายเงื่อนไขหลายส่วน

Posted: Tue Jan 22, 2013 10:37 am
by earthapeking
snasui wrote:
tstc79tt wrote:อาจารย์สูตรอาจารย์ถูกแล้วครับ แต่เป็นเพราะผมดันไปปรับสูตรก่อนหน้านี้ มันเลยทำให้ผิดเป็นทอดๆครับ :D ขอบคุณครับ

ผมลืมคราบบเดี่ยวแก้ครับ
Banned เรียบร้อยแล้วครับเนื่องจากผิดกฎหลายรอบ ไม่ให้ความสำคัญกับคำเตือน

ผมขอโทษจริงครับอาจารย์

ขอความที่ผมกำลังจะโพสก่อนโดนแบนครับแต่ดันโพสไม่ขึ้นแบนไปแล้ว

"" :flw: ขอโทษครับ ผมไม่ได้ตั้งใจ รีบพิมไปหน่อยครับ ปกติผมไม่พิมผิดขนาดนี้ครับบบ ""

กำลังedit ข้อความอยู่เลยครับ

ขอบคุณสำหรับความรู้ตลอด 3 เดือน ครับ บอร์ดนี้ ผมยกให้ดีที่สุดเท่าที่ผมเคยเป็นสมาชิกเกี่ยวกับบอร์ดความรู้วิชาการเลยครับ

ลาหละครับ -/|\-