: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
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

หาค่าจากข้อมูล 3 คอลัมน์

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Questioner
Member
Member
Posts: 71
Joined: Mon Jul 22, 2019 2:46 pm
Excel Ver: 2010 2019

หาค่าจากข้อมูล 3 คอลัมน์

#1

Post by Questioner »

เรียน อาจารย์ และผู้รู้ทุกท่านครับ
จากไฟล์ที่แนบมา รบกวนขอสูตรเพื่อให้ได้ค่าที่ต้องการด้วยครับ
ขอบพระคุณมากครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31168
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: หาค่าจากข้อมูล 3 คอลัมน์

#2

Post by snasui »

:D ตัวอย่างสูตรครับ

เซลล์ E3 คีย์

=25*ISNUMBER(MATCH(B3,{"งงง","จจจ","ฉฉฉ","ซซซ"},0))*(C3>=MAXIFS($C$3:$C$28,$A$3:$A$28,A3,$B$3:$B$28,B3))

Enter > Copy ลงด้านล่าง

คำอธิบายสูตร
  1. สูตรเริ่มต้นด้วย =25*... หมายถึง หากเงื่อนไขทั้งหมดเป็นจริง จะให้ผลตอบแทน 25 บาท
  2. MATCH(B3,{"งงง","จจจ","ฉฉฉ","ซซซ"},0) ใช้ตรวจสอบว่าเซลล์ B3 (ประเภทหนี้) อยู่ในกลุ่มที่กำหนดไว้หรือไม่
  3. ISNUMBER(...) ใช้ตรวจสอบผลลัพธ์จาก MATCH ว่าเป็นตัวเลขหรือไม่ ซึ่งหมายถึงพบประเภทหนี้ที่ต้องการ
  4. MAXIFS($C$3:$C$28,$A$3:$A$28,A3,$B$3:$B$28,B3) ใช้หาปีที่มากที่สุด (ปีสุดท้าย) ของชุดหนี้ที่มีรหัสลูกหนี้เดียวกัน (A3) และประเภทหนี้เดียวกัน (B3)
  5. C3>=... ใช้เปรียบเทียบว่า ปีในเซลล์ C3 เป็นปีสุดท้ายของชุดนั้นหรือไม่ และต้องมากกว่าหรือเท่ากับ 2561
  6. การคูณเงื่อนไขทั้งหมดเข้าด้วยกัน (25 * เงื่อนไข1 * เงื่อนไข2) จะให้ผลลัพธ์เป็น 25 เฉพาะเมื่อทุกเงื่อนไขเป็นจริงเท่านั้น
  7. หากเงื่อนไขใดไม่เป็นจริง จะได้ค่าเป็น 0 โดยอัตโนมัติ
Questioner
Member
Member
Posts: 71
Joined: Mon Jul 22, 2019 2:46 pm
Excel Ver: 2010 2019

Re: หาค่าจากข้อมูล 3 คอลัมน์

#3

Post by Questioner »

เรียนอาจารย์ snasui ครับ
สูตรที่ให้มา ได้คำตอบตามต้องการครับ
ขอบพระคุณมากครับ
Questioner
Member
Member
Posts: 71
Joined: Mon Jul 22, 2019 2:46 pm
Excel Ver: 2010 2019

Re: หาค่าจากข้อมูล 3 คอลัมน์

#4

Post by Questioner »

เรียน อาจารย์ snasui ครับ
ถ้าเปลี่ยนโจทย์ เป็นดังตามไฟล์ที่แนบมาใหม่ สูตรในชีตคำตอบ ควรจะเป็นอย่างไรครับ
ขอบพระคุณมากครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31168
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: หาค่าจากข้อมูล 3 คอลัมน์

#5

Post by snasui »

:D ตัวอย่างสูตรที่เซลล์ A4 ครับ

=25*COUNT(UNIQUE(FILTER(ข้อมูล!$A$2:$A$16,(ข้อมูล!$B$2:$B$16=A$3)*(ข้อมูล!$C$2:$C$16>=2565))))

Enter > Copy ไปด้านขวา

คำอธิบายสูตร
  1. ใช้ฟังก์ชัน FILTER เพื่อกรองข้อมูลจากช่วง A2:A16 โดยมีเงื่อนไขว่า:
    - คอลัมน์ B (ข้อมูล!$B$2:$B$16) ต้องตรงกับค่าที่อยู่ในเซลล์ A3
    - และคอลัมน์ C (ข้อมูล!$C$2:$C$16) ต้องมีค่ามากกว่าหรือเท่ากับ 2565
  2. จากผลลัพธ์ที่กรองได้ นำไปใช้กับฟังก์ชัน UNIQUE เพื่อคัดเฉพาะค่าที่ไม่ซ้ำกัน
  3. นับจำนวนค่าที่ไม่ซ้ำด้วยฟังก์ชัน COUNT
  4. คูณผลลัพธ์ที่ได้ด้วย 25 เพื่อคำนวณเป็นผลตอบแทนหรือคะแนนตามเงื่อนไข
Questioner
Member
Member
Posts: 71
Joined: Mon Jul 22, 2019 2:46 pm
Excel Ver: 2010 2019

Re: หาค่าจากข้อมูล 3 คอลัมน์

#6

Post by Questioner »

เรียน อาจารย์ snasui ครับ
โจทย์ที่ผมมีคือ ถ้านาย X เร่งรัดหนี้ที่เกิดตั้งแต่ปี 2565 ลงไป จะได้รับผลตอบแทนเพิ่ม
ผมลองเปลี่ยนจาก >= ในสูตรที่อาจารย์ให้มาเป็น <= แล้วได้คำตอบตามต้องการครับ
ต้องขอโทษด้วยครับถ้าสื่อสารไม่ชัดเจน

ขอความกรุณาอาจารย์เพิ่มเติมครับ ในกรณีที่ใช้ Excel เวอร์ชั่นต่ำกว่า 2021 ที่ไม่มีฟังก์ชัน FILTER และ UNIQUE ต้องปรับสูตรเป็นอย่างไรครับ
ขอบพระคุณมากครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31168
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: หาค่าจากข้อมูล 3 คอลัมน์

#7

Post by snasui »

Questioner wrote: Fri Oct 24, 2025 10:36 am โจทย์ที่ผมมีคือ ถ้านาย X เร่งรัดหนี้ที่เกิดตั้งแต่ปี 2565 ลงไป
:D สิ่งที่ผมเขียนไว้ตอบโจทย์นี้ไว้เรียบร้อยแล้ว ลองเปิดด้วย Version 2021 ดู และหากยังไม่ได้คำตอบลองแนบไฟล์น้้นกลับมาพร้อมข้อผิดพลาดที่พบด้วยครับ

หากหมายถึงเป็นหนี้ก่อนและไม่เกินปี 2565 การเปลี่ยนจาก >= เป็น <= ถือเป็นการเปลี่ยนที่ถูกต้องและควรใช้ได้แล้วครับ

สำหรับการทำงานด้วย Version ที่ต่ำกว่านั้นเป็นสูตรที่ซับซ้อน เพื่อความกระชับจึงตอบด้วย Version 2021 ที่คุณมีใช้อยู่ด้วยเช่นกัน หากไม่มี 2021 ใช้ใน Update Profile ใหม่ หากมีเวลาผมจะลองหาคำตอบด้วย Version ที่ต่ำกว่าให้ครับ
Questioner
Member
Member
Posts: 71
Joined: Mon Jul 22, 2019 2:46 pm
Excel Ver: 2010 2019

Re: หาค่าจากข้อมูล 3 คอลัมน์

#8

Post by Questioner »

ขอขอบพระคุณอาจารย์ snasui เป็นอย่างสูงครับ
จะนำสูตรที่อาจารย์ให้มาไปปรับใช้กับข้อมูลจริงครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31168
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: หาค่าจากข้อมูล 3 คอลัมน์

#9

Post by snasui »

:D ตัวอย่างสูตรใน Version เก่า ๆ ครับ

เซลล์ A4 คีย์

=25*COUNT(1/FREQUENCY(IF(ข้อมูล!$B$2:$B$16=A$3,IF(ข้อมูล!$C$2:$C$16<=2565,MATCH(ข้อมูล!$A$2:$A$16,ข้อมูล!$A$2:$A$16,0))),ROW(ข้อมูล!$A$2:$A$16)-ROW(ข้อมูล!$A$2)+1))

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

อธิบายสูตร
  1. ตรวจสอบว่าแต่ละแถวในช่วงข้อมูล!$B$2:$B$16 มีค่าเท่ากับ A$3 (เช่น ประเภทหนี้ที่ต้องการ)
  2. ตรวจสอบว่าแต่ละแถวในช่วงข้อมูล!$C$2:$C$16 มีค่าปีน้อยกว่าหรือเท่ากับ 2565
  3. หากทั้งสองเงื่อนไขเป็นจริง ให้ใช้ MATCH เพื่อหาตำแหน่งของข้อมูล!$A$2:$A$16 ภายในช่วงเดียวกัน เพื่อสร้างตัวเลขเฉพาะสำหรับแต่ละชื่อ (ใช้สำหรับการนับแบบไม่ซ้ำ)
  4. ใช้ ROW(ข้อมูล!$A$2:$A$16)-ROW(ข้อมูล!$A$2)+1 เพื่อสร้าง array ของตำแหน่งแถวสำหรับใช้เป็น bin ในฟังก์ชัน FREQUENCY
  5. ใช้ FREQUENCY เพื่อจัดกลุ่มค่าที่ไม่ซ้ำตาม bin ที่กำหนด
  6. ใช้ 1/FREQUENCY(...) เพื่อสร้าง array ที่มีค่า 1 สำหรับค่าที่ไม่ซ้ำ และ error สำหรับค่าที่ซ้ำ
  7. ใช้ COUNT(...) เพื่อนับจำนวนค่าที่ไม่ซ้ำจาก array ที่ได้
  8. คูณผลลัพธ์ด้วย 25 เพื่อแปลงเป็นผลตอบแทนตามโจทย์
Questioner
Member
Member
Posts: 71
Joined: Mon Jul 22, 2019 2:46 pm
Excel Ver: 2010 2019

Re: หาค่าจากข้อมูล 3 คอลัมน์

#10

Post by Questioner »

ขอขอบพระคุณอาจารย์ snasui เป็นอย่างสูงอีกครั้งครับ
สูตรที่ให้มาให้คำตอบถูกต้องตามต้องการครับ
(เพื่อนร่วมงานบางท่านใช้ Excel เวอร์ชั่นต่ำกว่า 2021 จึงจำเป็นต้องใช้สูตรนี้ครับ)
Post Reply