อ้างอิงคอลัมน์ตารางแบบกำหนดชื่อ (ผ่านเนื้อหาเซลล์) แบบไดนามิกใน Excel


12

ฉันจะอ้างอิงคอลัมน์ตาราง Excel แบบไดนามิกใน Excel 2007 ได้อย่างไร ฉันต้องการอ้างอิงคอลัมน์ที่มีชื่อของตารางที่มีชื่อและคอลัมน์ที่อ้างอิงจะแตกต่างกันไปตามมูลค่าของเซลล์

ฉันมีตารางใน Excel (เรียกมันว่าTable1 ) ฉันต้องการอ้างอิงหนึ่งในคอลัมน์และCOUNTตัวเลขในคอลัมน์นั้น ฉันต้องการระบุคอลัมน์ที่อ้างอิงแบบไดนามิกจากค่าในเซลล์อื่น ( A1) เพื่อให้ฉันสามารถบรรลุผลลัพธ์ต่อไปนี้: เมื่อฉันเปลี่ยนA1สูตรที่นับTable1 [ DynamicallyReferencedColumnName ]จะได้รับการอัพเดตเป็นข้อมูลอ้างอิงใหม่

ตัวอย่าง:

  • หากA1= แล้วสูตรจะเท่ากับnames    COUNT(Table1[names])
  • หากA1= แล้วสูตรจะเท่ากับlastnameCOUNT(Table1[lastname])

ฉันพยายามใช้=COUNT(Table1[INDIRECT("$A$1")])แต่ Excel บอกว่าสูตรมีข้อผิดพลาด

ฉันจะทำสิ่งนี้ได้อย่างไร


PS ผมพบว่าเอกสารนี้ MSDN ที่อาจเกี่ยวข้อง: Excel คำนวณใหม่


คุณใช้ Excel รุ่นใด
CharlieRB

กำลังใช้ Excel 2007
rcphq

ฉันคิดว่าคำถามนี้สามารถ rephrased ยังเป็น: "อ้างอิงองค์ประกอบแบบไดนามิกของการอ้างอิงโครงสร้างใน excel"
jiggunjer

คำตอบ:


13

คุณเกือบจะได้INDIRECT()แต่ตรรกะของคุณออกไปเล็กน้อย ลองใช้สิ่งนี้แทน:

=COUNT(INDIRECT("Table1["&A1&"]"))

กุญแจสำคัญในการจำคือINDIRECT()ใช้ข้อความเท่านั้น (เช่นสตริง) สำหรับอาร์กิวเมนต์แรก ดังนั้นคุณต้องผ่านทุกส่วนของตารางอ้างอิงไปยังฟังก์ชั่นเป็นข้อความ


แน่นอนว่าใช้งานได้ฉันต้องอ้างอิงตารางทั้งหมด มันใช้งานได้! ขอบคุณ!
rcphq

16

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

ทางเลือกที่ไม่ลบเลือนซึ่งทำให้สิ่งที่คุณต้องการสำเร็จคือการใช้ INDEX / MATCH

COUNT(INDEX(Table1, 0, MATCH($A$1, Table1[#Headers], 0)))

ทิม


ยิ่งไปกว่านั้นฉันเจอวิธีนี้ในภายหลังและใช้มาตั้งแต่นั้น บังเอิญฉันเริ่มสังเกตเห็นว่าสเปรดชีตเก่า ๆ ที่ฉันใช้อยู่นั้นมีการชะลอตัวลงอย่างมาก ขอบคุณ!
rcphq

2

ขั้นตอนแรกตั้งค่าเซลล์ข้อความซึ่งมีชื่อของคอลัมน์ที่คุณต้องการอ้างอิง (พูด $ A $ 1) $ A $ 1 ประกอบด้วย "Column2"

จากนั้นเพื่อค้นหาจำนวนคอลัมน์ที่ $ A $ 1 หมายถึงจะเป็น = Count (โดยอ้อม ("Table1 [" & $ a $ 1 & "]"))

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

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


1
(1) ขั้นตอนแรก: A1ใส่ชื่อของคอลัมน์ที่ต้องการลงในเซลล์เช่น  OP ได้ทำสิ่งนี้แล้วและพูดอย่างนั้นในคำถาม   (2) ขั้นที่สองคือสำเนาถูกต้องของคำตอบของ Excellll (4) การกำหนดค่าA1เป็นแบบเลื่อนลงของชื่อคอลัมน์ที่ถูกต้องดูเหมือนความคิดที่ดี แต่ฉันไม่เข้าใจส่วนที่เหลือของวรรคสุดท้ายของคำตอบ
สกอตต์

1

นี่คือบทความที่ดีมากเกี่ยวกับการอ้างอิงโครงสร้างใน Excel ดูเหมือนว่าสิ่งนี้จะทำงานแตกต่างกันเล็กน้อยใน Excel 2010 กว่าใน Excel 2007

การใช้การอ้างอิงที่มีโครงสร้างกับตาราง Excel

โดยทั่วไปคุณจะอ้างอิงตารางแล้วคอลัมน์ภายในตาราง

ตาราง Excel ทั่วไป

ในตัวอย่างนี้คุณสามารถอ้างอิงตาราง 1 คอลัมน์ 1 ดังนี้:

=COUNT(Table1[Column1])

คุณสามารถตั้งชื่อคอลัมน์ส่วนหัวในตารางของคุณ ถ้าฉันเปลี่ยนชื่อ Column1 เป็น Sales สูตรจะกลายเป็น:

=COUNT(Table1[Sales])

ใช่ตารางของฉันมีชื่ออย่างถูกต้องกับคอลัมน์ที่แตกต่างกันสิ่งที่ฉันต้องการเป็นวิธีการที่จะบอกว่าคอลัมน์ที่ฉันต้องการขึ้นอยู่กับค่าเซลล์บางอย่างเช่นนี้=COUNT(Table1[A1])โดยที่ A1 เป็นเซลล์ที่ฉันต้องการมีชื่อ
คอลัมน์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.