: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 ครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
neutralart
Member
Member
Posts: 60
Joined: Thu May 09, 2013 11:12 am
Contact:

สอบถามวิธีการดึงข้อมูลออกมาจากเว็บมาใส่ใน EXcel ครับ

#1

Post by neutralart »

สอบถามวิธีการดึงข้อมูลออกมาจากเว็บมาใส่ใน EXcel และให้มันอัพเดทอัติโนมัติน่ะครับ ไม่สามารถใช้ Data---->From web ได้ เพราะไม่มีตารางที่ครอบเฉพาะตำแหน่งข้อมูลหุ้นที่ผมตรงการตรงนั้นครับ

ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
logic
Gold
Gold
Posts: 1507
Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365

Re: สอบถามวิธีการดึงข้อมูลออกมาจากเว็บมาใส่ใน EXcel ครับ

#2

Post by logic »

:roll: แนบไฟล์ Excel มาดูกันดีกว่าครับ สมาชิกท่านอื่น ๆ จะได้ช่วยทดสอบให้ได้
neutralart
Member
Member
Posts: 60
Joined: Thu May 09, 2013 11:12 am
Contact:

Re: สอบถามวิธีการดึงข้อมูลออกมาจากเว็บมาใส่ใน EXcel ครับ

#3

Post by neutralart »

ได้ครับ ผมได้แนบไฟล์มาให้แล้ว ก่อนอื่นต้องขอออกตัวว่าผมเพิ่งเริ่มหัดใช้ Excel จากศูนย์มาเมื่อไม่ถึง 3 อาทิตย์ที่ผ่านมา โดยมั่วๆ ทำด้วยตนเอง เปิดหาข้อมูลเองบ้างจากเว็บและยูทูป

ไฟล์ INTUCH เป็นไฟล์ที่ผมทำขึ้นมาเองเพื่อคาดการณ์มูลค่าหุ้นและการเติบโตของ INTUCH ในอนาคตข้างหน้า โดยใน Sheet 1 ที่ชื่อว่า "Future Value Estimate" ช่อง H18 ผมต้องการให้ราคาหุ้น 88.5 บาท มันอัพเดทอัติโนมัติโดยดึงข้อมูลจากเว็บใดเว็บหนึ่งในนี้มาน่ะครับ

http://siamchart.com/stock-info/INTUCH/

http://www.settrade.com/C04_01_stock_qu ... electPage=

ถ้าผมใช้ Data/From web มันจะไม่มี Table ที่ไปครอบบริเวณราคาหุ้นล่าสุดพอดี มันจะได้ตารางทั้งหน้ามาน่ะครับ

พอจะมีวิธีไหมครับ กราบขอบพระคุณอย่างสูงที่สละเวลาช่วยเหลือครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30799
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถามวิธีการดึงข้อมูลออกมาจากเว็บมาใส่ใน EXcel ครับ

#4

Post by snasui »

:D Import ข้อมูลมาตามปกติ จากนั้นใช้สูตรค้นหาค่าที่ต้องการเพื่อนำมาใช้ ลองดูตัวอย่างตามไฟล์แนบครับ
You do not have the required permissions to view the files attached to this post.
neutralart
Member
Member
Posts: 60
Joined: Thu May 09, 2013 11:12 am
Contact:

Re: สอบถามวิธีการดึงข้อมูลออกมาจากเว็บมาใส่ใน EXcel ครับ

#5

Post by neutralart »

ขอบคุณครับ ผมกำลังพยายามทำความเข้าใจอย่างมากตรงคำสั่งนี้อยู่ครับ

INDEX($P$1:$P$199,MATCH(2,IF(P:P="ราคาล่าสุด",1))+1)

เพราะผมเริ่มความรู้จากศูนย์เมื่อไม่กี่วันนี้เอง เลยยากสำหรับผมนิดหนึ่ง ผมรู้แล้วว่าคุณ Snasi ใช้คำสั่งซ้อนกัน 2 คำสั่งคือ INDEX และ MATCH แต่ผมไม่เข้าใจว่าทำไมถึงใช้เลข 2 และ ,1 และต้องไปบวกอีก 1 ด้วยน่ะครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30799
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถามวิธีการดึงข้อมูลออกมาจากเว็บมาใส่ใน EXcel ครับ

#6

Post by snasui »

:D สูตรนั้นไม่ง่ายทั้งผู้เริ่มต้นและผู้ที่คิดว่าใช้ Excel คล่องแล้วก็ตาม เพราะเป็นการใช้แบบประยุกต์และต้องเข้าใจฟังก์ชั่น Match เป็นอย่างดี

ฟังก์ชั่น Match ที่นำมาใช้นี้เป็นการหาลำดับที่พบคำว่า ราคาล่าสุด ในช่วง P:P (หรือคอลัมน์ P นั่นเอง) จากนั้นให้บวกลำดับที่พบไปอีก 1 เพื่อนำเอาตัวเลขของราคามาใช้ เพราะราคาอยู่ถัดจากคำว่า ราคาล่าสุด 1 ตำแหน่ง

และเนื่องจากคำว่า ราคาล่าสุด มีมากกว่า 1 ตัวและเราต้องการตัวที่สองหรือตัวสุดท้ายสำหรับข้อมูลนี้ จึงต้องใช้ Match แบบหาค่าใกล้เคียงซึ่งได้ละส่วนประกอบที่ 3 ของ Match เอาไว้ (เพื่อให้แสดงลำดับสุดท้ายที่พบคำว่า ราคาล่าสุด)

สูตร IF(P:P="ราคาล่าสุด",1) เป็นการหาว่าใน P:P มีเซลล์ใดเท่ากับ ราคาล่าสุด ก็ให้แสดงเลข 1 ถ้าไม่ใช่ก็ให้แสดงค่า False สูตร Match ก็จะได้เป็น

=Match(2,{false,false,false,1,false,....}) เช่นนี้เป็นต้น

จะเห็นว่าเป็นการหาค่า 2 ว่าอยู่ในลำดับที่เท่าไรของ {false,false,false,1,false,....} นั้นไม่มีทางที่จะเจอ เพราะว่าเรากำหนดให้แสดงเพียง 1 และ false เท่านั้น สูตรนี้จึงให้ผลลัพธ์เป็นเลข 1 ลำดับสุดท้ายในช่วงของ {false,false,false,1,false,....} เท่านั้น ซึ่งเป็นสิ่งที่เข้าใจยากหากไม่เข้าใจฟังก์ชั่น Match มาเป็นอย่างดี

สมมุติว่าได้คำตอบคือลำดับที่ 83 เราก็จะนำมาบวกด้วย 1 ให้กลายเป็น 84 ซึ่งเป็นลำดับถัดไป 1 ลำดับ

นำมาแทนค่าในฟังก์ชั่น Index จะได้เป็น INDEX($P$1:$P$199,84)

หมายถึงว่าในช่วง $P$1:$P$199 ให้นำลำดับที่ 84 มาแสดง

แต่ถ้าหากพบเป็นลำดับที่ 300 จะเกิดค่าผิดพลาด เนื่องจากเราให้หาในช่วง $P$1:$P$199 เท่านั้น กรณีที่ข้อมูลมากขึ้นต้องปรับช่วงเซลล์นี้ตามปริมาณข้อมูลที่มี หรือจะเขียนสูตรเป็น

INDEX(P:P,MATCH(2,IF(P:P="ราคาล่าสุด",1))+1)

เพื่อไม่ต้องคอยปรับช่วงข้อมูล
neutralart
Member
Member
Posts: 60
Joined: Thu May 09, 2013 11:12 am
Contact:

Re: สอบถามวิธีการดึงข้อมูลออกมาจากเว็บมาใส่ใน EXcel ครับ

#7

Post by neutralart »

ขอบคุณมากครับ ตั้งใจให้คำตอบผมจริงๆ เห็นแล้วน้ำตาจะไหลครับ ^^
ผมมีข้อสงสัยเพิ่มเติมครับ
1. ทำไมผม copy formula ที่ท่านทำให้ใน Cell นั้นออกมา และลอง paste ใส่ใน Cell ใหม่ใน column เดียวกัน มันจึงไม่สามารถแสดงคำตอบออกมาได้ล่ะครับ ซึ่งผมเช็คสูตรแล้วเหมือนกันหมด?
2. จำเป็นที่จะต้องดึงออกมาจากเว็บทั้งตารางแบบนี้ทุกครั้งเลยใช่ไหมครับ คือผมไม่สามารถดึงเฉพาะค่าหุ้นตัวเดียวโดดๆ ออกมาได้?

ผมแนบไฟล์มาให้ดูด้วยครับ ตรงช่อง Cell สีเขียวๆ นั่นครับ

ขอบคุณครับ




snasui wrote::D สูตรนั้นไม่ง่ายทั้งผู้เริ่มต้นและผู้ที่คิดว่าใช้ Excel คล่องแล้วก็ตาม เพราะเป็นการใช้แบบประยุกต์และต้องเข้าใจฟังก์ชั่น Match เป็นอย่างดี

ฟังก์ชั่น Match ที่นำมาใช้นี้เป็นการหาลำดับที่พบคำว่า ราคาล่าสุด ในช่วง P:P (หรือคอลัมน์ P นั่นเอง) จากนั้นให้บวกลำดับที่พบไปอีก 1 เพื่อนำเอาตัวเลขของราคามาใช้ เพราะราคาอยู่ถัดจากคำว่า ราคาล่าสุด 1 ตำแหน่ง

และเนื่องจากคำว่า ราคาล่าสุด มีมากกว่า 1 ตัวและเราต้องการตัวที่สองหรือตัวสุดท้ายสำหรับข้อมูลนี้ จึงต้องใช้ Match แบบหาค่าใกล้เคียงซึ่งได้ละส่วนประกอบที่ 3 ของ Match เอาไว้ (เพื่อให้แสดงลำดับสุดท้ายที่พบคำว่า ราคาล่าสุด)

สูตร IF(P:P="ราคาล่าสุด",1) เป็นการหาว่าใน P:P มีเซลล์ใดเท่ากับ ราคาล่าสุด ก็ให้แสดงเลข 1 ถ้าไม่ใช่ก็ให้แสดงค่า False สูตร Match ก็จะได้เป็น

=Match(2,{false,false,false,1,false,....}) เช่นนี้เป็นต้น

จะเห็นว่าเป็นการหาค่า 2 ว่าอยู่ในลำดับที่เท่าไรของ {false,false,false,1,false,....} นั้นไม่มีทางที่จะเจอ เพราะว่าเรากำหนดให้แสดงเพียง 1 และ false เท่านั้น สูตรนี้จึงให้ผลลัพธ์เป็นเลข 1 ลำดับสุดท้ายในช่วงของ {false,false,false,1,false,....} เท่านั้น ซึ่งเป็นสิ่งที่เข้าใจยากหากไม่เข้าใจฟังก์ชั่น Match มาเป็นอย่างดี

สมมุติว่าได้คำตอบคือลำดับที่ 83 เราก็จะนำมาบวกด้วย 1 ให้กลายเป็น 84 ซึ่งเป็นลำดับถัดไป 1 ลำดับ

นำมาแทนค่าในฟังก์ชั่น Index จะได้เป็น INDEX($P$1:$P$199,84)

หมายถึงว่าในช่วง $P$1:$P$199 ให้นำลำดับที่ 84 มาแสดง

แต่ถ้าหากพบเป็นลำดับที่ 300 จะเกิดค่าผิดพลาด เนื่องจากเราให้หาในช่วง $P$1:$P$199 เท่านั้น กรณีที่ข้อมูลมากขึ้นต้องปรับช่วงเซลล์นี้ตามปริมาณข้อมูลที่มี หรือจะเขียนสูตรเป็น

INDEX(P:P,MATCH(2,IF(P:P="ราคาล่าสุด",1))+1)

เพื่อไม่ต้องคอยปรับช่วงข้อมูล
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30799
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถามวิธีการดึงข้อมูลออกมาจากเว็บมาใส่ใน EXcel ครับ

#8

Post by snasui »

:D ที่ไม่ได้เพราะเป็นการคีย์เครื่องหมายปีกกาเข้าไปเองครับ

เครื่องหมายปีกกาของสูตรลักษณะนี้จะคีย์เข้าไปเองไม่ได้ มันจะมาเองด้วยการกดแป้น Ctrl+Shift+Enter นั่นคือ คีย์สูตรเสร็จให้กดแป้น Ctrl+Shift ค้างไว้ก่อนแล้วตามด้วย Enter แทนการกดแป้น Enter แบบสูตรทั่ว ๆ ไป เราเรียกสูตรแบบนี้ว่าสูตร Array

การแก้ไข ปรับปรุง เปลี่ยนแปลง ต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter เสมอครับ

สำหรับการ Import Data จากเว็บที่ไม่ใช้เป็นการ Import XML (เช่นพวก RSS Feed) เราไม่สามารถเลือกเอามาเฉพาะค่าที่ต้องการได้ครับ
วังวู ช่ง
Silver
Silver
Posts: 804
Joined: Thu May 31, 2012 2:27 pm
Location: Laos
Excel Ver: MS Excel for office 365 MSO
Contact:

Re: สอบถามวิธีการดึงข้อมูลออกมาจากเว็บมาใส่ใน EXcel ครับ

#9

Post by วังวู ช่ง »

สุดยอด จิงๆ บดเรียนที่ดีมากครับ
neutralart
Member
Member
Posts: 60
Joined: Thu May 09, 2013 11:12 am
Contact:

Re: สอบถามวิธีการดึงข้อมูลออกมาจากเว็บมาใส่ใน EXcel ครับ

#10

Post by neutralart »

ขอบคุณคุณ Snasui อย่างมากครับ ถึงผมกำลังพยายามทำความเข้าใจอยู่ก็ตาม แต่ก็ขอชื่นชมในความมีน้ำใจ และความใส่ใจในการช่วยเหลือแก้ปัญหาของคุณ Snasui มากๆ ขอชื่นชมในวัจนะภาษาที่ไม่มีผิดไวยกรณ์เลย อ่านแล้วเข้าใจง่ายชัดเจนอย่างมากครับ
P1649
Member
Member
Posts: 85
Joined: Sat Feb 09, 2013 6:37 pm

Re: สอบถามวิธีการดึงข้อมูลออกมาจากเว็บมาใส่ใน EXcel ครับ

#11

Post by P1649 »

neutralart wrote:ขอบคุณคุณ Snasui อย่างมากครับ ถึงผมกำลังพยายามทำความเข้าใจอยู่ก็ตาม แต่ก็ขอชื่นชมในความมีน้ำใจ และความใส่ใจในการช่วยเหลือแก้ปัญหาของคุณ Snasui มากๆ ขอชื่นชมในวัจนะภาษาที่ไม่มีผิดไวยกรณ์เลย อ่านแล้วเข้าใจง่ายชัดเจนอย่างมากครับ
ไม่เคยได้เจอหน้า ไม่เคยเข้าห้องเรียนด้วย
แต่ผมเรียกว่า อาจารย์ได้อย่างเต็มใจ
P1649
Member
Member
Posts: 85
Joined: Sat Feb 09, 2013 6:37 pm

Re: สอบถามวิธีการดึงข้อมูลออกมาจากเว็บมาใส่ใน EXcel ครับ

#12

Post by P1649 »

ขอมูลที่ดึงจากเวป Cell แรกวางที่ไหนและตรวจสอบได้อย่างไรครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30799
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถามวิธีการดึงข้อมูลออกมาจากเว็บมาใส่ใน EXcel ครับ

#13

Post by snasui »

:D เข้าเมนู Data > Connections > เลือก Connection ที่ต้องการ > ตรง Locations where connections are used in this book สามารถคลิกลงไปที่ Link ซึ่งจะแสดงข้อความว่า Click here to see where the selected connections are used เมื่อคลิกไปแล้วจะเห็นพื้นที่วางข้อมูลตรง Location ครับ
P1649
Member
Member
Posts: 85
Joined: Sat Feb 09, 2013 6:37 pm

Re: สอบถามวิธีการดึงข้อมูลออกมาจากเว็บมาใส่ใน EXcel ครับ

#14

Post by P1649 »

ได้รับคำตอบแล้ว ขอบคุณครับ
Post Reply