: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

ปัญหาสูตร อาเรย์ ข้ามชีทแล้ว เออเร่อร์

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
nopanan
Member
Member
Posts: 93
Joined: Fri May 21, 2010 12:48 am

ปัญหาสูตร อาเรย์ ข้ามชีทแล้ว เออเร่อร์

#1

Post by nopanan »

ใช้ datavalidation และสูตรอาร์เรย์ พบทั้งถูกต้องและเออเร่อร์ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ปัญหาสูตร อาเรย์ ข้ามชีทแล้ว เออเร่อร์

#2

Post by snasui »

:D ช่วยแจ้งเงื่อนไขในการแสดงผล พร้อมตัวอย่างคำตอบที่ถูกต้องมาด้วยครับ
nopanan
Member
Member
Posts: 93
Joined: Fri May 21, 2010 12:48 am

Re: ปัญหาสูตร อาเรย์ ข้ามชีทแล้ว เออเร่อร์

#3

Post by nopanan »

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

Re: ปัญหาสูตร อาเรย์ ข้ามชีทแล้ว เออเร่อร์

#4

Post by snasui »

:D ผมขอเงื่อนไขการแสดงผลครับ จึงจะตอบได้ว่า Error เพราะเหตุใด ควรตอบในสิ่งที่ผมถามครับ
nopanan
Member
Member
Posts: 93
Joined: Fri May 21, 2010 12:48 am

Re: ปัญหาสูตร อาเรย์ ข้ามชีทแล้ว เออเร่อร์

#5

Post by nopanan »

ครับ ในชีท toppb ที่ C6 เป็น drop down list เมื่อเลือกตัวเลือกใดๆแล้วให้แสดงค่าในเซลที่ไฮไล้สีเหลือง ตามที่ได้ใส่สูตรไว้เพื่อนำข้อมูลจากชีท Topsales มาแสดงได้อย่างถูกต้องครับ คือสูตรน่าจะถูกต้องครับเพราะสามารถแสดงได้ เมื่อเลือกในบางรายการใน list จึงไม่ทราบว่าเกิดจากอะไรที่ไม่สามารถแสดงผลได้ทุก การเลือกใน ชีท toppb ที่ C6 ครับ ขออภัยครับหากยังไม่ชัดเจน
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ปัญหาสูตร อาเรย์ ข้ามชีทแล้ว เออเร่อร์

#6

Post by snasui »

:D จากไฟล์ที่แนบมา คำตอบทั้ง 6 เซลล์ควรเป็นค่าใด และเหตุใดจึงได้ค่านั้นครับ
nopanan
Member
Member
Posts: 93
Joined: Fri May 21, 2010 12:48 am

Re: ปัญหาสูตร อาเรย์ ข้ามชีทแล้ว เออเร่อร์

#7

Post by nopanan »

ขอแนบไฟล์ตัวอย่างมาใหม่ครับ คือต้องการให้แสดงข้อมูลตัวเลขสูงสุด 3 อันดับแรกจากตารางข้างบนตามสีที่ทำไว้ มาแสดงในตารางข้างล่างตามสูตรที่เคยได้รับจากอาจารย์มาครับ โดยใช้ตัวเลือก dropdownlist ไฟล์ที่แนบมาใหม่นี้ไม่ได้มีปัญหาเออเร่อร์แต่อย่างใด ปัญหาคือว่า เมื่อผมมีจำนวนของคอลัมน์และแถวของข้อมูลที่มากขึ้นในการใช้งานจริง มันแสดงค่าเออเร่อร์ ซึ่งไฟล์แรกผมใช้สูตรน่าจะถูกต้องเพราะมีการแสดงลำดับขึ้นมาได้แต่ไม่ทั้งหมด บางส่วนที่เลือกแสดงค่าเออเร่อร์ ครับ ขออภัยครับไฟล์แรกตัวเลขอาจซ้ำกันเพราะผมได้ใช้เป็นตัวอย่าง สูตรนี้ได้มาจากอาจารย์แล้วได้ผลปัญหาคือเมื่อเพิ่มคอลัมน์และแถวแล้วมีค่าเออเร่อร์ ขออภัยครับหากอธิบายแล้วเข้าใจยากสักนิด :flw:
You do not have the required permissions to view the files attached to this post.
joo
Gold
Gold
Posts: 1213
Joined: Sat Apr 17, 2010 3:50 pm

Re: ปัญหาสูตร อาเรย์ ข้ามชีทแล้ว เออเร่อร์

#8

Post by joo »

:Dลองแนบไฟล์ที่แสดงค่า Error มาดูกันหน่อยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ปัญหาสูตร อาเรย์ ข้ามชีทแล้ว เออเร่อร์

#9

Post by snasui »

:D Dropdown ที่เลือกในไฟล์แรกเป็นการเลือกจากคอลัมน์ A ของ Database ซึ่งป็นหัวบรรทัด แต่ไฟล์ตัวอย่างที่แนบมาใหม่เป็นการเลือกจากบรรทัดที่ 2 ซึ่งเป็นหัวคอลัมน์ จึงต้องปรับสูตรใหม่

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

หากผมเข้าใจถูกต้อง ความต้องการของคุณคือต้องการค่าที่มากทีสุด 3 ลำดับ โดยให้แสดงชื่อเดือนและค่าจากชีท sales12,13 มีเงื่อนไขว่า หาก C6 ในชีท toppb ตรงกับค่าใด ๆ ในช่วง A2:A57 ของชีท sales12,13 ก็ให้หาค่าที่มากที่สุด 3 ลำดับจากบรรทัดนั้นมาแสดงเรียงจากมากไปหาน้อย

สูตรจึงควรจะเป็น
  1. ที่ C7 คีย์
    =LARGE(INDEX('sales12,13'!$B$2:$M$57,MATCH(toppb!$C$6,'sales12,13'!$A$2:$A$57,0),0),toppb!$A7)
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  2. ที่ B7 คีย์
    =INDEX('sales12,13'!$B$1:$M$1,SMALL(IF(INDEX('sales12,13'!$B$2:$M$57,MATCH(toppb!$C$6,'sales12,13'!$A$2:$A$57,0),0)=toppb!$C7,COLUMN('sales12,13'!$B$1:$M$1)-COLUMN('sales12,13'!$B$1)+1),COUNTIF(toppb!$C$7:C7,C7)))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
สังเกตว่าแม้สูตร Index จะคล้ายกันแต่ไม่เหมือนกันครับ
nopanan
Member
Member
Posts: 93
Joined: Fri May 21, 2010 12:48 am

Re: ปัญหาสูตร อาเรย์ ข้ามชีทแล้ว เออเร่อร์

#10

Post by nopanan »

ขอบคุณครับอาจารย์ ผมอธิบายไม่ชัดเจนเอง แก้ได้แล้วครับ ผิดตรง การใช้ index ข้อมูลต่างกันตรงที่การนำข้อมูลทางคอลัมน์มาแสดงในแถว กับการให้แสดงข้อมูลจากแถวมาแสดงเป็นแถว :cp:
Post Reply