วิธีจัดโครงสร้างข้อมูลใหม่ 2 คอลัมน์ด้วยรายการซ้ำในหนึ่งคอลัมน์


1

ขออภัยหากชื่อสับสน ฉันเกือบจะตลอดทั้งคืนพยายามที่จะแก้ปัญหานี้และฉันไม่แน่ใจว่าจะพูดอย่างไร ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม

ฉันมีสเปรดชีตที่มีชื่อในคอลัมน์ A และหมายเลขประจำตัวในคอลัมน์ B ดูเหมือนว่านี้

Sally     1004
Sally     1005
Sally     1006
Robert    1007
Robert    1008

ฯลฯ.

ฉันมีสเปรดชีตอื่นซึ่งมีบางสถานการณ์ฉันไม่สามารถกรองตามกฎหมายในลักษณะที่มีชื่อเช่นนี้

Sally
Sally
Robert
Robert
Robert

พวกมันทั้งหมดเรียงตามตัวอักษร แต่อย่างที่คุณเห็นในกรณีของ Sally เธอปรากฏตัวครั้งแรกในตัวอย่างแรกจากนั้นในแผ่นงานที่สองซึ่งไม่เป็นไร อย่างไรก็ตามโรเบิร์ตแสดงให้เห็นอีกครั้งในแผ่นงานที่สองจากนั้นในครั้งแรกและฉันต้องการสิ่งนี้เพื่อส่งคืนข้อผิดพลาดบางประเภท ฉันยังต้องการ Sheet2 เพื่อให้ได้หมายเลขประจำตัวประชาชนเพื่อให้ปรากฏนี่คือเป้าหมายสุดท้าย

Sally     1004
Sally     1005
Robert    1007
Robert    1008
Robert    #N/A           (or any other error)

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

คำตอบ:


0

ใช้สูตรนี้:

=INDEX(Table1[ID],SMALL(IF(A2=Table1[name],ROW(Table1[name])-ROW(Table1[[#Headers],[name]]),10^9),COUNTIF(Sheet2!$A$1:A2,A2)))

แน่นอนว่านี่เป็นสูตรอาเรย์ด้วย

  • IF(A2=Table1[name],ROW(Table1[name])-ROW(Table1[[#Headers],[name]]),10^9)
    • ส่งกลับหมายเลขแถวสำหรับแถวในตารางต้นฉบับที่มีชื่อจริง
      (แก้ไขตามจำนวนแถวของส่วนหัวของตารางเพื่อให้ทำงานอย่างถูกต้องในฟังก์ชันดัชนี)
    • ผลตอบแทน10^9สำหรับคนอื่น ๆ (เพียงเพื่อให้ได้จำนวนมากSMALLฟังก์ชั่นไม่สับสนอาจ""จะทำงานด้วย)
  • COUNTIF(Sheet2!$A$1:A2,A2) - นับจำนวนชื่อเหนือแถวปัจจุบัน
  • SMALL(IF(...),10^9),COUNTIF(...)) - ส่งกลับจำนวนแถวที่เล็กที่สุด (แก้ไข) ถัดไป
  • =INDEX(Table1[ID],SMALL(...)) - ส่งคืน ID

เพื่อให้สามารถอ่านสูตรได้ดียิ่งขึ้นฉันได้แปลงช่วงแรกของคุณเป็นตารางแน่นอนว่าคุณสามารถใช้ที่อยู่ได้เช่นกัน

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


คุณช่วยอธิบายเรื่องนี้ได้มั้ย
Chris Rogers

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