ค้นหาข้อมูลที่เหมือนกันในสองแผ่นงานและใส่ในแผ่นงานที่ 3


3

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


2
หากชื่อผู้ใช้อยู่ในชีตเดียวคุณลักษณะทั่วไปที่มีอยู่ระหว่างชื่อผู้ใช้กับสิ่งที่อยู่ในชีตอื่น ชื่อผู้ใช้ในทั้งสอง?
datatoo

1
+1 ถึง @datatoo - คุณต้องมีตัวระบุที่ไม่ซ้ำกันต่อผู้ใช้ซึ่งเป็นเรื่องปกติระหว่างทั้งสองแผ่นงาน เช่น: ถ้าแผ่นแรก เท่านั้น มีชื่อผู้ใช้และไม่มีข้อมูลอื่นเลยนอกจากชีตที่สอง จะต้อง มีชื่อผู้ใช้พร้อมกับข้อมูลที่สัมพันธ์กัน มิฉะนั้นหากมีตัวระบุที่ไม่ซ้ำอื่น ๆ บางอย่างในแผ่นชื่อผู้ใช้ (เช่นหมายเลขพนักงานที่อยู่อีเมล ฯลฯ ) ซึ่งก็คือ ด้วย ในแผ่น "ข้อมูลจำนวนมาก" คุณสามารถใช้สิ่งนั้นแทน แม้ว่าจะไม่มีตัวระบุทั่วไปต่อผู้ใช้ แต่คุณจะโชคไม่ดี
Iszi

1
แผ่นงานที่ 1 มีชื่อผู้ใช้เท่านั้น แต่มีข้อมูลเดียวกันอยู่ในแผ่นงานที่ 2 ฉันต้องการให้แถวที่มีชื่อผู้ใช้เดียวกันที่พบในแผ่นที่ 1 และแผ่นที่ 2 ถูกดึงออกมา
CSF

คำตอบ:


5

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

= VLOOKUP ( lookup value, table array, column index number, range lookup )

  • lookup value คือข้อมูลที่คุณต้องการค้นหา
  • table array กำหนดเซลล์ที่คุณต้องการดึงข้อมูลรวมถึงคอลัมน์ที่มีเป้าหมายการค้นหาของคุณ
  • column index number คือดัชนีของคอลัมน์ภายใน table array ซึ่งคุณต้องการดึงข้อมูล (เช่น: สำหรับอาร์เรย์ A: E คอลัมน์ D จะเป็น 4.)
  • range lookup เป็นตัวเลือก TRUE / FALSE เพื่อระบุว่าการจับคู่โดยประมาณเป็นที่ยอมรับหรือต้องการการจับคู่แบบตรงทั้งหมด เพื่อให้ทุกอย่างเรียบง่ายฉันตั้งค่านี้เป็น FALSE. กด F1 ใน Excel หากคุณต้องการรายละเอียดเพิ่มเติม

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

โน๊ตสำคัญ: ข้อความค้นหาที่คุณใช้เป็น lookup value ต้อง หาได้ในคอลัมน์แรกของ table array เพื่อให้ VLOOKUP ทำงาน


ตัวอย่างแรก : ข้อมูลทั้งหมดจะอยู่ใน Excel Workbook เดียวกัน แต่อยู่ในแผ่นงานที่แตกต่างกัน แผ่นงานแรกมีชื่อว่า "ชื่อผู้ใช้" และมีเพียงชื่อผู้ใช้ แผ่นงานที่สองเรียกว่า "ข้อมูลผู้ใช้" และมีรายละเอียดผู้ใช้ทั้งหมด เราจะเรียกแผ่นงานที่สาม "ผลการค้นหา" แผ่น "ข้อมูลผู้ใช้" มีห้าคอลัมน์ A:E.

  1. ตรวจสอบให้แน่ใจว่าสเปรดชีต "ข้อมูลผู้ใช้" มีชื่อผู้ใช้ทั้งหมดในคอลัมน์ A
  2. คัดลอกชื่อผู้ใช้ทั้งหมดจาก "ชื่อผู้ใช้" เป็น "ผลลัพธ์การค้นหา"
    • ฉันจะสมมติว่าคุณกำลังใช้แถวส่วนหัวดังนั้นชื่อผู้ใช้แรกใน "ผลการค้นหา" จะลงจอดใน A2
  3. สูตรสำหรับ B2 ใน "ผลการค้นหา" ควรเป็น: =VLOOKUP(A2,'User Data'!A:B,2,FALSE)
  4. สูตรสำหรับ B3 ใน "ผลลัพธ์การค้นหา" ควรเป็น: =VLOOKUP(A3,'User Data'!A:B,2,FALSE)
  5. สูตรสำหรับ C2 บน "ผลการค้นหา" ควรเป็น: =VLOOKUP(A2,'User Data'!A:C,3,FALSE)

คุณควรเห็นรูปแบบที่นี่ตอนนี้ สำหรับแต่ละคอลัมน์คุณควรจะสามารถเขียนสูตร VLOOKUP ในเซลล์แรก (เช่น: B2) จากนั้นเติมสูตรลงในส่วนที่เหลือของแผ่นงาน อย่างไรก็ตามการตัดและวางสูตร ข้าม คอลัมน์ไม่ตรงไปตรงมา - คุณต้องอัปเดต table array และ column index number ค่า


ตัวอย่างที่สอง : แต่ละชุดข้อมูลจะถูกเก็บไว้ในสมุดงาน Excel ของตัวเอง ชื่อแผ่นงานภายในเวิร์กบุ๊กเป็นค่าเริ่มต้น (เช่น: แผ่นงานแรกคือ "Sheet1") ชื่อไฟล์สมุดงานคือ "Usernames.xlsx", "User Data.xlsx" และ "Lookup Results.xlsx" ทั้งหมดนี้อยู่ในโฟลเดอร์ชื่อ "My Spreadsheets" ซึ่งอยู่บนเดสก์ท็อปของผู้ใช้ชื่อ "Me"

  1. ตรวจสอบให้แน่ใจว่าชีต "User Data.xlsx" มีชื่อผู้ใช้ทั้งหมดในคอลัมน์ A
  2. คัดลอกชื่อผู้ใช้ทั้งหมดจาก "Usernames.xlsx" เป็น "Lookup Results.xlsx"
    • สมมติว่าคุณใช้แถวส่วนหัวนี่จะเริ่มต้นใน A2
  3. สูตรสำหรับ B2 ใน "Lookup Result.xlsx" ควรเป็น =VLOOKUP(A2,'C:\Users\Me\Desktop\My Spreadsheets\[User Data.xlsx]Sheet1'!A:B,2,FALSE)
  4. สูตรสำหรับ B3 ใน "Lookup Result.xlsx" ควรเป็น =VLOOKUP(A3,'C:\Users\Me\Desktop\My Spreadsheets\[User Data.xlsx]Sheet1'!A:B,2,FALSE)
  5. สูตรสำหรับ C2 ใน "Lookup Result.xlsx" ควรเป็น =VLOOKUP(A2,'C:\Users\Me\Desktop\My Spreadsheets\[User Data.xlsx]Sheet1'!A:C,3,FALSE)

อีกครั้งคุณควรจะเห็นรูปแบบที่นี่ตอนนี้ ตัด / วาง / ปรับแต่งตามต้องการลงในแถวและทั่วทั้งคอลัมน์และคุณตั้งค่าไว้


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


เขียนที่ยอดเยี่ยมเกี่ยวกับ VLOOKUP ฟังก์ชัน ในกรณีของฉันพารามิเตอร์ที่ 3 คอลัมน์ # (ฮาร์ดโค้ด 2/2/3 ในตัวอย่างของคุณ) ทำ ไม่ การเพิ่มขึ้นอัตโนมัติเมื่อฉันขยายสูตรวางไว้ดังนั้นฉันจึงใช้วิธีง่าย ๆ COLUMN(cell) ฟังก์ชั่น (เช่น COLUMN(B2), COLUMN(C2)ฯลฯ ) เพื่อส่งคืนคอลัมน์ # ที่เกี่ยวข้องกับตำแหน่งในชีตที่สูตรของฉันอยู่
NateJ

@NateJ ใช่เพราะเป็นส่วนหนึ่งของสูตรและไม่ใช่การอ้างอิงเซลล์พารามิเตอร์หมายเลขคอลัมน์จึงไม่ได้รับการแก้ไขในการคัดลอก / วาง / ย้าย อีกทางเลือกหนึ่งคือการทำสิ่งที่ชอบ COLUMNS($B:B)+1. (สำหรับสูตรอยู่ในคอลัมน์ B และคุณต้องการเริ่มต้นด้วยคอลัมน์ที่สองจากอาร์เรย์อ้างอิง)
Iszi

@NateJ ยังถ้าคุณชอบ VLOOKUP คุณอาจต้องการตรวจสอบโดยใช้การรวมกันของ INDEX และ MATCH แทน. มันยืดหยุ่นกว่าเล็กน้อย VLOOKUP ในบางวิธี ผลลัพธ์ของ Google มีมาก
Iszi

1

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


0

HLOOKUP / VLOOKUP - ใช้สูตรเพื่อดึงชื่อผู้ใช้จากสเปรดชีต 1 จากนั้นใช้ชื่อผู้ใช้เป็นคีย์และสเปรดชีต 2 เป็นเมทริกซ์การค้นหาสำหรับหนึ่งตัวอย่างของ HLOOKUP / VLOOKUP (ฉันไม่รู้ว่าอันไหนเป็นฉัน ใช้รุ่น excel ที่ไม่ใช่ภาษาอังกฤษ)


ดังนั้นเพื่ออธิบายให้ชัดเจนฉันมีผู้ใช้ประมาณ 50 รายชื่อ (แถวข้อมูล) ในแผ่นงาน 1 ที่ฉันต้องดูว่ามีอยู่ในแผ่นงาน 2 ซึ่งมีข้อมูลประมาณ 12,000 แถว ฉันต้องการให้ Excel แสดงข้อมูลจริงที่พบในแถวที่จับคู่ไม่ใช่แค่ TRUE หรือ FALSE ตามผลลัพธ์ในแผ่นงานที่สาม ยังไม่แน่ใจว่าจะเริ่มอย่างไร
CSF

ขั้นแรกเติม 50 เซลล์แรกในคอลัมน์ A ของแผ่นงาน 3 โดยอ้างอิงอย่างง่าย ๆ ไปยังเซลล์ที่มีชื่อผู้ใช้ที่สอดคล้องกันบนแผ่นงาน 1 ตอนนี้คุณมีชื่อผู้ใช้งานในแผ่นงาน 3 จากนั้นสมมติว่าชื่อเต็มถูกเก็บไว้ในคอลัมน์ C แผ่นงาน 2 และคุณต้องการในคอลัมน์ B ของแผ่น 3 ให้เติม B1 ของแผ่น 3 ด้วยสูตรเช่น = VLOOKUP (A1; Sheet2! 1: 1048576; 3; FALSE) - อ่านเอกสารประกอบของ VLOOKUP เพื่อดูรายละเอียด
Jan Schejbal

0

คุณสามารถใช้ Query จากไฟล์ Excel:

  • กำหนดชื่อสำหรับชุดข้อมูลในสเปรดชีต 1 (แท็บสูตร - & gt; กำหนดชื่อ)
  • กำหนดชื่อสำหรับชุดข้อมูลใน Spreadsheet 2
  • ขณะอยู่ในสเปรดชีต 1 ให้ไปที่แท็บข้อมูลเลือก "จากแหล่งข้อมูลอื่น" และจากเมนูแบบเลื่อนลงเลือก "จาก Microsoft Query"
  • เลือกไฟล์สเปรดชีตอื่นและยืนยันว่าคุณต้องการรวมคอลัมน์ด้วยตนเอง
  • ในหน้าต่าง "Query from Excel Files" ดังต่อไปนี้ให้ลากและวางคอลัมน์ 'ชื่อผู้ใช้' ของชุดข้อมูลแรกลงในคอลัมน์ 'ชื่อผู้ใช้' ของชุดข้อมูลที่สอง - ลิงก์ระหว่างคอลัมน์เหล่านี้จะถูกสร้างขึ้น
  • ไปที่เมนูไฟล์คลิก "ส่งคืนข้อมูลไปที่ MS Office Excel" กล่องโต้ตอบนำเข้าข้อมูลจะปรากฏขึ้น
  • เลือกแผ่นงานที่คุณต้องการนำเข้าข้อมูลที่ตรงกัน
  • คลิกตกลง - คุณควรเห็นข้อมูลที่ตรงกันพร้อมคอลัมน์จากทั้งสเปรดชีต

หรือถ้าคุณไม่รังเกียจที่จะอัปโหลดไฟล์ไปยังบริการออนไลน์คุณสามารถใช้ตัวอย่างเช่น http://www.gridoc.com/join-tables และรวมแผ่นงานโดยใช้การลากและวาง (ข้อจำกัดความรับผิดชอบ: ฉันเป็นผู้เขียนเครื่องมือ)

หวังว่านี่จะช่วยได้

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