:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

สอบถามการใช้สูตรในกรณีที่ข้อมูลเป็นชุดเข้ามา และมีปริมาณบรรทัดที่แตกต่างกัน(และแต่ละบรรทัดเกี่ยวข้องกัน)

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
GobWeravong
Member
Member
Posts: 86
Joined: Mon Mar 02, 2020 6:38 pm
Excel Ver: 2016

สอบถามการใช้สูตรในกรณีที่ข้อมูลเป็นชุดเข้ามา และมีปริมาณบรรทัดที่แตกต่างกัน(และแต่ละบรรทัดเกี่ยวข้องกัน)

#1

Post by GobWeravong »

เรียน ทุกท่านที่เคารพครับ มีเรื่องมาปรึกษาครับ สอบถามการใช้สูตรในกรณีที่ข้อมูลเป็นชุดเข้ามา และมีปริมาณบรรทัดที่แตกต่างกัน(และแต่ละบรรทัดเกี่ยวข้องกัน) ซึ่งหากชุดข้อมูลมีเท่าๆกันผมก็สามารถใช้สูตรคงเดิมปกติได้ครับ แต่พอชุดข้อมูลที่เป็นแถบสีเขียว กับแถบสีส้ม มีบรรทัดไม่เท่ากัน ทำให้ผมไม่สามารถเริ่มต้นการใช้สูตรได้ครับ
ชุดข้อมูล สีเขียว คือ ping ได้ มีข้อมูลดังนี้ (และชุดนี้อาจจจะอยู่บรรทัดไหนก็ได้ครับหรืออาจจะไม่ใช่ชุดเริ่มต้นครับ)
Pinging 111.193.199.199 with 32 bytes of data:
Reply from 111.193.199.199: bytes=32 time=51ms TTL=49

Ping statistics for 111.193.199.199:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 51ms, Maximum = 51ms, Average = 51ms

ชุดสีส้ม(ในไฟล์) คือ ping ไม่ได้ มี Timeout มีข้อมูลดังนี้ (และชุดนี้อาจจจะอยู่บรรทัดแรก หรือบรรทัดไหนก็ได้ครับหรืออาจจะไม่ใช่ชุดเริ่มต้นครับ)
Pinging 111.193.199.200 with 32 bytes of data:
Request timed out.

Ping statistics for 111.193.199.200:
Packets: Sent = 1, Received = 0, Lost = 1 (100% loss),

รายละเอียด และผลลัพธ์ตามไฟล์แนบครับ (ผลลัพธ์จะเป็นไปตาม Column สีม่วงตามไฟล์แนบครับ) ซึ่งผมยังหาวิธีไม่ได้
Result1(IP) Result2(Loss) Result3(Time)
111.193.199.199 0% loss 51ms
111.193.199.200 100% loss Request timed out.
911.193.119.299 0% loss 58ms
299.103.110.999 0% loss 54ms
399.103.110.39 100% loss Request timed out.
71.13.13.30 wit 0% loss 75ms
191.193.113.42 0% loss 52ms
919.76.180.946 0% loss 56ms
971.103.194.922 0% loss 67ms
771.703.113.70 0% loss 43ms
471.103.113.418 0% loss 53ms

แต่ได้พยายามลองและกรองโดยใช้สูตรเพื่อดึงค่าที่เกี่ยวข้องออกมา (ดังเช่น comlumn สีฟ้าตามไฟล์ครับ)
ขอบคุณมากๆครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามการใช้สูตรในกรณีที่ข้อมูลเป็นชุดเข้ามา และมีปริมาณบรรทัดที่แตกต่างกัน(และแต่ละบรรทัดเกี่ยวข้องกัน)

#2

Post by snasui »

:D กรุณา Update Profile โดยระบุ Version ของ Excel ที่ใช้จริงตาม link นี้ด้วยครับ https://snasui.com/viewtopic.php?f=6&p=103177#p103177

ตัวอย่างสูตรตามด้านล่างครับ
  1. ที่ G2 คีย์
    =IFERROR(IF(FIND("Pinging",A2,1)=1,TRIM(MID(SUBSTITUTE(A2," ",REPT(" ",50)),51,50))),LOOKUP(CHAR(255),G$1:G1))
    Enter > Copy ลงด้านล่าง
  2. ที่ K2 คีย์
    =IFERROR(INDEX(G:G,AGGREGATE(15,6,ROW($G$2:$G$84)/(FREQUENCY(MATCH($G$2:$G$84,$G$2:$G$84,0),ROW($G$2:$G$84)-ROW($G$2)+1)>0),ROWS(K$2:K2))),"")
    Enter > Copy ลงด้านล่าง
  3. ที่ L2 คีย์
    =IF($K2="","",IFERROR(LOOKUP(2,1/($G$2:$G$84=$K2)/($H$2:$H$84<>""),$H$2:$H$84),"0% loss"))
    Enter > Copy ลงด้านล่าง
  4. ที่ M2 คีย์
    =IF(L2="","",IF(L2="(100% loss),","Request timed out.",LOOKUP(2,1/($G$2:$G$84=$K2)/($I$2:$I$84<>""),$I$2:$I$84)))
    Enter > Copy ลงด้านล่าง
GobWeravong
Member
Member
Posts: 86
Joined: Mon Mar 02, 2020 6:38 pm
Excel Ver: 2016

Re: สอบถามการใช้สูตรในกรณีที่ข้อมูลเป็นชุดเข้ามา และมีปริมาณบรรทัดที่แตกต่างกัน(และแต่ละบรรทัดเกี่ยวข้องกัน)

#3

Post by GobWeravong »

ขอบคุณมากๆครับ เดี๋ยวทดสอบดูครับ (ผมใส่ version excel ให้แล้วครับ ในการตั้งค่าครับ)
User avatar
Bo_ry
Gold
Gold
Posts: 1245
Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:

Re: สอบถามการใช้สูตรในกรณีที่ข้อมูลเป็นชุดเข้ามา และมีปริมาณบรรทัดที่แตกต่างกัน(และแต่ละบรรทัดเกี่ยวข้องกัน)

#4

Post by Bo_ry »

ไม่ต้องใช้ Colum สีฟ้า

K2
=IFERROR(TRIM(MID(SUBSTITUTE(INDEX(A:A,AGGREGATE(15,6,ROW($A$2:$A$99)/(RIGHT($A$2:$A$99,2)="a:"),ROWS(K$2:K2)))," ",REPT(" ",30)),30,30)),"")

L2
=IF(K2="","",TRIM(RIGHT(SUBSTITUTE(SUBSTITUTE(INDEX(A:A,AGGREGATE(15,6,ROW($A$2:$A$99)/(RIGHT($A$2:$A$99,2)="),"),ROWS(L$2:L2))),"(",REPT(" ",30)),"),",),30)))

M2
=IF(K2="","",TRIM(RIGHT(SUBSTITUTE(INDEX(A:A,AGGREGATE(15,6,ROW($A$2:$A$99)/ISNUMBER(MATCH(RIGHT($A$2:$A$99,2),{"t.","ms"},)),ROWS(K$2:K2))),"=",REPT(" ",30)),30)))
You do not have the required permissions to view the files attached to this post.
GobWeravong
Member
Member
Posts: 86
Joined: Mon Mar 02, 2020 6:38 pm
Excel Ver: 2016

Re: สอบถามการใช้สูตรในกรณีที่ข้อมูลเป็นชุดเข้ามา และมีปริมาณบรรทัดที่แตกต่างกัน(และแต่ละบรรทัดเกี่ยวข้องกัน)

#6

Post by GobWeravong »

Bo_ry wrote: Wed Jan 20, 2021 4:14 pm ไม่ต้องใช้ Colum สีฟ้า

K2
=IFERROR(TRIM(MID(SUBSTITUTE(INDEX(A:A,AGGREGATE(15,6,ROW($A$2:$A$99)/(RIGHT($A$2:$A$99,2)="a:"),ROWS(K$2:K2)))," ",REPT(" ",30)),30,30)),"")

L2
=IF(K2="","",TRIM(RIGHT(SUBSTITUTE(SUBSTITUTE(INDEX(A:A,AGGREGATE(15,6,ROW($A$2:$A$99)/(RIGHT($A$2:$A$99,2)="),"),ROWS(L$2:L2))),"(",REPT(" ",30)),"),",),30)))

M2
=IF(K2="","",TRIM(RIGHT(SUBSTITUTE(INDEX(A:A,AGGREGATE(15,6,ROW($A$2:$A$99)/ISNUMBER(MATCH(RIGHT($A$2:$A$99,2),{"t.","ms"},)),ROWS(K$2:K2))),"=",REPT(" ",30)),30)))
เรียน คุณ Bo_ry ผมนำไปทดสอบแล้วครับ สุดยอดมากๆครับ โดยทดสอบจากค่า input ที่เข้ามา ประมาณ 1200 บรรทัด สามารถใช้งาน
ได้ดีและรวดเร็วมากๆครับ (ก่อนหน้านี้ผมติดปัญหา สูตรสีฟ้าเยอะมากๆ จึงส่งผลให้ excel run ค้าง และสูตรค้างครับ)
ขอบคุณทั้ง2 ท่านมากๆครับ คุณ snasui และ คุณ Bo_ry
Post Reply