จำเป็นต้องใช้สูตรคณิตศาสตร์เพื่อพิจารณาการอ้างอิงเซลล์


0

ฉันต้องการใช้สูตรนี้ แต่มีการเปลี่ยนแปลงช่วงตามค่าในเซลล์อื่น

SUMPRODUCT(1/COUNTIF(B5:B15,B5:B15)

ตัวอย่างเช่นถ้าแมโครเขียนเป็น:

SUMPRODUCT(1/COUNTIF(B5:B(15-k3),B5:B(15-k3))

ฉันจะส่งผ่านค่า k3 = 2 เพื่อรับ:

SUMPRODUCT(1/COUNTIF(B5:B13,B5:B13)

คุณมีความคิดวิธีการบรรลุเป้าหมายนี้หรือไม่?

คำตอบ:


2

ฉันจะใช้INDEXสิ่งนี้:

=SUMPRODUCT(1/COUNTIF(B5:INDEX(B:B,15-K3),B5:INDEX(B:B,15-K3))

INDEX มักนิยมใช้มากกว่าINDIRECTซึ่งเป็นอีกทางเลือกหนึ่งในการบรรลุเป้าหมาย


ทำไม INDEX ถึงต้องการมากกว่า INDIRECT

1
สองเหตุผล - INDIRECT เป็นฟังก์ชัน "ระเหย" ซึ่งหมายความว่ามันจะคำนวณอีกครั้งทุกครั้งที่มีการคำนวณเวิร์กชีทใหม่ซึ่งอาจทำให้การคำนวณของคุณช้าลง (แม้ว่าจะไม่มีผลกระทบที่สำคัญสำหรับสูตรหนึ่ง) นอกจากนี้หากคุณใช้ INDIRECT คุณต้อง "hardcode" ตัวอักษรคอลัมน์เช่น "B" ซึ่งเป็นปัญหาหากคุณลบหรือเพิ่มคอลัมน์ (OFFSET เป็นอีกทางเลือกหนึ่ง แต่นั่นก็เป็นทางเลือกเช่นกัน)
barry houdini

ฉันเดาว่าฉันสับสนทำไมคุณไม่ต้องการให้ฟังก์ชั่นของคุณเป็นvolatile? หากพวกเขาไม่คำนวณใหม่ทุกครั้งเมื่อไรnon-volatileฟังก์ชันจะคำนวณเมื่อใด

ฟังก์ชั่นที่ระเหยได้คำนวณใหม่แม้ว่าเซลล์ของพวกเขาจะไม่เปลี่ยนแปลงซึ่งแตกต่างจากฟังก์ชั่นที่ไม่เปลี่ยนแปลง ความผันผวนสามารถเพิ่มเวลาการคำนวณของ Excel ได้อย่างมาก
อ่านเพิ่มเติม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.