สารบัญ
ตัวแปร (เช่น ราคาสินค้าโภคภัณฑ์ หุ้น อัตราดอกเบี้ย ฯลฯ) ที่ขึ้นอยู่กับวันที่ทำให้คนทั่วไปตื่นตระหนก เนื่องจากราคาขึ้นอยู่กับวันที่ INDEX MATCH ช่วงวันที่ของเกณฑ์หลายรายการสามารถแยกราคาจากช่วงวันที่ที่กำหนดได้
สมมติว่าเรามีผลิตภัณฑ์บางอย่างที่ราคาคงที่ในช่วงระยะเวลาหนึ่ง และเราต้องการ จับคู่ดัชนี ราคาสำหรับเกณฑ์ที่กำหนด
ในบทความนี้ เราใช้หลายฟังก์ชันเพื่อ จับคู่ดัชนี ช่วงวันที่หลายเกณฑ์
ดาวน์โหลดสมุดงาน Excel
ช่วงวันที่หลายเกณฑ์.xlsx
3 วิธีง่ายๆ ในการใช้ INDEX MATCH สำหรับหลายเกณฑ์ของช่วงวันที่
วิธีที่ 1: การใช้ฟังก์ชัน INDEX MATCH สำหรับหลายเกณฑ์ของช่วงวันที่
เราต้องการ เพื่อแยกราคาสำหรับผลิตภัณฑ์บางอย่างในวันที่กำหนด สมมติว่าเราต้องการดูราคาของ ไอศกรีม ในวันที่ 02-10-22 ( เดือน-วัน-ปี ) หากวันที่ที่ระบุอยู่ระหว่างช่วงเวลาที่เสนอ เราจะแยกราคาในเซลล์ว่างใดก็ได้
ขั้นตอน: แทรกสูตรต่อไปนี้ในเซลล์ว่างใดๆ (เช่น I5 ). เป็นสูตรในสูตรอาร์เรย์ กด CTRL+SHIFT+ENTER เพื่อนำไปใช้ สูตรจะส่งกลับราคา ผลิตภัณฑ์ ทันที หากอยู่ในช่วงระยะเวลาที่กำหนด (เช่น ช่วง วันที่ ) ตามที่แสดงด้านล่าง
=INDEX($E$5:$E$16,MATCH(1,(($B$5:$B$16=G5)*($D$5:$D$16>=H5)*($C$5:$C$16<=H5)),0))
🔄 สูตรชันสูตร:ฟังก์ชัน
Excel INDEX ค้นหาค่าของตำแหน่งที่กำหนดภายในช่วงที่กำหนด ในกรณีของเรา เราใช้ฟังก์ชัน MATCH ที่เหนี่ยวนำด้วยฟังก์ชัน INDEX ฟังก์ชัน MATCH จะส่งผลลัพธ์เป็น หมายเลขแถว สำหรับรายการที่ตรงตามเกณฑ์ที่กำหนด ไวยากรณ์ของฟังก์ชัน INDEX คือ
INDEX(array, row_num, [col_num])
ในสูตร $E$5$E$16 อ้างถึง อาร์กิวเมนต์ อาร์เรย์ ภายในฟังก์ชัน MATCH $B$5:$B$16=G5
, $D$5:$D$16>=H5
และ $C$5:$C$16<=H5
ประกาศเกณฑ์ เพื่อให้ระบุตัวตนได้ดีขึ้น เรากำหนดสีให้แต่ละช่วงเป็นรูปสี่เหลี่ยมผืนผ้า
ฟังก์ชัน MATCH หาตำแหน่งของค่าที่กำหนดภายใน แถว คอลัมน์ หรือตาราง ดังที่เรากล่าวไว้ก่อนหน้านี้ ส่วน MATCH จะผ่านหมายเลขแถวสำหรับฟังก์ชัน INDEX ไวยากรณ์ของฟังก์ชัน MATCH คือ
MATCH (lookup_value, lookup_array, [match_type])
ส่วน MATCH คือ
<8 =MATCH(1,(($B$5:$B$16=G5)*($D$5:$D$16>=H5)*($C$5:$C$16<=H5)),0)
ส่วน MATCH กำหนด 1 เป็น lookup_value , ($B$5:$B$16=G5)*($D$5:$D$16>=H5)*($C$5:$C$16<=H5)
เป็น lookup_array และ 0 ประกาศว่า [match_type] เป็นการจับคู่แบบตรงทั้งหมด
สูตร MATCH ที่ใช้จะส่งกลับ 3 ตามที่พบ ไอศกรีม ในแถวหมายเลข 3 .
ในกรณี เรามีผลิตภัณฑ์หลายรายการเพื่อแยกราคาจาก ชุดข้อมูล มีลักษณะเหมือนภาพต่อไปนี้
สูตรรวม INDEX MATCH ดึงข้อมูล ราคา เมื่อ ของมันข้อโต้แย้งที่เป็นไปตามเกณฑ์ มิฉะนั้นจะส่งผลให้เกิดข้อผิดพลาด #N/A ดังที่แสดงในภาพหน้าจอด้านบน
อ่านเพิ่มเติม: VBA INDEX MATCH ขึ้นอยู่กับเกณฑ์หลายรายการใน Excel ( 3 วิธี)
วิธีที่ 2: ฟังก์ชัน XLOOKUP เพื่อจัดการกับหลายเกณฑ์
คล้ายกับ วิธีที่ 1 เราสามารถใช้ <ฟังก์ชัน 1>XLOOKUP (ใช้ได้เฉพาะใน Excel 365 ) ถึง INDEX MATCH ช่วงวันที่หลายเกณฑ์ ไวยากรณ์ของฟังก์ชัน XLOOKUP คือ
XLOOKUP (lookup, lookup_array, return_array, [not_found], [match_mode], [search_mode])
ขั้นตอน: ใช้สูตรด้านล่างในเซลล์ I5 จากนั้นกด ENTER .
=XLOOKUP(1,(H5>=$C$5:$C$16)*(H5<=$D$5:$D$16)*($B$5:$B$16=G5),$E$5:$E$16,"NotFound")
สูตร XLOOKUP จะคืนค่าราคาที่ตรงตามเกณฑ์ที่กำหนด (เช่น ผลิตภัณฑ์ และ วันที่ ) ตามที่แสดงในภาพด้านบน
🔄 การชันสูตรพลิกศพ:
การ XLOOKUP กำหนดให้ 1 เป็นอาร์กิวเมนต์ การค้นหา (H5>=$C$5:$C$16)*(H5<=$D$5:$D$16)*($B$5:$B$16=G5)
เป็น lookup_array, $E$5:$E$16 เป็น return_array นอกจากนี้ สูตรยังแสดงข้อความ ไม่พบ ในกรณีที่รายการไม่อยู่ในช่วงวันที่ เราระบุเกณฑ์ที่กำหนดในสี่เหลี่ยมสีตามที่แสดงในรูปภาพต่อไปนี้
➤ สำหรับผลิตภัณฑ์ หลายรายการ คุณสามารถใช้สูตร XLOOKUP และแยกราคาเมื่อเป็นไปตามเกณฑ์ที่กำหนด นอกจากนี้ สูตรจะแสดง ไม่พบ หากเกณฑ์วันที่ที่ระบุไม่ขยายภายในวันที่ที่กำหนดช่วง
คุณสามารถเพิ่มเกณฑ์มากกว่าที่ใช้ในสูตร เพื่อให้สถานการณ์ที่เรียบง่ายและชัดเจน จึงมีการใช้เกณฑ์ขั้นต่ำ
อ่านเพิ่มเติม: XLOOKUP พร้อมหลายเกณฑ์ใน Excel (4 วิธีง่ายๆ)
วิธีที่ 3: ฟังก์ชัน INDEX และ AGGREGATE เพื่อแยกราคาที่ผันผวนจากช่วงวันที่
ราคาผลิตภัณฑ์บางอย่าง (เช่น น้ำมันดิบ สกุลเงิน ฯลฯ) มีความผันผวนมากจนผันผวน หลายสัปดาห์หรือหลายวัน เรามีราคาของผลิตภัณฑ์บางอย่างในช่วงเวลาหนึ่งสัปดาห์ เราต้องการค้นหาราคาสำหรับวันที่กำหนด ในการหาราคาสำหรับช่วงวันที่ที่กำหนด เราสามารถใช้ฟังก์ชัน INDEX AGGREGATE แบบรวม ไวยากรณ์ของฟังก์ชัน AGGREGATE คือ
AGGREGATE (function_num, options, ref1, ref2)
ขั้นตอน: พิมพ์สูตรต่อไปนี้ในเซลล์ว่างใดๆ (เช่น , E8 ).
=IFERROR(INDEX(C$5:C$13,AGGREGATE(15,6, ROW(B$5:B$13)/
((B$5:B$13>=F$4)*(B$5:B$13<=F$5))-ROW(B$5)+1,ROWS(E$8:E8))),"")
ราคา ที่ 1 ของวันที่ผลิตภัณฑ์บางรายการ 02-15-22 ถึง 02-25-22 คือ $0.84 อาจมีราคา ที่ 2 หรือ ที่ 3 แต่ในตอนแรก เรายึดที่ราคา ที่ 1
🔄 Formula Autopsy :
ในสูตร ส่วน =IFERROR(INDEX(C$5:C$13,AGGREGATE(15,6, ROW(B$5:B$13)/
((B$5:B$13>=F$4)*(B$5:B$13<=F$5))-ROW(B$5)+1,ROWS(E$8:E8))),"")
;
AGGREGATE(15,6,ROW(B$5:B$13)/((B$5:B$13>=F$4)*(B$5:B$13<=F$5))-ROW(B$5)+1,ROWS(E$8:E8)))
ระบุหมายเลขแถวให้กับ ดัชนี ฟังก์ชัน C$5:C$13 เป็นอาร์กิวเมนต์ อาร์เรย์ ของฟังก์ชัน INDEX
ภายในสูตร AGGREGATE 3>
(B$5:B$13>=F$4)*(B$5:B$13<=F$5)
ส่งคืน 1 หรือ 0 ขึ้นอยู่กับว่าวันที่ของชุดข้อมูลอยู่ในช่วงหรือไม่
ROW(B$5:B$13)/((B$5:B$13>=F$4)*(B$5:B$13<=F$5))
ส่งคืนอาร์เรย์ของหมายเลขแถวโดยขึ้นอยู่กับเกณฑ์วันที่ที่ตรงตามเงื่อนไข มิฉะนั้น จะส่งผลให้เกิดค่าความผิดพลาด
ROW(B$5:B$13)/((B$5:B$13>=F$4)*(B$5:B$13<=F$5))-ROW(B$5)+1
เป็น ref1 ส่งผลให้อาร์เรย์ของหมายเลขแถวถูกแปลงเป็นหมายเลขดัชนี มิฉะนั้นจะเป็นค่าความผิดพลาด
ROWS(E$8:E8) เป็น ref2 ผลลัพธ์เป็นหมายเลขแถว และเป็นวิธีที่ง่ายในการรับหมายเลขแถวเมื่อคุณใช้สูตรด้านล่าง
ตัวเลข 15 = function_num (เช่น SMALL ), 6 = ตัวเลือก (เช่น ละเว้นค่าความผิดพลาด ). คุณสามารถเลือก function_num จาก 19 ฟังก์ชันต่างๆ และ ตัวเลือก จาก 8 ตัวเลือกต่างๆ
สุดท้าย AGGREGATE(15,6,ROW(B$5:B$13)/((B$5:B$13>=F$4)*(B$5:B$13<=F$5))-ROW(B$5)+1,ROWS(E$8:E8)))
ผ่าน ลำดับที่ หมายเลขดัชนีที่เล็กที่สุดของแถวที่ตรงตามเกณฑ์ที่กำหนด
ในกรณีที่มีข้อผิดพลาดเกิดขึ้น IFERROR(INDEX...),"")
จะละเว้นข้อผิดพลาดทุกประเภท และแปลงเป็นช่องว่าง
➤ ลาก Fill Handle เพื่อดึงราคาที่ตรงกันอื่นๆ ภายในช่วงวันที่ที่เป็นเกณฑ์ และฟังก์ชัน IFERROR จะส่งผลให้เซลล์ว่างหากสูตรพบข้อผิดพลาดใดๆ
อ่านเพิ่มเติม: VLOOKUP with เกณฑ์หลายรายการรวมถึงช่วงวันที่ใน Excel (2 วิธี)
สรุป
ในบทความนี้ เราจะสาธิตหลายวิธีในการ INDEX MATCH ช่วงวันที่หลายเกณฑ์ เราใช้ฟังก์ชันเช่น INDEX , MATCH XLOOKUP และ AGGREGATE เพื่อสร้างสูตรที่มีดัชนีรายการจับคู่ที่เป็นไปตามเกณฑ์ หวังว่าแนวทางที่กล่าวถึงข้างต้นจะช่วยให้คุณจัดการกับสถานการณ์ของคุณได้ แสดงความคิดเห็นหากคุณมีคำถามเพิ่มเติมหรือมีอะไรเพิ่มเติม