snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
panyaadd
Member
Posts: 22 Joined: Mon Apr 29, 2013 10:04 am
#1
Post
by panyaadd » Fri Jun 07, 2013 4:24 pm
เรียนถามทุกท่าน
ตามเงื่อนไขต้องการหาเลขรหัสสมาชิก 00000034 ว่าสถานะ isstatus ไหนสถานะเป็น Y ให้แสดงออกมา ว่าต้องแก้ไขสูตรยังครับ
ลักษณะสูตร
=IF(ROWS($AW$2:AW2)>COUNTIF($A2:$A$20040,$AU$1),"",INDEX(P$2:P$20040,SMALL(IF($A$2:$A$20040=$AU$1,ROW(P$2:P$20040)-ROW(C$2)+1),ROWS($AW$2:AW2))))
ปล.ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31255 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Fri Jun 07, 2013 5:57 pm
ลองปรับสูตร ที่ AV2 เป็นตามด้านล่างครับ
Code: Select all
=IF(ROWS($AV$2:AV2)>COUNTIFS($A$2:$A$19119,$AU$1,$U$2:$U$19119,"Y"),"",INDEX(U$2:U$19119,SMALL(IF($U$2:$U$19119="Y",IF($A$2:$A$19119=$AU$1,ROW(U$2:U$19119)-ROW(B$2)+1)),ROWS($AV$2:AV2))))Ctrl+Shift+Enter > ปรับใช้กับเซลล์อื่น ๆ
panyaadd
Member
Posts: 22 Joined: Mon Apr 29, 2013 10:04 am
#3
Post
by panyaadd » Fri Jun 07, 2013 8:48 pm
ขอบคุณครับอาจารย์
panyaadd
Member
Posts: 22 Joined: Mon Apr 29, 2013 10:04 am
#4
Post
by panyaadd » Mon Jun 10, 2013 2:42 pm
อาจารย์ครับ สูตรที่เรากดล็อกไว้โดย F4 ไม่ล็อกข้อมูลให้ครับ
เช่น =IF(ROWS($I$2:I2)>COUNTIF($A$2:$A$20002,$I$1),"",INDEX($B$2:$B$20000,SMALL(IF($A$2:$A$20000=$I$1,ROW($B$2:$B$20002)-ROW($C$2)+1),ROWS($I$2:I2))))
ก็จะกลายเป็น=IF(ROWS($I$2:I2)>COUNTIF($A$4:$A$20002,$I$1),"",INDEX($B$5:$B$20002,SMALL(IF($A$4:$A$20002=$I$1,ROW($B$5:$B$20002)-ROW($C$5)+1),ROWS($I$2:I2))))
จะเพิ่มขึ้นเองที่เรา ฟื้นฟูข้อมูลครับ
snasui
Site Admin
Posts: 31255 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#5
Post
by snasui » Mon Jun 10, 2013 2:59 pm
แนบไฟล์
ตัวอย่าง มาดูครับ
panyaadd
Member
Posts: 22 Joined: Mon Apr 29, 2013 10:04 am
#6
Post
by panyaadd » Mon Jun 10, 2013 3:19 pm
snasui wrote: แนบไฟล์
ตัวอย่าง มาดูครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31255 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#7
Post
by snasui » Mon Jun 10, 2013 3:25 pm
ช่วยอธิบายว่า Data มาจากไหนและเหตุใดจึงต้องกดฟื้นฟู (เข้าใจว่าคือ Refresh) และเมือกดแล้วบรรทัดข้อมูลเปลี่ยนไปจากเดิมหรือไม่ ถ้าเปลี่ยนบรรทัดเดิมถูกแทรกลงไปด้านล่างหรือไม่
ถ้าแทรกก็ไม่ต้องสงสัยว่าเหตุใดสูตรจึงเปลี่ยนไปได้ ครับ
panyaadd
Member
Posts: 22 Joined: Mon Apr 29, 2013 10:04 am
#8
Post
by panyaadd » Mon Jun 10, 2013 3:30 pm
snasui wrote: ช่วยอธิบายว่า Data มาจากไหนและเหตุใดจึงต้องกดฟื้นฟู (เข้าใจว่าคือ Refresh) และเมือกดแล้วบรรทัดข้อมูลเปลี่ยนไปจากเดิมหรือไม่ ถ้าเปลี่ยนบรรทัดเดิมถูกแทรกลงไปด้านล่างหรือไม่
ถ้าแทรกก็ไม่ต้องสงสัยว่าเหตุใดสูตรจึงเปลี่ยนไปได้ ครับ
- DATA มาจากโปรแกรมที่สำเร็จรูปที่เก็บเป็น .DBF ด้วยการเชื่อมต่อผ่านทาง ODBC
- มีการบันทึกข้อมูลเข้าไปจึงทำให้ข้อมูลเพิ่มขึ้นครับ ถึงได้กดฟื้นฟูข้อมูลครับ
- ถ้าเป็นอย่างที่อาจารย์เข้าใจมีวิธีแก้ไขยังไงบ้างครับ
snasui
Site Admin
Posts: 31255 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#9
Post
by snasui » Mon Jun 10, 2013 3:51 pm
ลองปรับสูตรเป็นตามด้านล่างและปรับใช้กับเซลล์อื่น ๆ ที่เกียวข้องครับ
Code: Select all
=IF(ROWS($AV$2:AV2)>COUNTIFS(Table_Query_from_Visual_FoxPro_Database2[memberid],$AU$1,Table_Query_from_Visual_FoxPro_Database2[isstatus],"Y"),"",INDEX(Table_Query_from_Visual_FoxPro_Database2[isstatus],SMALL(IF(Table_Query_from_Visual_FoxPro_Database2[isstatus]="Y",IF(Table_Query_from_Visual_FoxPro_Database2[memberid]=$AU$1,ROW(Table_Query_from_Visual_FoxPro_Database2[memberid])-MIN(ROW(Table_Query_from_Visual_FoxPro_Database2[memberid]))+1)),ROWS($AV$2:AV2))))
panyaadd
Member
Posts: 22 Joined: Mon Apr 29, 2013 10:04 am
#10
Post
by panyaadd » Mon Jun 10, 2013 3:58 pm
snasui wrote: ลองปรับสูตรเป็นตามด้านล่างและปรับใช้กับเซลล์อื่น ๆ ที่เกียวข้องครับ
Code: Select all
=IF(ROWS($AV$2:AV2)>COUNTIFS(Table_Query_from_Visual_FoxPro_Database2[memberid],$AU$1,Table_Query_from_Visual_FoxPro_Database2[isstatus],"Y"),"",INDEX(Table_Query_from_Visual_FoxPro_Database2[isstatus],SMALL(IF(Table_Query_from_Visual_FoxPro_Database2[isstatus]="Y",IF(Table_Query_from_Visual_FoxPro_Database2[memberid]=$AU$1,ROW(Table_Query_from_Visual_FoxPro_Database2[memberid])-MIN(ROW(Table_Query_from_Visual_FoxPro_Database2[memberid]))+1)),ROWS($AV$2:AV2))))
ขอบคุณอาจารย์มาก ๆ ครับใช่ได้ดีครับ