Page 1 of 1

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

Posted: Tue Oct 21, 2025 3:36 pm
by Questioner
เรียน อาจารย์ และผู้รู้ทุกท่านครับ
จากไฟล์ที่แนบมา รบกวนขอสูตรเพื่อให้ได้ค่าที่ต้องการด้วยครับ
ขอบพระคุณมากครับ

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

Posted: Tue Oct 21, 2025 4:52 pm
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 โดยอัตโนมัติ

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

Posted: Wed Oct 22, 2025 1:41 pm
by Questioner
เรียนอาจารย์ snasui ครับ
สูตรที่ให้มา ได้คำตอบตามต้องการครับ
ขอบพระคุณมากครับ

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

Posted: Wed Oct 22, 2025 3:07 pm
by Questioner
เรียน อาจารย์ snasui ครับ
ถ้าเปลี่ยนโจทย์ เป็นดังตามไฟล์ที่แนบมาใหม่ สูตรในชีตคำตอบ ควรจะเป็นอย่างไรครับ
ขอบพระคุณมากครับ

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

Posted: Wed Oct 22, 2025 4:13 pm
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 เพื่อคำนวณเป็นผลตอบแทนหรือคะแนนตามเงื่อนไข

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

Posted: Fri Oct 24, 2025 10:36 am
by Questioner
เรียน อาจารย์ snasui ครับ
โจทย์ที่ผมมีคือ ถ้านาย X เร่งรัดหนี้ที่เกิดตั้งแต่ปี 2565 ลงไป จะได้รับผลตอบแทนเพิ่ม
ผมลองเปลี่ยนจาก >= ในสูตรที่อาจารย์ให้มาเป็น <= แล้วได้คำตอบตามต้องการครับ
ต้องขอโทษด้วยครับถ้าสื่อสารไม่ชัดเจน

ขอความกรุณาอาจารย์เพิ่มเติมครับ ในกรณีที่ใช้ Excel เวอร์ชั่นต่ำกว่า 2021 ที่ไม่มีฟังก์ชัน FILTER และ UNIQUE ต้องปรับสูตรเป็นอย่างไรครับ
ขอบพระคุณมากครับ

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

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

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

สำหรับการทำงานด้วย Version ที่ต่ำกว่านั้นเป็นสูตรที่ซับซ้อน เพื่อความกระชับจึงตอบด้วย Version 2021 ที่คุณมีใช้อยู่ด้วยเช่นกัน หากไม่มี 2021 ใช้ใน Update Profile ใหม่ หากมีเวลาผมจะลองหาคำตอบด้วย Version ที่ต่ำกว่าให้ครับ

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

Posted: Fri Oct 24, 2025 1:44 pm
by Questioner
ขอขอบพระคุณอาจารย์ snasui เป็นอย่างสูงครับ
จะนำสูตรที่อาจารย์ให้มาไปปรับใช้กับข้อมูลจริงครับ

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

Posted: Fri Oct 24, 2025 2:41 pm
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 เพื่อแปลงเป็นผลตอบแทนตามโจทย์

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

Posted: Fri Oct 24, 2025 3:03 pm
by Questioner
ขอขอบพระคุณอาจารย์ snasui เป็นอย่างสูงอีกครั้งครับ
สูตรที่ให้มาให้คำตอบถูกต้องตามต้องการครับ
(เพื่อนร่วมงานบางท่านใช้ Excel เวอร์ชั่นต่ำกว่า 2021 จึงจำเป็นต้องใช้สูตรนี้ครับ)