ค้นหาชื่อคนทั่วไปในหลายรายชื่อผู้เข้าร่วมใน Excel


1

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

ฉันใช้วิธีแก้ไขด้วยการทำทีละสองคอลัมน์เพื่อเปรียบเทียบที่อยู่อีเมลที่ใช้=IF(ISERROR(MATCH(D3,$N$3:$N$124,0)),"",C3)แต่ฉันต้องการทำในการกดครั้งเดียว

หรือบางทีการทำงานด้วยความพยายามน้อยกว่าการสร้างโซลูชันยอดฮิตอย่างหนึ่ง!


ยินดีต้อนรับสู่ Super User มีข้อมูลบางส่วนหายไป 1) คุณใช้ Excel รุ่นใด 2) คุณสามารถยกตัวอย่างของวิธีการจัดวางข้อมูลของเราได้อย่างไร 3) คุณลองฟอร์แมตตามเงื่อนไขแล้วหรือยัง
CharlieRB

คำตอบ:


1

ตราบใดที่รายการผู้เข้าร่วมห้ารายการอยู่ในช่วงของเซลล์ที่เรียบง่าย (เช่นถ้าอยู่ในคอลัมน์ของตัวเอง) การใช้ชุดCOUNTIFฟังก์ชันภายในการปิดล้อมANDควรทำงานสำหรับทุกรุ่นที่กลับไปที่ Excel 2000:

ภาพหน้าจอของ Excel

เพื่อความสะดวกในการใช้งานสูตรสำหรับเซลล์ B5 ได้รับการทำซ้ำด้านล่าง:

=AND(COUNTIF($E:$E,$A5)>0,COUNTIF($F:$F,$A5)>0,COUNTIF($G:$G,$A5)>0,COUNTIF($H:$H,$A5)>0,COUNTIF($I:$I,$A5)>0)

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

(โปรดทราบว่าอาจเป็นวิธีที่หรูหรากว่าในการทำสิ่งนี้โดยใช้ฟังก์ชั่นที่ทันสมัยเช่นCOUNTIFSถ้าต้องการเช่นนั้น)


0

หากคุณบันทึกข้อมูลเป็น CSV และนำเข้าสู่การเข้าถึง

เลือก "EmailAddress" ที่แตกต่างให้นับ ("EmailAddress") เป็น x จาก "ที่อยู่" กลุ่มโดย "EmailAddress"

จากนั้นคอลัมน์ที่สองที่มีเครื่องหมายxคือ 5 ที่อยู่อีเมลจะเกิดขึ้น 5 ครั้งดังนั้นพวกเขาจึงอยู่ในชั้นเรียนทั้งหมด 5 ชั้น


0

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

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

สรุปขั้นตอนมาโคร

  1. เมื่อคุณเรียกใช้แมโครมันจะขอให้คุณเลือกช่วงของเซลล์ที่มีข้อมูลที่คุณกำลังมองหา ตัวอย่างเช่นสมมติว่าในแผ่นงานแรกของคุณคุณมีที่อยู่อีเมลทั้งหมดในคอลัมน์ C จาก C2 ถึง C101 คุณจะต้องเลือกช่วงนั้น
  2. จากนั้นแมโครจะขอให้คุณเลือกช่วงที่คุณต้องการตรวจสอบ เพียงเลือกช่วงที่มีที่อยู่อีเมลสำหรับกิจกรรมที่สองของคุณ
  3. จากนั้นแมโครจะพร้อมท์ให้คุณระบุ 'ความคิดเห็น' สำหรับแมโครที่จะใช้เพื่อระบุว่าได้พบรายการที่ตรงกัน คุณสามารถระบุอะไรก็ได้ที่นี่เช่น "พบ", "ใช่" ฯลฯ
  4. ในที่สุดแมโครจะขอให้คุณป้อนตัวอักษรคอลัมน์ นี่คือคอลัมน์ที่แมโครจะวาง 'ความคิดเห็น' ของคุณจากขั้นตอนก่อนหน้า

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

สมมติว่าคุณมีแผ่นงานห้าแผ่นที่เหมือนกันในสมุดงานของคุณแต่ละแผ่นสำหรับแต่ละรายการการเข้างาน สมมติว่าคอลัมน์ A ถึง F บรรจุในแต่ละแผ่นงานและเป็นคอลัมน์ C ที่มีที่อยู่อีเมล สมมติว่าคุณมีผู้เข้าร่วม 100 คนดังนั้นที่อยู่อีเมลจะปรากฏจาก C2 ถึง C101 ในแต่ละแผ่นงาน

เรียกใช้แมโคร

ที่ขั้นตอนที่ 1เลือกช่วง C2: C101 ในแผ่นงานแรกของคุณ ที่ขั้นตอนที่ 2เลือกช่วง C2: C101 ในแผ่นงานที่สองของคุณ ที่ขั้นตอนที่ 3 ให้ป้อน "ใช่" เป็นความคิดเห็นของคุณ และสำหรับขั้นตอนที่ 4 ให้ป้อนตัวอักษร G (เพียงเพราะมันเป็นคอลัมน์แรกที่ว่างเปล่าตามตัวอย่างของฉัน แต่ในกรณีของคุณมันน่าจะเป็นตัวอักษรคอลัมน์อื่น)

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

ตอนนี้ในกรณีของคุณคุณจะต้องเรียกใช้แมโครอีกครั้ง ทำตามขั้นตอนข้างต้นยกเว้นเวลานี้ในขั้นตอนที่ 2 เลือกช่วง C2: C101 ในแผ่นงานที่สามของคุณและที่ขั้นตอนที่ 4 เลือกคอลัมน์ถัดไปหลังจากที่คุณเลือกไว้ก่อนหน้านี้ ในสถานการณ์ของฉันตอนนี้มันจะเป็นคอลัมน์ H

เมื่อแมโครทำงานคอลัมน์ H ของแผ่นงานแรกของคุณจะมีข้อความ "ใช่" ในแถวใดก็ได้ที่พบที่อยู่อีเมลในรายการผู้เข้าร่วมคนที่สาม

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

สุดท้ายก่อนที่จะใช้แมโครใด ๆ ให้สำรองไฟล์ Excel ของคุณเพื่อให้คุณมีสำเนาที่สมบูรณ์!

Sub FindMatchingData()
'This macro and Excel Add-In was designed by Monomeeth to allow users an easy
'way to find matching data between two ranges, either within the same worksheet or
'across worksheets within the same workbook.

Dim MySearchRange As Range
Dim c As Range
Dim findC As Variant

Set MyRange = Application.InputBox( _
Prompt:="Select the range of cells containing the data you are looking for:", Type:=8)

Set MySearchRange = Application.InputBox( _
    Prompt:="Select the range you wish to investigate:", Type:=8)

Response = InputBox(Prompt:="Specify the comment you wish to appear to indicate the data was found:")

MyOutputColumn = Application.InputBox( _
Prompt:="Enter the alphabetical column letter(s) to specify the column you want the message to appear in.")

Set Sht = MyRange.Parent

  For Each c In MyRange
    If Not c Is Nothing Then

Set findC = MySearchRange.Find(c.Value, LookIn:=xlValues)

        If Not findC Is Nothing Then
           Sht.Range(MyOutputColumn & c.Row).Cells.Value = Response
        End If
    End If
  Next
Excel.Application.SendKeys Keys:="^{HOME}", Wait:=True
DoEvents
MsgBox "Investigation completed."

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