วิธีที่สั้นที่สุดในการอ้างอิงแถวเดียว / คอลัมน์ของช่วงที่มีชื่อใน Excel?


8

ฉันมีช่วงที่มีชื่อ ( NamedRange1) และฉันต้องการอ้างอิงแถวแรกและคอลัมน์แรกของช่วงนั้นภายในสูตร ฉันมากับสิ่งต่อไปนี้:

  • แถวแรก:

    INDIRECT("R" & ROW(UnpivotSource) & "C" & COLUMN(UnpivotSource) & ":R"& ROWS(UnpivotSource) +ROW(UnpivotSource) -1 & "C" & COLUMN(UnpivotSource),0)

  • คอลัมน์แรก:

    INDIRECT("R" & ROW(UnpivotSource) & "C" & COLUMN(UnpivotSource) & ":R"& ROW(UnpivotSource) & "C" & COLUMNS(UnpivotSource) + COLUMN(UnpivotSource) -1,0)

ดูเหมือนว่าจะยุ่งยากโดยเฉพาะอย่างยิ่งเนื่องจากโมเดลวัตถุของ Excel แสดงในRowsและColumnsVBA มีวิธีรัดกุมกว่าในการแสดงสิ่งนี้หรือไม่?

คำตอบ:


15

แถว:

INDEX(UnpivotSource,1,0)

คอลัมน์:

INDEX(UnpivotSource,0,1)

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


สวยงามใช้งานได้ดีและสั้นกว่า ขอบคุณ!
technomalogical

ภายใต้ประทุนของ xl คุณคิดว่าถ้าฉันใช้เทคนิคนี้สำหรับ Max พูดว่ามันจะมีประสิทธิภาพมากกว่าเช่นMax("A:A")เมื่อเทียบกับMax(index(myNmdRang,0,1))?
ทำไม

@whytheq ฉันเดาว่าสำหรับคอลัมน์ขนาดใหญ่Max("A:A")จะมีประสิทธิภาพมากที่สุด คุณสามารถจับเวลาและทดสอบดูที่นี่: stackoverflow.com/questions/198409/… .
Lance Roberts

@ LanceRoberts ฉันเพิ่มคำถามโดยละเอียดเพิ่มเติมเกี่ยวกับ SO ที่นี่: stackoverflow.com/questions/36197157/คุณอาจต้องการคำตอบเนื่องจากคำตอบปัจจุบันไม่ดีพอ
ทำไม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.