Excel - วิธีเชื่อมโยงสูตรดัชนี / การจับคู่กับสูตรทางอ้อมสำหรับการอ้างอิงคอลัมน์แบบไดนามิก


0

ฉันมีแผ่นงานที่ฉันต้องการใช้สูตรดัชนี / การจับคู่เพื่อดึงค่าที่แน่นอนสำหรับจุดตัดที่ไม่ซ้ำกันของแผนกและค่าบัญชีในแผ่นข้อมูลแยกต่างหาก

อย่างไรก็ตามฉันต้องการดัชนีอาร์เรย์มีความยืดหยุ่นเนื่องจากฉันกำลังมองหาจุดตัดของแผนกและบัญชี "ที่ไม่ซ้ำกัน" เหมือนกันในหลายคอลัมน์ (คอลัมน์แสดงเดือนในแผ่นข้อมูลของฉัน)

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

นี่คือสูตรของฉันตอนนี้:

=IFERROR(INDEX(INDIRECT(_2015_December_Act), MATCH(AB$15&$G17, ('Essbase Data'!$C$8:$C$356&'Essbase Data'!$A$8:$A$356), 0)), "") 

โดยที่ _2015_December_Act เป็นช่วงที่มีชื่อบนแท็บข้อมูล Essbase ของฉันสำหรับค่าในช่วง Q8: Q356

และนอกจากนี้ยังมี:

=IFERROR(INDEX(INDIRECT(""&$A$8&"!"&$B$8), MATCH(AB$15&$G16, ('Essbase Data'!$C$8:$C$356&'Essbase Data'!$A$8:$A$356), 0)), "")

โดยที่ A8 = ข้อมูล Essbase และ b8 = Q8: Q356 - ช่วงนี้แสดงถึงค่าในเดือนธันวาคมในแผ่นข้อมูล Essbase ของฉัน

ผมทำอะไรผิดหรือเปล่า?

ฉันพยายามทำการอัปเดตการอ้างอิง Array โดยอัตโนมัติเพื่อให้สามารถรีเฟรชรายงานรายเดือนด้วยการอัปเดตด้วยตนเองขั้นต่ำในดัชนี Array


ค่าที่เก็บใน Essbase! Q8: Q356 คืออะไร? พวกเขาอ้างอิงเซลล์หรือค่า?
B540Glenn

พวกเขาคือค่า แท็บ essbase นั้นเป็นแผ่นข้อมูลเชื่อมโยงสดที่จะได้รับการฟื้นฟูด้วยค่าใหม่จาก ERP ของเราเมื่อเราปิดแต่ละเดือน
Andra M

ทางอ้อมคาดว่าจะเป็นสตริงที่จะประเมินตำแหน่งในแผ่นงาน ลองตั้งชื่อช่วง "" & $ A $ 8 & "!" & $ B $ 8 และใช้แทนชื่อ _2015_December_Act
B540Glenn

จริง ๆ แล้วฉันได้ลองแล้วฉันมีสูตร 2 เวอร์ชันที่โพสต์ไว้ด้านบนซึ่งฉันลองใช้ช่วงที่มีชื่อจากนั้นก็ "" & $ A $ 8 & "!" & $ B $ 8 ในค่า A8 และ B8 ของฉันฉันมีค่าต่อไปนี้เก็บไว้: A8 = ข้อมูล Essbase และ B8 = Q8: Q356 ยังไม่ทำงาน ...
Andra M

คำตอบ:


2

Essbase Data

| Field Name | Jan - 2016 | Feb - 2016 | Mar - 2016 |
| Key 1      | A          | B          | C          |
| Key 2      | D          | E          | F          |
| Key 3      | G          | H          | I          |
| Key 4      | J          | K          | L          |
| Key 5      | M          | N          | O          |

Report

| Date:        | Mar - 2016   |
| Tab:         | Essbase Data |
| Date range:  | ?            |
| Field range: | ?            |
| Data range:  | ?            |
| Column:      | ?            |
|              |              |
| Field Name   | Value        |
| Key 1        | ?            |
| Key 2        | ?            |
| Key 3        | ?            |
| Key 4        | ?            |
| Key 5        | ?            |
| ...          | ...          |

ระบุช่วงของคุณ

* ชื่อแท็บระยะไกลที่มีช่องว่างควรห่อด้วยเครื่องหมายคำพูดเดี่ยว ( 'Tab name') อาจเป็นแบบอักษรที่ไม่ดี แต่จากมุมมองของฉันดูเหมือนว่าพวกเขาจะหายไปจากสูตรของคุณด้านบน

ประการแรกคุณต้องการระบุช่วงสำหรับการจับคู่จุดคงที่ในเวลา ช่วงวันที่:

="'" & B2 & "'!$1:$1"

'Essbase Data'!$1:$1ตัวอย่างการแสดงผลจะเป็น สิ่งนี้จะใช้กับMATCH()คอลัมน์ที่ต้องการ

ประการที่สองคุณต้องการระบุช่วงสำหรับการจับคู่ชื่อเขตข้อมูลของคุณ ช่วงสนาม:

="'" & B2 & "'!$A:$A"

'Essbase Data'!$A:$Aตัวอย่างการแสดงผลจะเป็น สิ่งนี้จะถูกใช้กับMATCH()แถวที่ต้องการ

สุดท้ายคุณต้องการระบุช่วงของชุดข้อมูลทั้งหมดของคุณ ช่วงข้อมูล:

="'" & B2 & "'!$A:$D"

'Essbase Data'!$A:$Dตัวอย่างการแสดงผลจะเป็น สิ่งนี้จะใช้กับINDEX()คอลัมน์และแถวที่ต้องการ คุณสามารถใช้COUNTA()และADDRESS()สร้างสิ่งเหล่านี้แบบไดนามิก กล่าวคือ

="'" & B2 & "'!$A$1:" & ADDRESS(COUNTA('Essbase Data'!A:A), COUNTA('Essbase Data'!1:1))

เอาท์พุทตัวอย่างจะเป็น 'Essbase Data'!$A$1:$D$6

การจัดทำดัชนี

ประการแรกคุณต้องการระบุคอลัมน์ที่คุณระบุโดยใช้ช่วงวันที่ในตัวอย่างของคุณ คอลัมน์:

=MATCH(B1,INDIRECT(B3),0)

4ตัวอย่างการแสดงผลจะเป็น ในกรณีที่B1เป็นหัวข้อที่กำหนดและB3เป็นช่วงวันที่ที่ระบุจากReportตารางข้างต้น

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

=INDEX(
   INDIRECT($B$5), <-- Data range
   MATCH($A9, <-- Field lookup value
     INDIRECT($B$4), <-- Field range
     0
   ),
   $B$6 <-- Column number
 )

ลากลงและผลลัพธ์ของคุณควรมีลักษณะดังนี้:

| Field Name   | Value        |
| Key 1        | C            |
| Key 2        | F            |
| Key 3        | I            |
| Key 4        | L            |
| Key 5        | O            |
| ...          | ...          |

ฉันสามารถทำตามคำแนะนำของคุณจนถึงการจัดทำดัชนี .... ฉันคิดว่าความท้าทายของฉันคือช่วงวันที่ไม่ตรงไปตรงมาในตัวอย่างของคุณ "Mar - 2106" ค่าข้อมูลในตารางของฉันมีเดือนและปีใน แยกแถว (ไม่มีตัวเลือกสำหรับฟีดข้อมูลเพื่อต่อค่า) ซึ่งส่งผลให้เดือนมีนาคมแสดงหลายครั้งในหนึ่งแถว (ฉันมีข้อมูลปี 2015 และ 2559 ในตารางของฉัน) คุณจะเปิดให้เซสชันการแชร์หน้าจอเพื่อตรวจสอบการสร้างเวิร์กบุ๊กด้วยกันไหม
Andra M

ฉันจะไม่ถูกต่อต้าน แต่ฉันทำงานให้กับสถาบันการเงินและอยู่ภายใต้กฎการรับส่งข้อมูลเครือข่ายขาเข้า / ขาออกที่เข้มงวด - จะเป็นเรื่องยุ่งยากเล็กน้อยที่สำนักงาน Esbase Dataหากคุณสามารถอัปเดตคำถามของคุณที่จะสะท้อนให้เห็นถึงโครงสร้างข้อมูลของ ฉันสามารถแก้ไขคำตอบของฉันได้ถ้าฉันมีความเข้าใจที่ดีขึ้นเกี่ยวกับวิธีการจัดโครงสร้างข้อมูล
jtrumbull

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