: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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
kritsada_ie
Member
Member
Posts: 7
Joined: Sat May 05, 2012 7:40 am

สอบถามเรื่องการดึงข้อมูลครับ

#1

Post by kritsada_ie »

จากไฟล์ที่แนบผมต้องการชีท Employee Work Report ดึงข้อมูลมาจากชีท Employee Work โดยมีเงื่อนไขอยู่ที่ชื่อของ Cell B1 ที่ชีท Employee Work Report ต้องเหมือนกับค่าใน Column A ชีท Employee Work และช่วงเวลาอยู่ระหว่าง Cell F1 และ G1 ผมลองหาดูโค้ดแล้วแต่ผมไม่ค่อยจะรู้เรื่องเลยเอามาประยุกต์ไม่ค่อยได้ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: สอบถามเรื่องการดึงข้อมูลครับ

#2

Post by bank9597 »

:D ลองตามนี้
ที่ A5 ชีท Employee Work Report คีย์
=IF(ROWS($A$5:A5)>COUNTIF('Employee Work'!$A$5:$A$100,$B$1),"",INDEX('Employee Work'!B$5:B$100,SMALL(IF('Employee Work'!$A$5:$A$100=$B$1,ROW('Employee Work'!$B$5:$B$100)-ROW('Employee Work'!$B$5)+1),ROWS($A$5:A5))))

กด Ctrl+Shift+Enter คัดลอกไปทางขวามือ แล้วคัดลอกลงล่างพร้อมกัน
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
kritsada_ie
Member
Member
Posts: 7
Joined: Sat May 05, 2012 7:40 am

Re: สอบถามเรื่องการดึงข้อมูลครับ

#3

Post by kritsada_ie »

ขอบคุณ คุณ bank9597 มากครับ แต่มีเรื่องรบกวนอีกนิดคือรู้สึกว่ามันยังไม่ได้กรองในเรื่องของวันที่อ่ะครับ คือผมต้องการให้มันเลือกมาเฉพาะในระหว่างวันที่ผมใส่ไว้ใน Cell F1 ถึง G1 อ่ะครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: สอบถามเรื่องการดึงข้อมูลครับ

#4

Post by bank9597 »

:tt: ขออภัยครับ ผมยังอ่านโจทย์ไม่หมด

การจะทำแบบดังกล่าว อาจจะต้องมีการเพิ่มเซลล์ช่วยอีก หรือใช้สูตรที่ยากมากครับ ต้องขอดูก่อนครับ :D
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
kritsada_ie
Member
Member
Posts: 7
Joined: Sat May 05, 2012 7:40 am

Re: สอบถามเรื่องการดึงข้อมูลครับ

#5

Post by kritsada_ie »

ขอบคุณล่วงหน้าครับ... :)
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: สอบถามเรื่องการดึงข้อมูลครับ

#6

Post by bank9597 »

:D พยายามคิดสูตรรวบรัดในสูตรเดียว แต่มันยากเกินไปครับ ลองดูตามนี้
ที่ชีท Employee Work เซลล์ I5 คีย์ =IF(A5='Employee Work Report'!$B$1,IF(B5>='Employee Work Report'!$F$1,IF(B5<='Employee Work Report'!$G$1,TRUE,FALSE))) คัดลอกลงมาจนสุดแถว

ที่ชีท Employee Work Report เซลล์ A5 คีย์ =IF(ROWS($A$5:A5)>COUNTIF('Employee Work'!$I$5:$I$100,TRUE),"",INDEX('Employee Work'!B$5:B$100,SMALL(IF('Employee Work'!$I$5:$I$100=TRUE,ROW('Employee Work'!$B$5:$B$100)-ROW('Employee Work'!$B$5)+1),ROWS($A$5:A5))))

กด Ctrl+Shift+Enter คัดลอกไปทางขวามือ แล้วลงล่างพร้อมกันครับ
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
kritsada_ie
Member
Member
Posts: 7
Joined: Sat May 05, 2012 7:40 am

Re: สอบถามเรื่องการดึงข้อมูลครับ

#7

Post by kritsada_ie »

ขอบคุณมากๆครับ ...ได้แล้วครับ :P :P
User avatar
snasui
Site Admin
Site Admin
Posts: 31177
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามเรื่องการดึงข้อมูลครับ

#8

Post by snasui »

:D สามารถลดสูตรที่ชีท Employee Work โดยที่ชีท Employee Work Report เขียนสูตรตามด้านล่างครับ
  1. เซลล์ H1 คีย์
    =SUMPRODUCT(--(B1='Employee Work'!A5:A37),--(F1<='Employee Work'!B5:B37),--(G1>='Employee Work'!B5:B37))
    Enter
  2. เซลล์ A5 คีย์สูตรเพื่อแสดงรายการ
    =IF(ROWS(A$5:A5)>$H$1,"",INDEX('Employee Work'!$B$5:$B$37,SMALL(IF($B$1='Employee Work'!A5:A37,IF($F$1<='Employee Work'!B5:B37,IF($G$1>='Employee Work'!B5:B37,ROW('Employee Work'!$A$5:$A$37)-ROW('Employee Work'!$A$5)+1))),ROWS(A$5:A5))))
    Enter > Copy ไปด้านขวาและลงด้านล่าง
Note: ปรับช่วงข้อมูลในสูตรให้ตรงตามช่วงข้อมูลจริง
kritsada_ie
Member
Member
Posts: 7
Joined: Sat May 05, 2012 7:40 am

รบกวนช่วยดูสูตรให้หน่อยครับ

#9

Post by kritsada_ie »

ที่เอกสารหน้า รับ-จ่าย Report ผมต้องการดึงข้อมูลจากหน้า รับ-จ่าย มาโดยมีเงื่อนอยู่ที่สาขา (Q6) และวันที่ (Q3 & S3) แต่ผมเขียนสูตรแล้วมันมาแต่บรรทัดบนอย่างเดียว บรรทัดต่อๆไปมันไม่ขึ้น ไม่ทราบว่าเป็นเพราะอะไรครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31177
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามเรื่องการดึงข้อมูลครับ

#10

Post by snasui »

:lol: ที่ไม่ได้ผลลัพธ์ตามต้องการเนื่องการกดแป้นให้รับสูตรไม่ถูกต้องครับ

การกดแป้นให้รับสูตรจะต้องกด 3 แป้น คือ Ctrl+Shift+Enter หากกดแป้นถูกต้องจะเห็นเครื่องหมายปีกกาคร่อมสูตร ปีกกานี้จะคีย์เข้าไปเองไม่ได้ นอกจากนี้การเลือกช่วงข้อมูลในสูตรไม่ควรเลือกเผื่อไว้จนเกินความจำเป็น ให้เลือกเท่าที่มีข้อมูลเพื่อให้คำนวณเร็วขึ้น
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: สอบถามเรื่องการดึงข้อมูลครับ

#11

Post by bank9597 »

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

ที่ ชีท รับ-จ่าย Report เซลล์ N1 คีย์ =SUMPRODUCT(--(Q6='รับ-จ่าย'!$L$2:$L$100),--(Q3<='รับ-จ่าย'!$B$2:$B$100),--(S3>='รับ-จ่าย'!$B$2:$B$100))

เซลล์ B2 คีย์=IF(ROWS(B$2:B2)>$N$1,"",INDEX('รับ-จ่าย'!B$2:B$100,SMALL(IF($Q$6='รับ-จ่าย'!$L$2:$L$100,IF($Q$3<='รับ-จ่าย'!$B$2:$B$100,IF($S$3>='รับ-จ่าย'!$B$2:$B$100,ROW('รับ-จ่าย'!$L$2:$L$100)-ROW('รับ-จ่าย'!$L$2)+1))),ROWS(B$2:B2))))

กด Ctrl+Shift+Enter ลากไปทางขวามือแล้วลงล่างพร้อมกัน

Note : สูตรลักษณะนี้เมื่อใช้ดึงข้อมูลจำนวนมาก ทำให้การคำควณช้าเนื่องจากเป็นสูตรอาร์เรย์
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
Post Reply