ดัชนีตรงกับ 2 เงื่อนไขหรือไม่


0

ข้อมูล:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันสามารถใช้ความช่วยเหลือบางอย่างที่เกิดขึ้นกับสูตรจับคู่ดัชนีโดยยึดตามเงื่อนไข 2 ข้อ สำหรับชุดข้อมูลที่แนบมาฉันต้องตั้งค่าสูตร (และทำให้ซ้ำสำหรับร้านค้าอื่นและวันที่ในอนาคต) ที่ได้รับหมายเลขข้อมูลตามวันที่ที่ระบุ (11/9/15 ในกรณีนี้) และสำหรับ ร้านค้า # 414 ในตัวอย่างนี้ฉันต้องการให้ "132" เป็นคำตอบที่ส่งคืน หวังว่ามันสมเหตุสมผล

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม!


3
จนถึงตอนนี้คุณยังไม่ได้ถามคำถามที่เฉพาะเจาะจงเพียงแค่บอกสิ่งที่คุณต้องการ คุณลองทำอะไรไปแล้ว? คุณติดอยู่ที่ไหน
Ƭᴇcʜιᴇ007

ทำไมไม่ใช้ ... ตารางเดือย?
Raystafarian

ฉันไม่สามารถใช้ตารางเดือย b / c ฉันดึงจากคลิปข้อมูลที่รีเฟรชทุกสัปดาห์และพยายามที่จะเพิ่มค่าให้กับแผ่นงานที่มีอยู่ ฉันลองอะไรแบบนี้แล้ว แต่สูตรของฉันจะคืน 1,000 เพราะมันทำสถิติแรกจาก 11/10/14 เท่าที่ฉันได้รับ = INDEX ([data data-data], MATCH ("414", IF ([Data set-Date] = "11/9/15", 1, [Data data - Store #]), FALSE)
Matt

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

ขอบคุณ @ fixer1234 ฉันไม่ได้ประสบความสำเร็จในการดูคำถามก่อนหน้านี้ แต่ฉันจะดูต่อไป แต่แน่นอนถ้าใครมีข้อเสนอแนะใด ๆ ในระหว่างนี้ฉันจะขอบคุณมันจริงๆ!
Matt

คำตอบ:


1

ต่อไปนี้เป็นคำตอบสองข้อที่สอดคล้องกับคำแนะนำของฉันในความคิดเห็นเกี่ยวกับคำถาม สำหรับทั้งสองนี้ฉันสมมติว่า A1: C30 มีข้อมูลจากคำถาม

การใช้ฟังก์ชั่นฐานข้อมูล

โซลูชันแรกใช้ฟังก์ชันฐานข้อมูลของ Excel ฟังก์ชันฐานข้อมูลทั้งหมดถือว่าช่วงของเซลล์เป็นฐานข้อมูลโดยที่แต่ละแถวเป็นเรคคอร์ดและแต่ละคอลัมน์เป็นฟิลด์ แถวแรกมีชื่อคอลัมน์ ฟังก์ชันฐานข้อมูลยังใช้ช่วงเซลล์อีกช่วงหนึ่งเป็นเกณฑ์การค้นหาโดยที่แถวแรกคือชื่อคอลัมน์และแถวที่สองเป็นเกณฑ์จริง ระบุว่าใน E1: F2 (หรือที่ใดก็ได้ แต่นั่นคือสิ่งที่ฉันได้ใส่ไว้สำหรับตัวอย่างเหล่านี้) ใส่:

       E         F
 1   Store #     Date
 2       414  11/9/15

นั่นคือเกณฑ์ จากนั้นใน E4 (หรือที่ใดก็ตาม) =DGET(A1:C30,"Data",E1:F2)ใส่ ที่ใช้DGETฟังก์ชั่นฐานข้อมูลเพื่อค้นหาค่าของคอลัมน์ที่กำหนดให้ฐานข้อมูล ( A1:C30), ชื่อคอลัมน์ ( "Data") และเกณฑ์ ( E1:F2) 132ในกรณีนี้จะส่งผลให้ การเปลี่ยนเนื้อหาของ F2 เป็น11/2/15จะเปลี่ยนDGETค่าเป็น55ฯลฯ

นี่อาจเป็นวิธีที่สะอาดที่สุดเนื่องจากสามารถขยายได้ง่ายถ้าคุณมีคอลัมน์เพิ่มเติมในข้อมูลและเกณฑ์ที่คุณต้องการใช้เพื่อให้ตรงกับคอลัมน์เหล่านั้น คุณสามารถนำบางส่วนของเกณฑ์มาใช้เพื่อทำอย่างอื่นได้ ตัวอย่างเช่น=DSUM(A1:C30,"Data",E1:E2)จะรวมค่าข้อมูลทั้งหมดสำหรับร้านค้า 414 =DSUM(A1:C30,"Data",F1:F2)จะสรุปค่าข้อมูลทั้งหมดสำหรับ 11/9/15 เป็นต้นนอกจากนี้ยังไม่ถือว่าสิ่งใดเกี่ยวกับลำดับคอลัมน์ที่เรียงลำดับข้อเสียคือถ้าคุณ อย่าใช้ฟังก์ชั่นฐานข้อมูลเป็นจำนวนมาก (เช่นฉัน :-)) คุณจะต้องอ่านความช่วยเหลือเกี่ยวกับพวกเขาทุกครั้งที่คุณใช้งาน (เช่นเดียวกับที่ฉันทำเพื่อ :-) นี้ดังนั้นจึงอาจไม่เป็นเช่นนั้น การบำรุงรักษา

การใช้การจัดทำดัชนีและสูตรการค้นหา

วิธีที่สองเป็นการรวมสูตรการค้นหาของ Excel เข้าด้วยกัน

ตั้งค่าแผ่นงานเหมือนข้างบนข้อมูลจากคำถามใน A1: C30 และเกณฑ์ใน E1: F2 โปรดทราบว่าในกรณีนี้เราจะใช้ E2 และ F2 เท่านั้น แต่คุณสามารถปล่อยให้ E1 และ F1 เป็นป้ายกำกับว่ามีอะไรใน E2: F2

จากนั้นใน E4 ให้ใส่:

 =VLOOKUP(F2,INDEX(B:B,MATCH(E2,A:A,0),1):INDEX(C:C,MATCH(E2,A:A,1),1),2)

ทำลายมันจากภายในสู่ภายนอก:

MATCH(E2,A:A,0)

ที่พบการแข่งขันครั้งแรก (คน0) ในคอลัมน์แรก ( A:A) E2ที่ตรงกับการจัดเก็บใน ส่งคืนตำแหน่งสัมพัทธ์และในกรณีนี้เนื่องจากคอลัมน์แรกทั้งหมดคืออาร์เรย์การค้นหาตำแหน่งจะเป็นหมายเลขแถวของการเกิดขึ้นครั้งแรกของ store # ใน E2 7กับข้อมูลตัวอย่างเช่นถ้าคุณใส่ในมือถือด้วยตัวเองก็จะมีค่า

INDEX(B:B,MATCH(E2,A:A,0),1)

นี้จะสร้างการอ้างอิงไปยังเซลล์ในคอลัมน์ที่สอง ( B:B) ที่แถวที่กำหนดโดยและคอลัมน์MATCH 1หากคุณใส่ในมือถือด้วยตัวเองค่าจะเป็นค่าของเซลล์ที่อ้างอิงซึ่งมีตัวอย่างจะมีค่าจาก B7 11/10/14หรือ

MATCH(E2,A:A,1)

สิ่งนี้จะพบการแข่งขันครั้งสุดท้าย ( 1) ในคอลัมน์แรกที่ตรงกับร้านค้า # 25ถ้าใส่ในเซลล์ด้วยตัวเองค่าที่จะได้รับ

INDEX(C:C,MATCH(E2,A:A,1),1)

นี้สร้างการอ้างอิงไปยังเซลล์ในคอลัมน์ที่สาม ( C:C) ที่แถวที่กำหนดโดยและคอลัมน์MATCH 1หากคุณใส่ในมือถือด้วยตัวเองค่าจะเป็นค่าของเซลล์ที่อ้างอิงซึ่งมีตัวอย่างจะมีค่าจาก C25 132หรือ

INDEX(B:B,MATCH(E2,A:A,0),1):INDEX(C:C,MATCH(E2,A:A,1),1)

รวมสองINDEXสูตรนี้เพื่อสร้างการอ้างอิงเพื่อค้นหาวันที่ ด้วยข้อมูลตัวอย่างมันจะเป็น B7: C25 (ถ้าคุณใส่ไว้ในเซลล์ด้วยตัวเองคุณจะได้รับ#VALUE!เพราะมันให้ผลลัพธ์มากกว่าหนึ่งค่าถ้าคุณใส่ไว้ในเซลล์ด้วยตัวเองเป็นสูตรอาร์เรย์ คุณจะได้รับค่าของเซลล์มุมบนซ้ายหรือ11/10/14)

=VLOOKUP(F2,INDEX(B:B,MATCH(E2,A:A,0),1):INDEX(C:C,MATCH(E2,A:A,1),1),2)

นี้รวมมันทั้งหมด มันใช้VLOOKUPเพื่อค้นหาวันที่จากF2ในช่วงเซลล์ที่สร้างขึ้นโดยสองINDEXสูตร (B7: C25) และเพื่อกลับคอลัมน์ที่สอง (สุดท้าย2) บนแถวที่ตรงกัน

Voila!


การทำงานของ vlookup / index นั้นทำงานได้อย่างสมบูรณ์แบบ! ขอบคุณมาก!! คำถามด่วนหนึ่งข้อ ถ้าฉันจะเพิ่มคอลัมน์ข้อมูลอีกอันและใส่ในคอลัมน์ "D" สูตรของฉันจะเปลี่ยนไปอย่างไร ฉันดูเหมือนจะได้รับข้อผิดพลาดเมื่อฉันพยายามเปลี่ยนคอลัมน์ที่สูตรค้นหา ขอขอบคุณอีกครั้ง!
แมตต์

ไม่เป็นไร! ฉันคิดออก! ฉันเปลี่ยน C: C เป็น D: D แล้วเพิ่มการค้นหาคอลัมน์ในสูตรการจับคู่ดัชนี 2 จาก 2 เป็น 3! Voila!
แมตต์

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