รับเหตุการณ์ล่าสุดในรายการใน Excel


1

ฉันมีรายชื่ออยู่sheet1และต้องการให้เกิดขึ้นครั้งสุดท้ายของแต่ละผลิตภัณฑ์ที่อยู่ตรงหน้ามันในbankหน้า

นี่คือสูตรที่ฉันทำงานด้วย:

=INDEX(sheet1!$Y$52:$Y$1000,SUMPRODUCT(MAX(ROW(sheet1!$I$52:$I$1000)*($C218=sheet1!$I$52:$I$1000))-1))

มันส่งคืนผลลัพธ์ที่ไม่ตรงกับผลลัพธ์ล่าสุดที่ฉันคาดไว้

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

ฉันจะแนบไฟล์ของฉันเพื่อให้คุณสามารถดูได้

https://drive.google.com/file/d/0B0mdhh2PWmIwUEU1MUVMX1l2TVE/view?usp=sharing

และนี่คือภาพหน้าจอสำหรับผู้ที่ต้องการดูปัญหา:

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

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


3
คำถามจะต้องมีอยู่ในตัวเอง โปรดแก้ไขคำถามของคุณเพื่อรวมข้อมูลตัวอย่าง เราจะไม่ดาวน์โหลดไฟล์จากอินเทอร์เน็ตเพราะไม่ปลอดภัย
DavidPostill

ทำไมคุณถึงมี-1สูตร? ถ้าคุณใช้เพียงอย่างเดียวMAX(ROW(sheet1!$I$52:$I$1000)*($C218=sheet1!$I$52:$I$1000))มันให้แถวที่คุณคาดหวังหรือไม่?
MátéJuhász

@ David โพสต์ดีฉันไม่พบอยู่แล้วสำหรับการอัปโหลดไฟล์ excel ไปยังคำถามของฉัน
ไม่รู้จัก

@ MátéJuhászฉันจะลองสูตรของคุณ อย่างไรก็ตามฉันได้สูตรในการค้นหาทางอินเทอร์เน็ตของฉัน ลิงค์นี้: trumpexcel.com/2014/04/…
ไม่ทราบ

@ ไม่ทราบคุณสามารถจับภาพหน้าจอได้ อัปโหลดภาพของคุณไปที่Imgurแล้วคุณจะได้รับลิงค์ที่คุณสามารถแบ่งปันได้ แก้ไขคำถามของคุณเพื่อรวมลิงค์นี้และคนที่มีชื่อเสียงเพียงพอจะอินไลน์รูปภาพให้คุณ ดูExcel: การเปลี่ยนและปรับปรุงมูลค่าในอนาคตขึ้นอยู่กับที่เกิดขึ้นในอดีตและการค้นหาในตารางเช่น
DavidPostill

คำตอบ:


1

-1ในสูตรที่คุณคัดลอกคุณเห็นได้ชัดว่าไม่เข้าใจความสำคัญของ อาร์เรย์เริ่มต้นที่แถว 2 เนื่องจากส่วน SUMPRODUCT ส่งคืนหมายเลขแถวสัมบูรณ์-1ค่าชดเชยสำหรับสิ่งนั้น

ในกรณีของคุณอาร์เรย์ของคุณเริ่มต้นที่แถว 52 ดังนั้นคุณต้องลบ 51 เพื่อชดเชย

ตัวอย่างเช่น:

=INDEX(sheet1!$Y$52:$Y$1000,SUMPRODUCT(MAX(ROW(sheet1!$I$52:$I$1000)*($C98=sheet1!$I$52:$I$1000))-51))

สูตรที่สั้นกว่าเพื่อบรรลุวัตถุประสงค์เดียวกัน:

=LOOKUP(2,1/($C108=sheet1!$I$52:$I$1000),sheet1!$Y$52:$Y$1000)

วิธีนี้ใช้งานได้เพราะหากLOOKUPไม่พบตัวเลขที่เท่ากับหรือมากกว่าการค้นหามันจะจับคู่หมายเลขสุดท้ายในอาร์เรย์ 1/...ส่วนส่งกลับอาร์เรย์ของ1's และDIV/0ข้อผิดพลาด ดังนั้นสุดท้ายจึง1ตรงกับอินสแตนซ์สุดท้ายที่C108ตรงกับ; และเรากลับจากตำแหน่งที่สอดคล้องกันในYคอลัมน์

นี่คือภาพหน้าจอที่แสดงผลลัพธ์ที่ต้องการ (ตามภาพหน้าจอของคุณ):

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

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


ฉันทำตามที่คุณพูด แต่ไม่มีอะไรเปลี่ยนแปลง ปัญหายังไม่ได้รับการแก้ไข
ไม่ทราบ

@ ไม่ทราบชื่อใช้งานได้กับสมุดงานที่คุณดาวน์โหลด
Ron Rosenfeld

ฉันมีคำถาม: ทำไมสูตรนี้ถึงได้ผลในปริมาณน้อย แต่ก็ไม่ได้ผลในไฟล์ของฉัน ฉันสร้างไฟล์ตัวอย่างเช่นลิงก์ที่ฉันคัดลอกสูตรมาจากและใช้งานได้
ไม่รู้จัก

คุณมีข้อเสนอแนะอื่น ๆ ในการแก้ไขปัญหาหลักของฉันหรือไม่ ฉันหมายถึงการให้โอกาสครั้งสุดท้าย
ไม่ทราบ

@ ไม่ทราบฉันสันนิษฐานจากสมุดงานของคุณและภาพหน้าจอที่คุณโพสต์นั่น0คือค่าส่งคืนที่ถูกต้องสำหรับ 2168 หากไม่ใช่ในกรณีนี้ให้ชี้แจง สูตรที่ฉันให้มาทำงานบนสมุดงานที่คุณดาวน์โหลดมา ข้อมูลจริงของคุณใหญ่กว่าขนาดไหน
Ron Rosenfeld
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.