PDA

Показать полную графическую версию : Подсчет совпадающий значений.


kontox
29-12-2015, 15:52
Подскажите, есть 2 столбца. В них фамилии. Когда сделать ,чтобы мне был выдан список тех фамилий, который совпадает с первым столбцом. На всякий случай прикрепил эксель файл

Iska
30-12-2015, 03:15
список тех фамилий, который совпадает с первым столбцом. »
Фактически, Вам надо найти все совпадения столбцов между собой, так? Замечание: в первом столбце у Вас есть пустая ячейка (A44). Это будет препятствовать корректному определению диапазона ячеек столбца. Я убрал эту пустую ячейку.

У меня под Office 2003 сработало так (простой запрос на пересечение с группировкой):
Sub Sample()
Const adCmdText = &H1
Const adExecuteNoRecords = &H80

Dim strAddressColumnA As String
Dim strAddressColumnB As String

With ThisWorkbook.Worksheets.Item(1)
strAddressColumnA = .Name & "$" & .Range("A1", .Range("A1").End(xlDown)).Address(False, False)
strAddressColumnB = .Name & "$" & .Range("B1", .Range("B1").End(xlDown)).Address(False, False)
End With

With CreateObject("ADODB.Connection")
.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.FullName & ";" & _
"Extended Properties=""Excel 8.0;" & _
"HDR=No;"";"

.Execute _
"INSERT INTO [" & ThisWorkbook.Worksheets.Item(2).Name & "$] IN '' [Excel 8.0;Database=" & ThisWorkbook.FullName & ";HDR=No;] " & _
"SELECT ColumnB.F1 " & _
"FROM [" & strAddressColumnB & "] ColumnB INNER JOIN [" & strAddressColumnA & "] ColumnA " & _
"ON ColumnB.F1 = ColumnA.F1 " & _
"GROUP BY ColumnB.F1"

.Close
End With
End Sub
Если не сработает — смотрите Connection String под Вашу версию Office здесь (http://www.connectionstrings.com/excel/).

Рассчитано, что данные будут расположены непрерывно на первом листе Рабочей книги с первой же строки в первых двух столбцах без заголовков. Результат совпадений будет помещён на второй лист (он а) должен быть, и б) должен быть пустым).

http://i.imgur.com/NKJ1FMd.png




© OSzone.net 2001-2012