ฟังก์ชัน Excel OFFSET - ตัวอย่างสูตรและการใช้งาน

  • แบ่งปันสิ่งนี้
Michael Brown

สารบัญ

ในบทช่วยสอนนี้ เราจะอธิบายเกี่ยวกับหนึ่งในผู้อาศัยที่ลึกลับที่สุดในจักรวาลของ Excel นั่นคือฟังก์ชัน OFFSET

OFFSET คืออะไร ในเอ็กเซล? โดยสรุป สูตร OFFSET จะส่งกลับการอ้างอิงไปยังช่วงที่หักล้างจากเซลล์เริ่มต้นหรือช่วงของเซลล์ตามจำนวนแถวและคอลัมน์ที่ระบุ

ฟังก์ชัน OFFSET อาจค่อนข้างยุ่งยากในการรับ ดังนั้น มาดูคำอธิบายทางเทคนิคสั้นๆ ก่อน (ฉันจะทำให้ดีที่สุดเพื่อให้เข้าใจง่าย) จากนั้นเราจะพูดถึงวิธีที่มีประสิทธิภาพที่สุดสองสามวิธีในการใช้ OFFSET ใน Excel

    ฟังก์ชัน OFFSET ของ Excel - ไวยากรณ์และการใช้งานพื้นฐาน

    ฟังก์ชัน OFFSET ใน Excel จะส่งกลับเซลล์หรือช่วงของเซลล์ที่เป็นจำนวนแถวและคอลัมน์ที่กำหนดจากเซลล์หรือช่วงที่กำหนด

    ไวยากรณ์ของฟังก์ชัน OFFSET มีดังนี้:

    OFFSET(reference, rows, cols, [height], [width])

    อาร์กิวเมนต์ 3 ตัวแรกจำเป็นและ 2 ตัวสุดท้ายเป็นตัวเลือก อาร์กิวเมนต์ทั้งหมดสามารถอ้างอิงไปยังเซลล์อื่นหรือผลลัพธ์ที่ส่งคืนโดยสูตรอื่น

    ดูเหมือนว่า Microsoft จะใช้ความพยายามอย่างดีในการใส่ความหมายบางอย่างลงในชื่อของพารามิเตอร์ และพวกเขาให้คำใบ้เกี่ยวกับสิ่งที่คุณ ควรจะระบุในแต่ละข้อ

    อาร์กิวเมนต์ที่จำเป็น:

    • การอ้างอิง - เซลล์หรือช่วงของเซลล์ที่อยู่ติดกันซึ่งคุณใช้เป็นฐานของการชดเชย คุณสามารถคิดว่ามันเป็นจุดเริ่มต้น
    • แถว - จำนวนแถวคอลัมน์ (A):

      =OFFSET(A5:B9, MATCH(B1, OFFSET(A5:B9, 0, 1, ROWS(A5:B9), 1) ,0) -1, 0, 1, 1)

      ฉันรู้ว่าสูตรนี้ดูงุ่มง่ามนิดหน่อย แต่ก็ใช้ได้ :)

      ตัวอย่างที่ 2 วิธีการค้นหาจากด้านบนใน Excel

      เช่นเดียวกับในกรณีที่ VLOOKUP ไม่สามารถมองไปทางซ้ายได้ ฟังก์ชัน HLOOKUP ในแนวนอนไม่สามารถมองขึ้นด้านบนเพื่อส่งกลับค่าได้

      หากคุณต้องการสแกนแถวบนเพื่อหารายการที่ตรงกัน สูตร OFFSET MATCH สามารถช่วยได้อีกครั้ง แต่คราวนี้คุณจะต้องปรับปรุงด้วยฟังก์ชัน COLUMNS เช่น:

      OFFSET( lookup_table , return_row_offset , MATCH( lookup_value , OFFSET( lookup_table , lookup_row_offset , 0, 1, COLUMNS( lookup_table )) , 0) -1, 1, 1)

      ตำแหน่ง:

      • Lookup_row_offset - จำนวนแถวที่จะย้ายจากจุดเริ่มต้นไปยังแถวการค้นหา
      • Return_row_offset - จำนวนแถวที่จะย้ายจากจุดเริ่มต้นไปยังแถวที่กลับ

      สมมติว่าตารางการค้นหาคือ B4:F5 และค่าการค้นหาอยู่ในเซลล์ B1 สูตรจะเป็นดังนี้:

      =OFFSET(B4:F5, 0, MATCH(B1, OFFSET(B4:F5, 1, 0, 1, COLUMNS(B4:F5)), 0) -1, 1, 1)

      ในกรณีของเรา ค่าชดเชยแถวการค้นหาคือ 1 เนื่องจากช่วงการค้นหาของเราอยู่ห่างจากจุดเริ่มต้น 1 แถว ค่าชดเชยแถวกลับเป็น 0 เนื่องจากเรากำลังส่งคืนการจับคู่จากแถวแรกในตาราง

      ตัวอย่างที่ 3 การค้นหาแบบสองทาง (ตามค่าคอลัมน์และแถว)

      การค้นหาแบบสองทางจะส่งกลับค่าตามการจับคู่ทั้งในแถวและคอลัมน์ และคุณสามารถใช้สิ่งต่อไปนี้สูตรอาร์เรย์การค้นหาสองครั้งเพื่อค้นหาค่าที่จุดตัดของแถวและคอลัมน์ที่ต้องการ:

      =OFFSET( ตารางการค้นหา , MATCH( ค่าการค้นหาแถว , OFFSET( ตารางการค้นหา , 0, 0, ROWS( ตารางการค้นหา ), 1), 0) -1, MATCH( ค่าการค้นหาคอลัมน์ , OFFSET( ตารางการค้นหา , 0, 0, 1, COLUMNS( ตารางค้นหา )), 0) -1)

      ระบุว่า:

      • ตารางค้นหาคือ A5:G9
      • ค่าที่จะจับคู่ในแถวอยู่ใน B2
      • ค่าที่จะจับคู่ในคอลัมน์อยู่ใน B1

      คุณจะได้สูตรการค้นหาสองมิติต่อไปนี้:

      =OFFSET(A5:G9, MATCH(B2, OFFSET(A5:G9, 0, 0, ROWS(A5:G9), 1), 0)-1, MATCH(B1, OFFSET(A5:G9, 0, 0, 1, COLUMNS(A5:G9)), 0) -1)

      ไม่ใช่สิ่งที่จำง่ายที่สุดใช่ไหม นอกจากนี้ นี่เป็นสูตรอาร์เรย์ ดังนั้นอย่าลืมกด Ctrl + Shift + Enter เพื่อป้อนอย่างถูกต้อง

      แน่นอนว่าสูตร OFFSET ที่ยาวนี้ไม่ใช่ วิธีเดียวที่เป็นไปได้ในการค้นหาสองครั้งใน Excel คุณจะได้รับผลลัพธ์เดียวกันโดยใช้ VLOOKUP & ฟังก์ชัน MATCH, SUMPRODUCT หรือ INDEX & การแข่งขัน. มีแม้แต่วิธีที่ไม่มีสูตร - เพื่อใช้ช่วงที่มีชื่อและตัวดำเนินการทางแยก (ช่องว่าง) บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ปัญหาทางเลือกทั้งหมดโดยละเอียด: วิธีการค้นหาแบบสองทางใน Excel

      ฟังก์ชัน OFFSET - ข้อจำกัดและทางเลือกต่างๆ

      หวังว่าตัวอย่างสูตรในหน้านี้จะหายไปบ้าง วิธีใช้ OFFSET ใน Excel อย่างไรก็ตาม เพื่อใช้ประโยชน์จากฟังก์ชันในสมุดงานของคุณอย่างมีประสิทธิภาพ คุณไม่ควรเป็นเพียงรู้จุดแข็งของมัน แต่ก็ระวังจุดอ่อนของมันด้วย

      ข้อจำกัดที่สำคัญที่สุดของฟังก์ชัน OFFSET ของ Excel มีดังนี้:

      • เช่นเดียวกับฟังก์ชันผันผวนอื่นๆ OFFSET คือ ฟังก์ชันที่ต้องใช้ทรัพยากรมาก เมื่อใดก็ตามที่มีการเปลี่ยนแปลงในแหล่งข้อมูล สูตร OFFSET ของคุณจะถูกคำนวณใหม่ ทำให้ Excel ไม่ว่างอีกต่อไป นี่ไม่ใช่ปัญหาสำหรับสูตรเดียวในสเปรดชีตขนาดเล็ก แต่ถ้ามีสูตรหลายสิบหรือหลายร้อยสูตรในสมุดงาน Microsoft Excel อาจใช้เวลาในการคำนวณใหม่
      • สูตร OFFSET ของ Excel นั้น ยากต่อการตรวจทาน เนื่องจากการอ้างอิงที่ส่งกลับโดยฟังก์ชัน OFFSET เป็นแบบไดนามิก สูตรขนาดใหญ่ (โดยเฉพาะอย่างยิ่งกับ OFFSET ที่ซ้อนกัน) อาจค่อนข้างยุ่งยากในการแก้ไขจุดบกพร่อง

      ทางเลือกอื่นในการใช้ OFFSET ใน Excel

      ดังที่มักเป็น กรณีใน Excel ผลลัพธ์เดียวกันสามารถทำได้หลายวิธี ดังนั้น ต่อไปนี้คือทางเลือกที่สวยงามอีกสามทางเลือกสำหรับ OFFSET

      1. ตาราง Excel

        ตั้งแต่ Excel 2002 เป็นต้นมา เรามีคุณลักษณะที่ยอดเยี่ยมอย่างแท้จริง - ตาราง Excel ที่ครบถ้วน ซึ่งตรงข้ามกับ ช่วงปกติ หากต้องการสร้างตารางจากข้อมูลที่มีโครงสร้าง คุณเพียงคลิก แทรก > ตาราง บนแท็บ หน้าแรก หรือกด Ctrl + T

        โดยการป้อนสูตรในเซลล์เดียวในตาราง Excel คุณสามารถสร้างสิ่งที่เรียกว่า "คอลัมน์จากการคำนวณ" คัดลอกสูตรไปยังเซลล์อื่นๆ ทั้งหมดในคอลัมน์นั้นโดยอัตโนมัติและปรับค่าสูตรสำหรับแต่ละแถวในตาราง

        ยิ่งไปกว่านั้น สูตรใดๆ ที่อ้างถึงข้อมูลของตารางจะปรับโดยอัตโนมัติเพื่อรวมแถวใหม่ใดๆ ที่คุณเพิ่มลงในตารางหรือไม่รวมแถวที่คุณลบ ในทางเทคนิค สูตรดังกล่าวทำงานในคอลัมน์หรือแถวของตาราง ซึ่งเป็น ช่วงไดนามิก โดยธรรมชาติ แต่ละตารางในสมุดงานมีชื่อที่ไม่ซ้ำกัน (ชื่อเริ่มต้นคือ Table1, Table2 เป็นต้น) และคุณมีอิสระที่จะเปลี่ยนชื่อตารางของคุณผ่านแท็บ การออกแบบ > คุณสมบัติ กลุ่ม > ; ชื่อตาราง กล่องข้อความ

        ภาพหน้าจอต่อไปนี้แสดงสูตร SUM ที่อ้างถึงคอลัมน์ โบนัส ของ Table3 โปรดทราบว่าสูตรประกอบด้วย ชื่อคอลัมน์ ของตาราง แทนที่จะเป็นช่วงของเซลล์

      2. ฟังก์ชัน Excel INDEX

        แม้ว่าจะไม่เหมือนกับ OFFSET ทุกประการ แต่ก็สามารถใช้ Excel INDEX เพื่อสร้างการอ้างอิงช่วงไดนามิกได้ ฟังก์ชัน INDEX ไม่เปลี่ยนแปลง ซึ่งแตกต่างจาก OFFSET ดังนั้นจึงไม่ทำให้ Excel ของคุณช้าลง

      3. ฟังก์ชัน Excel INDIRECT

        การใช้ฟังก์ชัน INDIRECT คุณสามารถสร้างช่วงไดนามิกได้ การอ้างอิงจากหลายแหล่ง เช่น ค่าเซลล์ ค่าเซลล์และข้อความ ช่วงที่ตั้งชื่อ นอกจากนี้ยังสามารถอ้างถึงแผ่นงานหรือสมุดงาน Excel อื่นแบบไดนามิก คุณสามารถดูตัวอย่างสูตรเหล่านี้ได้ในบทช่วยสอนเกี่ยวกับฟังก์ชัน Excel INDIRECT

      คุณจำคำถามที่ถามในตอนต้นของบทช่วยสอนนี้ได้หรือไม่ - OFFSET ใน Excel คืออะไร ฉันหวังว่าตอนนี้คุณคงรู้คำตอบแล้ว :) หากคุณต้องการประสบการณ์จริงเพิ่มเติม โปรดดาวน์โหลดสมุดงานแบบฝึกหัดของเรา (โปรดดูด้านล่าง) ซึ่งมีสูตรทั้งหมดที่กล่าวถึงในนี้ หน้าและทำวิศวกรรมย้อนกลับเพื่อความเข้าใจที่ลึกซึ้งยิ่งขึ้น ขอบคุณที่อ่าน!

      แบบฝึกหัดสำหรับดาวน์โหลด

      ตัวอย่างสูตร OFFSET (ไฟล์ .xlsx)

      เพื่อย้ายจากจุดเริ่มต้นขึ้นหรือลง ถ้าแถวเป็นจำนวนบวก สูตรจะเลื่อนไปใต้การอ้างอิงเริ่มต้น ในกรณีที่เป็นจำนวนลบ สูตรจะอยู่เหนือการอ้างอิงเริ่มต้น
    • Cols - จำนวนคอลัมน์ที่คุณต้องการใช้สูตร เพื่อย้ายจากจุดเริ่มต้น เช่นเดียวกับแถว cols สามารถเป็นค่าบวก (ทางด้านขวาของข้อมูลอ้างอิงเริ่มต้น) หรือค่าลบ (ทางด้านซ้ายของข้อมูลอ้างอิงเริ่มต้น)

    อาร์กิวเมนต์ทางเลือก:

    • ความสูง - จำนวนแถวที่จะส่งคืน
    • ความกว้าง - จำนวนคอลัมน์ที่จะส่งคืน

    ทั้งความสูงและ อาร์กิวเมนต์ความกว้างต้องเป็นจำนวนบวกเสมอ หากละเว้นค่าใดค่าหนึ่ง ค่าดีฟอลต์คือความสูงหรือความกว้างของ reference

    หมายเหตุ OFFSET เป็นฟังก์ชันที่ไม่แน่นอนและอาจทำให้เวิร์กชีตของคุณทำงานช้าลง ความช้าเป็นสัดส่วนโดยตรงกับจำนวนเซลล์ที่คำนวณใหม่

    และตอนนี้ เราจะแสดงทฤษฎีด้วยตัวอย่างสูตร OFFSET ที่ง่ายที่สุด

    ตัวอย่างสูตร OFFSET ของ Excel

    ต่อไปนี้คือตัวอย่างสูตร OFFSET อย่างง่ายที่ส่งกลับการอ้างอิงเซลล์ตามจุดเริ่มต้น แถว และ cols ที่คุณระบุ:

    =OFFSET(A1,3,1)

    สูตรบอกให้ Excel รับเซลล์ A1 เป็น จุดเริ่มต้น (การอ้างอิง) จากนั้นย้าย 3 แถวลง (อาร์กิวเมนต์แถว) และ 1 คอลัมน์ไปทางซ้าย (อาร์กิวเมนต์ cols) ผลลัพธ์ที่ได้ สูตร OFFSET นี้จะส่งกลับค่าในเซลล์ B4

    รูปภาพทางด้านซ้ายแสดงเส้นทางของฟังก์ชันและภาพหน้าจอทางด้านขวาแสดงให้เห็นว่าคุณสามารถใช้สูตร OFFSET กับข้อมูลในชีวิตจริงได้อย่างไร ข้อแตกต่างเพียงอย่างเดียวระหว่างสองสูตรคือ สูตรที่สอง (ด้านขวา) มีการอ้างอิงเซลล์ (E1) ในอาร์กิวเมนต์ของแถว แต่เนื่องจากเซลล์ E1 มีหมายเลข 3 และหมายเลขเดียวกันทุกประการปรากฏในอาร์กิวเมนต์แถวของสูตรแรก ทั้งสองจะส่งคืนผลลัพธ์ที่เหมือนกัน นั่นคือค่าใน B4

    สูตร OFFSET ของ Excel - สิ่งที่ต้องจำ

    • ฟังก์ชัน OFFSET คือ Excel จะไม่ย้ายเซลล์หรือช่วงใดๆ แต่จะส่งคืนค่าอ้างอิงเท่านั้น
    • เมื่อสูตร OFFSET ส่งกลับค่าช่วง ของเซลล์ อาร์กิวเมนต์แถวและ cols จะอ้างอิงถึงเซลล์บนซ้ายใน Rage ที่ส่งคืนเสมอ
    • อาร์กิวเมนต์อ้างอิงต้องมีเซลล์หรือช่วงของเซลล์ที่อยู่ติดกัน มิฉะนั้น สูตรของคุณจะส่งกลับ #VALUE! ข้อผิดพลาด
    • หากแถวและ/หรือ cols ที่ระบุย้ายการอ้างอิงไปที่ขอบของสเปรดชีต สูตร OFFSET ของ Excel จะส่งกลับ #REF! ข้อผิดพลาด
    • สามารถใช้ฟังก์ชัน OFFSET ภายในฟังก์ชัน Excel อื่นๆ ที่ยอมรับการอ้างอิงเซลล์/ช่วงในอาร์กิวเมนต์

    ตัวอย่างเช่น หากคุณพยายามใช้สูตร =OFFSET(A1,3,1,1,3) ด้วยตัวของมันเอง มันจะส่ง #VALUE! ข้อผิดพลาด เนื่องจากช่วงที่จะส่งคืน (1 แถว 3 คอลัมน์) ไม่พอดีกับเซลล์เดียว อย่างไรก็ตาม หากคุณฝังลงในฟังก์ชัน SUM เช่นสิ่งนี้:

    =SUM(OFFSET(A1,3,1,1,3))

    สูตรจะส่งกลับผลรวมของค่าในช่วง 1 แถวคูณ 3 คอลัมน์ นั่นคือ 3 แถวด้านล่างและ 1 คอลัมน์ทางด้านขวาของเซลล์ A1 นั่นคือ ค่าทั้งหมดในเซลล์ B4:D4

    เหตุใดฉันจึงใช้ OFFSET ใน Excel

    เมื่อคุณทราบแล้วว่าฟังก์ชัน OFFSET ทำหน้าที่อะไร คุณอาจ ถามตัวเองว่า "ทำไมต้องใช้มัน" ทำไมไม่เขียนข้อมูลอ้างอิงโดยตรงเช่น B4:D4 ล่ะ

    สูตร OFFSET ของ Excel นั้นดีมากสำหรับ:

    การสร้างช่วงไดนามิก : การอ้างอิงเช่น B1:C4 เป็นแบบคงที่ ซึ่งหมายความว่าจะอ้างอิงถึงช่วงที่กำหนดเสมอ แต่งานบางอย่างทำได้ง่ายกว่าด้วยช่วงไดนามิก โดยเฉพาะอย่างยิ่งเมื่อคุณทำงานกับข้อมูลที่เปลี่ยนแปลง เช่น คุณมีแผ่นงานที่เพิ่มแถวหรือคอลัมน์ใหม่ทุกสัปดาห์

    การรับช่วงจากเซลล์เริ่มต้น บางครั้ง คุณอาจไม่ทราบที่อยู่จริงของช่วง แม้ว่าคุณจะรู้ว่ามันเริ่มต้นจากเซลล์ใดเซลล์หนึ่งก็ตาม ในสถานการณ์เช่นนี้ การใช้ OFFSET ใน Excel เป็นวิธีที่ถูกต้อง

    วิธีใช้ฟังก์ชัน OFFSET ใน Excel - ตัวอย่างสูตร

    ฉันหวังว่าคุณจะไม่เบื่อกับทฤษฎีมากมาย . อย่างไรก็ตาม ตอนนี้เรากำลังเข้าสู่ส่วนที่น่าตื่นเต้นที่สุด นั่นคือการใช้ฟังก์ชัน OFFSET ในทางปฏิบัติ

    ฟังก์ชัน OFFSET และ SUM ของ Excel

    ตัวอย่างที่เราพูดถึงเมื่อสักครู่นี้แสดงให้เห็นถึงการใช้งาน OFFSET & ที่ง่ายที่สุด ; ผลรวม ทีนี้มาดูฟังก์ชั่นเหล่านี้ในมุมอื่นกันบ้างว่ามีอะไรบ้างมิฉะนั้นสามารถทำได้

    ตัวอย่างที่ 1 สูตร SUM / OFFSET แบบไดนามิก

    เมื่อทำงานกับเวิร์กชีตที่อัปเดตอย่างต่อเนื่อง คุณอาจต้องการมีสูตร SUM ที่เลือกแถวที่เพิ่มใหม่ทั้งหมดโดยอัตโนมัติ

    สมมติว่าคุณมีแหล่งข้อมูลคล้ายกับที่คุณเห็นในภาพหน้าจอด้านล่าง ทุก ๆ เดือนจะมีการเพิ่มแถวใหม่เหนือสูตร SUM และแน่นอนว่าคุณต้องการให้รวมไว้ในผลรวม โดยรวมแล้ว มีสองตัวเลือก - อัปเดตช่วงในสูตร SUM ทุกครั้งด้วยตนเองหรือให้สูตร OFFSET ดำเนินการนี้ให้คุณ

    ตั้งแต่เซลล์แรกของ ช่วงที่จะรวมจะถูกระบุโดยตรงในสูตร SUM คุณต้องตัดสินใจเลือกพารามิเตอร์สำหรับฟังก์ชัน OFFSET ของ Excel เท่านั้น ซึ่งจะได้เซลล์สุดท้ายของช่วงนั้น:

    • Reference - เซลล์ มีผลรวม B9 ในกรณีของเรา
    • Rows - เซลล์ทางด้านขวาเหนือผลรวม ซึ่งต้องใช้จำนวนลบ -1
    • Cols - เป็น 0 เพราะคุณไม่ต้องการเปลี่ยนแปลง คอลัมน์

    ดังนั้น นี่คือรูปแบบสูตร SUM / OFFSET:

    =SUM( เซลล์แรก:(OFFSET( เซลล์ที่มียอดรวม, -1,0)

    ปรับแต่งสำหรับตัวอย่างข้างต้น สูตรมีลักษณะดังต่อไปนี้:

    =SUM(B2:(OFFSET(B9, -1, 0)))

    และดังที่แสดงในภาพหน้าจอด้านล่าง มันทำงานได้อย่างไร้ที่ติ:

    ตัวอย่างที่ 2 สูตร OFFSET ของ Excel เพื่อรวม N แถวสุดท้าย

    ในตัวอย่างข้างต้น สมมติว่าคุณต้องการทราบจำนวนโบนัสสำหรับN เดือนที่ผ่านมาแทนที่จะเป็นยอดรวมทั้งหมด นอกจากนี้ คุณต้องการให้สูตรรวมแถวใหม่ที่คุณเพิ่มลงในแผ่นงานโดยอัตโนมัติ

    สำหรับงานนี้ เราจะใช้ Excel OFFSET ร่วมกับฟังก์ชัน SUM และ COUNT / COUNTA:

    =SUM(OFFSET(B1,COUNT(B:B)-E1+1,0,E1,1))

    หรือ

    =SUM(OFFSET(B1,COUNTA(B:B)-E1,0,E1,1))

    รายละเอียดต่อไปนี้จะช่วยให้คุณเข้าใจสูตรได้ดีขึ้น:

    • Reference - ส่วนหัวของคอลัมน์ที่มีค่าที่คุณต้องการรวมเซลล์ B1 ในตัวอย่างนี้
    • Rows - ในการคำนวณจำนวนแถวที่จะหักล้าง คุณใช้ฟังก์ชัน COUNT หรือ COUNTA

      COUNT ส่งคืนจำนวนเซลล์ในคอลัมน์ B ที่มีตัวเลข ซึ่งคุณลบ N เดือนล่าสุด (ตัวเลขคือเซลล์ E1) แล้วบวก 1

      หาก COUNTA เป็นฟังก์ชันที่คุณเลือก คุณไม่จำเป็นต้องบวก 1 เนื่องจากฟังก์ชันนี้จะนับเซลล์ที่ไม่ว่างทั้งหมด และแถวส่วนหัวที่มีค่าข้อความจะเพิ่มเซลล์พิเศษที่สูตรของเราต้องการ โปรดทราบว่าสูตรนี้จะทำงานอย่างถูกต้องเฉพาะในโครงสร้างตารางที่คล้ายกันเท่านั้น - แถวส่วนหัวหนึ่งแถวตามด้วยแถวที่มีตัวเลข สำหรับเค้าโครงตารางต่างๆ คุณอาจต้องทำการปรับเปลี่ยนบางอย่างในสูตร OFFSET/COUNTA

    • Cols - จำนวนคอลัมน์ที่จะชดเชยเป็นศูนย์ (0)
    • Height - จำนวนแถวที่จะรวมระบุไว้ใน E1
    • Width - 1 คอลัมน์

    ใช้ฟังก์ชัน OFFSET กับ AVERAGE, MAX, MIN

    ในลักษณะเดียวกัน เนื่องจากเราคำนวณโบนัสสำหรับ N เดือนที่ผ่านมา คุณสามารถทำได้รับค่าเฉลี่ยของ N วัน สัปดาห์ หรือปีล่าสุด รวมทั้งหาค่าสูงสุดหรือต่ำสุด ข้อแตกต่างเพียงอย่างเดียวระหว่างสูตรคือชื่อของฟังก์ชันแรก:

    =AVERAGE(OFFSET(B1,COUNT(B:B)-E1+1,0,E1,1))

    =MAX(OFFSET(B1,COUNT(B:B)-E1+1,0,E1,1))

    =MIN(OFFSET(B1,COUNT(B:B)-E1+1,0,E1,1))

    คีย์ ประโยชน์ของสูตรเหล่านี้ที่เหนือกว่า AVERAGE(B5:B8) หรือ MAX(B5:B8) ปกติก็คือ คุณจะไม่ต้องอัปเดตสูตรทุกครั้งที่ตารางต้นฉบับของคุณอัปเดต ไม่ว่าจะเพิ่มหรือลบแถวใหม่กี่แถวในเวิร์กชีตของคุณ สูตร OFFSET จะอ้างถึงจำนวนเซลล์สุดท้าย (ล่างสุด) ที่ระบุในคอลัมน์เสมอ

    สูตร OFFSET ของ Excel เพื่อสร้างช่วงไดนามิก

    เมื่อใช้ร่วมกับ COUNTA ฟังก์ชัน OFFSET สามารถช่วยคุณสร้างช่วงไดนามิกที่อาจเป็นประโยชน์ในหลายสถานการณ์ เช่น เพื่อสร้างรายการแบบเลื่อนลงที่สามารถอัปเดตได้โดยอัตโนมัติ

    สูตร OFFSET สำหรับช่วงไดนามิกจะเป็นดังนี้:

    =OFFSET(Sheet_Name!$A$1, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)

    หัวใจของสูตรนี้ ให้คุณใช้ฟังก์ชัน COUNTA เพื่อรับจำนวนเซลล์ที่ไม่ว่างในคอลัมน์เป้าหมาย ตัวเลขนั้นไปที่อาร์กิวเมนต์ความสูงของ OFFSET เพื่อบอกจำนวนแถวที่จะส่งคืน

    นอกเหนือจากนั้น ยังเป็นสูตรปกติของออฟเซ็ต โดยที่:

    • อ้างอิง เป็นจุดเริ่มต้นที่คุณตั้งฐานการชดเชย เช่น Sheet1!$A$1
    • แถว และ Cols เป็น 0 ทั้งคู่ เนื่องจากไม่มีคอลัมน์หรือแถวที่จะหักล้าง<12
    • ความกว้าง คือ 1 คอลัมน์

    หมายเหตุ ถ้าคุณคือการสร้างช่วงไดนามิกในแผ่นงานปัจจุบัน ไม่จำเป็นต้องใส่ชื่อแผ่นงานในการอ้างอิง Excel จะทำให้คุณโดยอัตโนมัติเมื่อสร้างช่วงที่ตั้งชื่อ มิฉะนั้น อย่าลืมใส่ชื่อแผ่นงานตามด้วยเครื่องหมายอัศเจรีย์เหมือนในตัวอย่างสูตรนี้

    เมื่อคุณสร้างช่วงชื่อแบบไดนามิกด้วยสูตร OFFSET ด้านบนแล้ว คุณสามารถใช้การตรวจสอบความถูกต้องของข้อมูลเพื่อสร้างรายการแบบเลื่อนลงแบบไดนามิกที่จะอัปเดตโดยอัตโนมัติทันทีที่คุณเพิ่มหรือลบรายการจากรายการแหล่งที่มา

    สำหรับคำแนะนำทีละขั้นตอนโดยละเอียดเกี่ยวกับการสร้างรายการแบบเลื่อนลงใน Excel โปรดดูบทช่วยสอนต่อไปนี้:

    • การสร้างรายการแบบเลื่อนลง ใน Excel - แบบคงที่ ไดนามิก จากสมุดงานอื่น
    • สร้างรายการแบบเลื่อนลงที่ขึ้นต่อกัน

    OFFSET ของ Excel & VLOOKUP

    อย่างที่ทุกคนทราบ การค้นหาแนวตั้งและแนวนอนอย่างง่ายจะดำเนินการด้วยฟังก์ชัน VLOOKUP หรือ HLOOKUP ตามลำดับ อย่างไรก็ตาม ฟังก์ชันเหล่านี้มีข้อจำกัดมากเกินไป และมักจะสะดุดกับสูตรการค้นหาที่มีประสิทธิภาพและซับซ้อนกว่า ดังนั้น เพื่อทำการค้นหาที่ซับซ้อนยิ่งขึ้นในตาราง Excel ของคุณ คุณต้องมองหาทางเลือกอื่นๆ เช่น INDEX, MATCH และ OFFSET

    ตัวอย่างที่ 1 สูตร OFFSET สำหรับ Vlookup ทางซ้ายใน Excel

    หนึ่งในข้อจำกัดที่น่าอับอายที่สุดของฟังก์ชัน VLOOKUP คือไม่สามารถมองไปทางซ้ายได้ หมายความว่า VLOOKUP สามารถคืนค่าเป็นทางขวาของคอลัมน์ค้นหา

    ในตารางค้นหาตัวอย่างของเรา มีสองคอลัมน์ - ชื่อเดือน (คอลัมน์ A) และโบนัส (คอลัมน์ B) หากคุณต้องการรับโบนัสในบางเดือน สูตรง่ายๆ ของ VLOOKUP นี้จะใช้งานได้โดยไม่มีปัญหา:

    =VLOOKUP(B1, A5:B11, 2, FALSE)

    อย่างไรก็ตาม ทันทีที่คุณสลับคอลัมน์ในตารางการค้นหา สูตรนี้ จะส่งผลให้เกิดข้อผิดพลาด #N/A ทันที:

    หากต้องการจัดการการค้นหาด้านซ้าย คุณต้องมีฟังก์ชันที่หลากหลายมากขึ้นโดยไม่สนใจว่าคอลัมน์ส่งคืนจะอยู่ที่ใด . หนึ่งในวิธีแก้ปัญหาที่เป็นไปได้คือการใช้ฟังก์ชัน INDEX และ MATCH ร่วมกัน อีกวิธีหนึ่งคือการใช้ OFFSET, MATCH และ ROWS:

    OFFSET( lookup_table , MATCH( lookup_value , OFFSET( lookup_table , 0, lookup_col_offset , ROWS( lookup_table ), 1) ,0) -1, return_col_offset , 1, 1)

    ที่ไหน:

    • Lookup_col_offset - คือจำนวนคอลัมน์ที่จะย้ายจากจุดเริ่มต้นไปยังคอลัมน์การค้นหา
    • Return_col_offset - คือจำนวนคอลัมน์ที่จะย้ายจากจุดเริ่มต้นไปยังจุดกลับ คอลัมน์.

    ในตัวอย่างของเรา ตารางการค้นหาคือ A5:B9 และค่าการค้นหาอยู่ในเซลล์ B1 ค่าชดเชยคอลัมน์การค้นหาคือ 1 (เนื่องจากเรากำลังค้นหาค่าการค้นหาในคอลัมน์ที่สอง (B ) เราต้องย้าย 1 คอลัมน์ไปทางขวาจากจุดเริ่มต้นของตาราง) ค่าชดเชยคอลัมน์ที่ส่งคืนคือ 0 เนื่องจากเรากำลังส่งคืนค่าจากค่าแรก

    Michael Brown เป็นผู้ที่ชื่นชอบเทคโนโลยีโดยเฉพาะและมีความหลงใหลในการทำให้กระบวนการที่ซับซ้อนง่ายขึ้นโดยใช้เครื่องมือซอฟต์แวร์ ด้วยประสบการณ์กว่าทศวรรษในอุตสาหกรรมเทคโนโลยี เขาได้ฝึกฝนทักษะของเขาใน Microsoft Excel และ Outlook รวมถึง Google ชีตและเอกสาร บล็อกของ Michael ทุ่มเทให้กับการแบ่งปันความรู้และความเชี่ยวชาญของเขากับผู้อื่น โดยให้คำแนะนำและแบบฝึกหัดที่ทำตามได้ง่ายเพื่อปรับปรุงผลิตภาพและประสิทธิภาพ ไม่ว่าคุณจะเป็นมืออาชีพที่ช่ำชองหรือมือใหม่ บล็อกของ Michael นำเสนอข้อมูลเชิงลึกอันมีค่าและคำแนะนำที่เป็นประโยชน์สำหรับการใช้ประโยชน์สูงสุดจากเครื่องมือซอฟต์แวร์ที่จำเป็นเหล่านี้