: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

Test

ฟอรัมสำหรับการทดสอบโพสต์
Post Reply
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Test

#1

Post by bank9597 »

=iffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: Test

#2

Post by bank9597 »

:shock: จริงด้วยที่มันไม่ตัดข้อความ แย่จังเลย
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 30744
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: Test

#3

Post by snasui »

:D ผมใช้ Style Aero ตัดข้อความตามปกติครับ :tt: ไม่ทราบว่าใช้ Style ใดครับ :lol:
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: Test

#4

Post by bank9597 »

:lol: ผมใช้สไตล์ Absolution ครับ มันแสดงไม่ครบ

ตอนนี้จะใช้ Firefox ทดสอบครับว่ามันแสดงข้อความครบหรือไม่


=ifffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff55555
Last edited by bank9597 on Tue Dec 18, 2012 10:45 am, edited 6 times in total.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: Test

#5

Post by bank9597 »

:flw: รายงานผลอย่างเป็นทางการครับ FierFox ก็เน่าเช่นเดียวกันครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: Test

#6

Post by bank9597 »

การดูสูตรให้ดูตามส่วนประกอบสูตรเป็นช่วงๆ ไปครับ อย่าดูทีละอักขระ เพราะจะทำให้สับสน

และสูตรที่ยกมาถามนั้น เขียนไม่ถูกต้อง A1:A1000 เท่านั้นครับ ไม่ใช่ A1:AA1000 และยังเขียนไม่ครบนะครับ ต้องมีวงเล็บปิดด้วย สูตรที่ถูกต้องเป็นดังนี้ครับ

=Lookup(2,1/(A1:A1000<>""),A1:A1000)

แต่ละส่วนประกอบสูตรจะถูกแบ่งด้วยเครื่องหมายคอมม่า

ดังนั้น คำถามใหม่น่าจะเปลี่ยนเป็น

2 หมายถึงอะไร
1/(A1:A1000<>"") หมายถึงอะไร
A1:A1000 หมายถึงอะไร

การจะทำความเข้าใจสูตรนี้ ต้องเข้าใจสูตร Lookup แบบเวกเตอร์ก่อนครับ

LOOKUP(lookup_value,lookup_vector,result_vector)

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

Lookup_value ค่าที่ LOOKUP จะค้นหาในเวคเตอร์แรก หรือค่าที่จะค้นหาใน lookup_vector
Lookup_value อาจเป็นตัวเลข ข้อความ ค่าตรรกะ หรือชื่อหรือการอ้างอิงที่อ้างถึงค่า

Lookup_vector ช่วงที่ประกอบด้วยแถวเพียงหนึ่งแถวหรือคอลัมน์เพียงหนึ่งคอลัมน์เท่านั้น ค่าใน lookup_vector อาจเป็นข้อความ ตัวเลขหรือค่าตรรกะ

สิ่งสำคัญ ค่าใน lookup_vector ต้องอยู่ในลำดับจากน้อยไปหามาก: ...,-2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE หากไม่เรียงในลักษณะนี้ ฟังก์ชั่น LOOKUP อาจไม่แสดงค่าที่ถูกต้อง ข้อความที่เป็นตัวพิมพ์ใหญ่และตัวพิมพ์เล็กนั้นเทียบเท่ากัน

Result_vector ช่วงที่ประกอบด้วยแถวหรือแถวหรือคอลัมน์หนึ่งคอลัมน์เท่านั้น ช่วงนี้ต้องมีขนาดเดียวกับ lookup_vector

อันนี้สำคัญ

หาก LOOKUP ไม่พบ lookup_value ฟังก์ชั่นนี้จะจับคู่ค่าที่ใหญ่ที่สุดใน lookup_vector ที่น้อยกว่าหรือเท่ากับ lookup_value
หาก lookup_value น้อยกว่าค่าที่น้อยที่สุดใน lookup_vector ฟังก์ชั่น LOOKUP จะให้ค่าข้อผิดพลาดเป็น #N/A

ดังนั้น ถ้าเทียบตามคำอธิบายข้างบน
1. เลข 2 หมายถึง Lookup value หรือค่าที่ต้องการค้นหาในช่วงข้อมูลตามข้อ 2
2. 1/(A1:A1000<>"") หมายถึงช่วงข้อมูลที่ต้องการค่า Lookup_value ในข้อ 1
3. A1:A1000 หมายถึง ช่วงข้อมูลผลลัพธ์ที่ต้องการนำมาแสดง

หมายถึงว่า หากพบค่าข้อ 1 ในช่วงข้อมูลตามข้อ 2 อยู่ที่ตำแหน่งไหน ให้นำค่าในข้อ 3 ในตำแหน่งเดียวกันมาแสดง

ทีนี้มาแกะสูตรกัน เพื่อให้ง่าย ต้องสมมุติโจทย์ให้ง่ายก่อน
สมมุติว่า A1:A5 ประกอบด้วย
A1=1
A2=5
A3=B
A4 คีย์สูตร=if(a2=5,"",0)
A5=8
ตามลำดับ

ที่ B1 เขียนสูตร

=LOOKUP(2,1/(A1:A5<>""),A1:A5)

ลองมาแกะสูตรกัน ต่อไปนี้จะทำที่ Formula bar หรือคลิก B1 แล้วกด F2 ก็สามารถทำใน Cell B1 ได้เลยเช่นกัน

ลากเมาส์คลุม (A1:A5<>"") แล้วกด F9 จะได้

=LOOKUP(2,1/{TRUE;TRUE;TRUE;FALSE;TRUE},A1:A5)

ลากเมาส์คลุม 1/{TRUE;TRUE;TRUE;FALSE;TRUE}แล้วกด F9 จะได้

=LOOKUP(2,{1;1;1;#DIV/0!;1},A1:A5)

ลากเมาส์คลุม A1:A5 แล้วกด F9 จะได้

=LOOKUP(2,{1;1;1;#DIV/0!;1},{1;5;"B";"";8})

จะเห็นว่าไม่สามารถค้นหาค่า 2 จากช่วง {1;1;1;#DIV/0!;1} ได้เพราะไม่มี แต่จากคำอธิบายข้างบนบอกว่า lookup_vector จะต้องเรียงกันจากน้อยไปหามาก และหากไม่มีค่าที่ตรงกันกับค่าที่ค้นหา จะใช้ค่าที่ใหญ่ที่สุดหรือค่าที่มากที่สุดที่เจอใน lookup_vector ที่น้อยกว่าหรือเท่ากับ lookup_value

จากความหมายข้างต้น ผลลัพธ์ที่ได้จะเป็นเลข 1 ตัวสุดท้ายเท่านั้น เพราะถือว่าเรียงจากน้อยไปหามาก และเป็นค่าใหญ่สุดแล้ว เมื่อได้ดังนี้แล้ว 1 ตัวสุดท้ายจะตรงกับตัวใดในช่วง result_vector

=LOOKUP(2,{1;1;1;#DIV/0!;1},{1;5;"B";"";8})

คำตอบที่ได้ก็คือ 8

ลองเขียนสูตรใหม่เหมือนตอนเริ่มต้น ลองลบเลข 8 ใน A5 ออกแล้วสังเกตดูผลลัพธ์ครับ

หากไม่เข้าใจโปรดอ่านซ้ำอีกครั้งหนึ่ง :) แต่แนะนำให้อ่านที่
http://office.microsoft.com/th-th/excel ... 31054.aspx

ซึ่งเป็นแหล่งข้อมูลที่ผมอ้างอิงมา ลองทำแบบฝึกหัดในนั้นดู จะทำให้เข้าใจมากขึ้น สูตรที่ผมเขียนขึ้นมานี้เป็นสูตรประยุกต์ จะเข้าใจยากกว่าครับ

Edit: เพิ่มคำอธิบาย ความหมายของ lookup แบบเวคเตอร์
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
Post Reply