อ้างอิงเซลล์ของแถวก่อนหน้าในตารางเดียวกันใน Excel หรือไม่


14

ฉันจะอ้างอิงเซลล์ของ

  • Colorคอลัมน์
  • ในแถวก่อนหน้า
  • ของตารางเดียวกัน

จากเซลล์ของตารางเดียวกัน โดยไม่ต้องอาศัยหมายเลขแถว / คอลัมน์สัมบูรณ์ของแผ่นงานหากเป็นไปได้

ชอบ[[Color],-1]บางสิ่งบางอย่าง ...

คำตอบ:


25

หากคุณต้องการใช้รูปแบบการอ้างอิงที่มีโครงสร้างให้ลอง

=OFFSET([@Colour],-1,0)

คุณสามารถทำได้โดยไม่ต้องใช้การอ้างอิงที่มีโครงสร้าง ตัวอย่างเช่นในแถวที่ 2 ของตาราง (แถวข้อมูลแรก) ให้ป้อน

=D1

... ถ้า "Color" อยู่ในคอลัมน์ D (ปรับให้เข้ากับสถานการณ์ของคุณ) หลังจะเร็วมากในชุดข้อมูลขนาดใหญ่เนื่องจาก Offset () มีความผันผวนและจะคำนวณใหม่เมื่อใดก็ตามที่เซลล์ใด ๆ ในสมุดงานเปลี่ยนแปลง ที่สามารถส่งผลกระทบต่อประสิทธิภาพอย่างมาก


2

ฉันมักจะสร้างคอลัมน์ที่แยกต่างหากในตารางของฉันชื่อ "ฉัน" สำหรับดัชนีซึ่งจะมีหมายเลข 1,2,3,4 ... INDEX([Colour],[@I]-1)แล้วจะได้รับการใช้งานที่คุ้มค่าก่อนหน้านี้

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

OFFSETฟังก์ชั่นการระเหยทำให้สมุดงานขนาดใหญ่ของฉันพังดังนั้นฉันแนะนำให้หลีกเลี่ยงค่าใช้จ่ายทั้งหมด


คุณจะสร้างดัชนีในตารางที่รับข้อมูลใหม่ตลอดเวลาได้อย่างไร ด้วยตนเอง? หรือด้วยสูตร หลังจะจับ 22 ใช่มั้ย
teylyn

@ teylyn ปกติฉันทำเอง สิ่งนี้เป็นสิ่งสำหรับฉันตั้งแต่เมื่อฉันเรียงลำดับดัชนีข้อมูลจะไม่เปลี่ยนแปลง ฉันแน่ใจว่าคุณสามารถใช้ความคิดสร้างสรรค์โดยใช้สูตรขึ้นอยู่กับแอปพลิเคชันของคุณเช่นใช้บางสิ่งบางอย่าง=ROW()-2
user3575270

1
หากคุณใช้สูตรเพื่อสร้างดัชนีจากนั้นอ้างถึงดัชนีนั้นในสูตรอื่นคุณอาจรวมสูตรสำหรับดัชนีลงในสูตรที่สอง
teylyn

ROW() - ROW([#Headers]) - 1คุณสามารถใช้
โซโลมอน Ucko

2

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

  • คอลัมน์ 1 มีข้อมูล "รายได้" (ค่าบวกและลบ)
  • คอลัมน์ 2 คือ "ยอดคงเหลือ" ของบัญชี

สำหรับแต่ละแถวคุณต้องเพิ่มยอดคงเหลือก่อนหน้า (คอลัมน์ 2, แถวก่อนหน้า) และรายได้ (คอลัมน์ 1, แถวปัจจุบัน) เพื่อคำนวณยอดคงเหลือปัจจุบัน

วิธีหนึ่งในการทำเช่นนั้นคือใช้สูตรนี้ในคอลัมน์ 2 ตามคำตอบของ teylyn:

=SUM([@Column1];OFFSET([@[Column2]];-1;0))

สิ่งนี้จะจัดการข้อผิดพลาดบางอย่างที่เกิดขึ้นในแถวแรก

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