ดูภาพด้านล่างของ 3 อินพุตของฉัน (คอลัมน์ A: C) และเอาท์พุทที่คาดหวัง (คอลัมน์ D)
ฉันต้องการแสดงรายการค่าที่ไม่ซ้ำกันสำหรับแต่ละแถวเป็นผลลัพธ์โดยคั่นด้วยเครื่องหมายจุลภาค
ดูภาพด้านล่างของ 3 อินพุตของฉัน (คอลัมน์ A: C) และเอาท์พุทที่คาดหวัง (คอลัมน์ D)
ฉันต้องการแสดงรายการค่าที่ไม่ซ้ำกันสำหรับแต่ละแถวเป็นผลลัพธ์โดยคั่นด้วยเครื่องหมายจุลภาค
คำตอบ:
ในเซลล์ D1 ใช้:
=TRIM(A1&IF(COUNTIF(A1:C1,B1)>1,"",","&B1)&IF(COUNTIF(A1:C1,C1)>1,"",","&C1))
จากนั้นลากลง
หากคุณมีคอลัมน์เพิ่มเติมให้เพิ่ม&IF(COUNTIF(A1:C1,C1)>1,"",","&C1)
เปลี่ยน C1 เป็น D1 สำหรับคอลัมน์ที่สี่และเป็น E1 สำหรับหนึ่งในห้าและต่อไป
นอกจากนี้ยังเปลี่ยนA1:C1
ในCOUNTIF
เพื่อให้เหมาะกับช่วงของคอลัมน์ที่คุณอาจใช้
UDF แบบง่ายนี้จะช่วยให้คุณรวมค่าที่ไม่ซ้ำกันในเซลล์คั่นด้วยเครื่องหมายจุลภาค
ใส่รหัสนี้เป็นโมดูลด้วยแผ่นงานที่เกี่ยวข้อง
Function CombineUnique(xRg As Range, xChar As String) As String
Dim xCell As Range
Dim xDic As Object
Set xDic = CreateObject("Scripting.Dictionary")
For Each xCell In xRg
xDic(xCell.Value) = Empty
Next
CombineUnique = Join$(xDic.Keys, xChar)
Set xDic = Nothing
End Function
มันทำงานอย่างไร:
เพื่อให้ได้ผลลัพธ์ที่ต้องการในเซลล์D2
เขียน
สูตรด้านล่างเขียนและกรอกลงไป
=CombineUnique(A2:C2,",")
หมายเหตุ ปรับการอ้างอิงเซลล์ในสูตรตามต้องการ
หากคุณมี Office 365 Excel คุณสามารถใช้ TEXTJOIN เป็นสูตรอาร์เรย์ได้
=TEXTJOIN(",",TRUE,IF(COLUMN(A2:C2)=MATCH(A2:C2,A2:C2,0),A2:C2,""))
เป็นสูตรอาร์เรย์ที่ต้องยืนยันด้วย Ctrl-Shift-Enter แทน Enter เมื่อออกจากโหมดแก้ไข
วนซ้ำนี้และทดสอบว่าอินสแตนซ์นั้นเป็นอินสแตนซ์แรกหรือไม่และถ้าเป็นเช่นนั้นมันจะเพิ่มลงในสตริง