Page 1 of 1
เทียบข้อมูลซ้ำ หาตัวซ้ำในโจทย์ และแสดงตัวซ้ำตัวเดียว
Posted: Fri Jan 20, 2012 10:20 am
by Plan800
ผมกำลังหัดเขียน VB โดยใช้ Array ในการเทียบข้อมูลซ้ำตามตัวอย่าง อยากจะหาตัวซ้ำในโจทย์ และแสดงออกมาตัวที่ซ้ำตัวเดียว เพื่อนผมบอกว่าให้เขียนวนลูปอีกชุด แต่พอผมศึกษา Array พบว่าเขียน Array 2 มิติ เทียบข้อมูลได้ แต่ผมเขียนลูปไม่ได้ ขอบพระคุณอย่างสูงครับ
Re: เทียบข้อมูลซ้ำ หาตัวซ้ำในโจทย์ และแสดงตัวซ้ำตัวเดียว
Posted: Fri Jan 20, 2012 11:05 am
by snasui
จากตัวอย่างที่ให้มาลองดูตัวอย่าง Code ตามด้านล่างเพื่อจะ List ว่ามีค่าใดซ้ำกันบ้างครับ
Code: Select all
Sub ListDup()
Dim rAll As Range
Dim r As Range
Dim rTarget As Range
With Sheets("Sheet1")
.Range("H2", .Range("H2").End(xlDown)).ClearContents
Set rAll = .Range("G2", .Range("G" & Rows.Count).End(xlUp))
Set rTarget = .Range("H2", .Range("H" & Rows.Count).End(xlUp))
For Each r In rAll
If Application.CountIf(rAll, r) > 1 And Application.CountIf(rTarget, r) = 0 Then
.Range("H" & Rows.Count).End(xlUp).Offset(1, 0) = r
Set rTarget = .Range("H2", .Range("H" & Rows.Count).End(xlUp))
End If
Next r
End With
End Sub
Re: เทียบข้อมูลซ้ำ หาตัวซ้ำในโจทย์ และแสดงตัวซ้ำตัวเดียว
Posted: Fri Jan 20, 2012 11:15 am
by bank9597
สุดยอดครับ
Re: เทียบข้อมูลซ้ำ หาตัวซ้ำในโจทย์ และแสดงตัวซ้ำตัวเดียว
Posted: Fri Jan 20, 2012 11:31 am
by Plan800
ขอบพระคุณครับ อาจารย์ สุดยอดจริงๆ
Re: เทียบข้อมูลซ้ำ หาตัวซ้ำในโจทย์ และแสดงตัวซ้ำตัวเดียว
Posted: Fri Jan 20, 2012 12:43 pm
by norkaz
แถมครับ
กรณีใช้สูตร
1.ที่ H2 คีย์
=IFERROR(INDEX($G$1:$G$16,SMALL(IF(IFERROR(MATCH($G$2:$G$16,$G$2:$G$16,0),"")<>ROW($G$2:$G$16)-ROW($G$2)+1,ROW($G$2:$G$16)),ROW(G1))),"")
2.กดเป็น Array (กด Ctrl + Shift ค้างไว้ จากนั้นกด Enter เข้ากล Array)
3.Copy สูตรลงล่าง
Norkaz