Page 1 of 1

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

Posted: Thu May 09, 2013 11:21 am
by neutralart
สอบถามวิธีการดึงข้อมูลออกมาจากเว็บมาใส่ใน EXcel และให้มันอัพเดทอัติโนมัติน่ะครับ ไม่สามารถใช้ Data---->From web ได้ เพราะไม่มีตารางที่ครอบเฉพาะตำแหน่งข้อมูลหุ้นที่ผมตรงการตรงนั้นครับ

ขอบคุณครับ

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

Posted: Thu May 09, 2013 11:36 am
by logic
:roll: แนบไฟล์ Excel มาดูกันดีกว่าครับ สมาชิกท่านอื่น ๆ จะได้ช่วยทดสอบให้ได้

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

Posted: Thu May 09, 2013 11:49 am
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 ที่ไปครอบบริเวณราคาหุ้นล่าสุดพอดี มันจะได้ตารางทั้งหน้ามาน่ะครับ

พอจะมีวิธีไหมครับ กราบขอบพระคุณอย่างสูงที่สละเวลาช่วยเหลือครับ

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

Posted: Thu May 09, 2013 1:23 pm
by snasui
:D Import ข้อมูลมาตามปกติ จากนั้นใช้สูตรค้นหาค่าที่ต้องการเพื่อนำมาใช้ ลองดูตัวอย่างตามไฟล์แนบครับ

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

Posted: Thu May 09, 2013 1:52 pm
by neutralart
ขอบคุณครับ ผมกำลังพยายามทำความเข้าใจอย่างมากตรงคำสั่งนี้อยู่ครับ

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

เพราะผมเริ่มความรู้จากศูนย์เมื่อไม่กี่วันนี้เอง เลยยากสำหรับผมนิดหนึ่ง ผมรู้แล้วว่าคุณ Snasi ใช้คำสั่งซ้อนกัน 2 คำสั่งคือ INDEX และ MATCH แต่ผมไม่เข้าใจว่าทำไมถึงใช้เลข 2 และ ,1 และต้องไปบวกอีก 1 ด้วยน่ะครับ

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

Posted: Thu May 09, 2013 5:08 pm
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)

เพื่อไม่ต้องคอยปรับช่วงข้อมูล

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

Posted: Thu May 09, 2013 5:54 pm
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)

เพื่อไม่ต้องคอยปรับช่วงข้อมูล

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

Posted: Thu May 09, 2013 8:02 pm
by snasui
:D ที่ไม่ได้เพราะเป็นการคีย์เครื่องหมายปีกกาเข้าไปเองครับ

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

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

สำหรับการ Import Data จากเว็บที่ไม่ใช้เป็นการ Import XML (เช่นพวก RSS Feed) เราไม่สามารถเลือกเอามาเฉพาะค่าที่ต้องการได้ครับ

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

Posted: Thu May 09, 2013 8:05 pm
by วังวู ช่ง
สุดยอด จิงๆ บดเรียนที่ดีมากครับ

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

Posted: Thu May 09, 2013 8:12 pm
by neutralart
ขอบคุณคุณ Snasui อย่างมากครับ ถึงผมกำลังพยายามทำความเข้าใจอยู่ก็ตาม แต่ก็ขอชื่นชมในความมีน้ำใจ และความใส่ใจในการช่วยเหลือแก้ปัญหาของคุณ Snasui มากๆ ขอชื่นชมในวัจนะภาษาที่ไม่มีผิดไวยกรณ์เลย อ่านแล้วเข้าใจง่ายชัดเจนอย่างมากครับ

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

Posted: Fri May 10, 2013 9:33 pm
by P1649
neutralart wrote:ขอบคุณคุณ Snasui อย่างมากครับ ถึงผมกำลังพยายามทำความเข้าใจอยู่ก็ตาม แต่ก็ขอชื่นชมในความมีน้ำใจ และความใส่ใจในการช่วยเหลือแก้ปัญหาของคุณ Snasui มากๆ ขอชื่นชมในวัจนะภาษาที่ไม่มีผิดไวยกรณ์เลย อ่านแล้วเข้าใจง่ายชัดเจนอย่างมากครับ
ไม่เคยได้เจอหน้า ไม่เคยเข้าห้องเรียนด้วย
แต่ผมเรียกว่า อาจารย์ได้อย่างเต็มใจ

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

Posted: Sun May 12, 2013 6:05 am
by P1649
ขอมูลที่ดึงจากเวป Cell แรกวางที่ไหนและตรวจสอบได้อย่างไรครับ

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

Posted: Sun May 12, 2013 6:23 am
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 ครับ

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

Posted: Thu May 16, 2013 9:04 pm
by P1649
ได้รับคำตอบแล้ว ขอบคุณครับ