Страницы: 1
RSS
Выбор и подсчет количества повторяющихся значений в соседний столбец (новый лист)
 
Добрый день!
В столбце "Вагоны" список вагонов, в каждом вагоне по 4 детали (столбец "Детали").
Список для примера, на самом деле списки всегда разные и по 200-300 вагонов (800-1200 строк).
Подскажите, как вывести список вагонов по одному (т.е. количество вагонов и общий пономерной список, в котором каждый вагон в "одном экземпляре) - столбец "Фильтр", или на новый лист?
Надеюсь понятно объяснил)))
Спасибо!  
 
Добрый
Так что в итоге нужно получить? Номера вагонов без дублей?
 
Совершенно верно!
 
Код
С4         =ЕСЛИОШИБКА(ИНДЕКС($A$1:$A$15;ПОИСКПОЗ(СТРОКА(C1);D:D;0));"")
D4         =D3+(СЧЁТЕСЛИМН($A$1:A4;A4)=1)
и протянуть вниз.
 
МатросНаЗебре, Что-то не получается...
 
формула массива
Код
=ЕСЛИОШИБКА(ИНДЕКС(A$4:A$15;НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИ(C$3:C3;A$4:A$15)=0;СТРОКА(A$4:A$15)-3);1));"")
 
V, Тоже не получается... что-то не так делаю...?
 
evg_glaz, если подойдет макрос с выгрузкой на новый лист то (запускать по Alt+F8):

Код
Sub CrasyTrain()
Dim myConnect As String, mySQL As String, myRecord As Object, QT As QueryTable, conn
    myConnect = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
           "Data Source=" & ActiveWorkbook.FullName & ";" & _
           "Extended Properties=""Excel 12.0;HDR=NO"""
    Set myRecord = CreateObject("ADODB.Recordset")
    ' в строке ниже Лист1 - это лист с данными (изменить на нужный) _
    [F1] - первый столбец (изменить на нужный (если нужен второй то [F2] и т.д
    mySQL = "SELECT [F1] as Вагоны FROM [Лист1$] GROUP BY [F1] HAVING [F1] IS NOT NULL ORDER BY [F1]"
    myRecord.Open mySQL, myConnect
With Worksheets("Лист2") ' Лист2 заменить на имя листа с результатом
    .Cells.Clear
    Set QT = .QueryTables.Add(myRecord, .Range("A1"))
    QT.Refresh
    For Each conn In .QueryTables
        conn.Delete
    Next conn
End With
    Set QT = Nothing
    myRecord.Close
    Set myRecord = Nothing
    For Each conn In ThisWorkbook.Connections
        conn.Delete
    Next conn
End Sub
Изменено: artemkau88 - 17.06.2022 17:02:44
 
artemkau88, спасибо :) !!! То что нужно!
Спасибо всем - тему можно закрывать!
 
Здравствуйте.
Почему в критерии функции СУММЕСЛИ, СЧЕТЕСЛИ нельзя написать ">=F2"? Почему именно ">="&F2?  
 
evg_glaz, рад за Вас! :)

Подправил код в сообщении #8 и обновил файл.
 
Цитата
Елизавета Кулёмина написал:
Почему в критерии функции СУММЕСЛИ, СЧЕТЕСЛИ нельзя написать ">=F2"? Почему именно ">="&F2?
Для Вас можно, пишите.
 
Цитата
написал:
evg_glaz , рад за Вас!  

Подправил код в сообщении #8 и обновил файл.
А в чем правка?
 
Цитата
написал:
evg_glaz , рад за Вас!  

Подправил код в сообщении #8 и обновил файл.
Понял! Спасибо!!!
 
evg_glaz, добавил еще вариант:
Код
Sub GetDetails()
    Dim Dict As Object, i, arr, CellToPaste As Range
    Set Dict = CreateObject("Scripting.Dictionary")
With ActiveSheet
    arr = .Cells(4, 1).CurrentRegion
    For i = LBound(arr, 1) To UBound(arr, 1)
        If Not Dict.exists(arr(i, 1)) Then
            Dict.Add arr(i, 1), arr(i, 2)
        Else
            Dict(arr(i, 1)) = Dict(arr(i, 1)) & "; " & arr(i, 2)
        End If
    Next i
End With
Set CellToPaste = Application.InputBox("Выберите ячейку для выгрузки результата", Type:=8)
CellToPaste.Resize(Dict.Count, 1) = Application.Transpose(Dict.keys()): CellToPaste.Offset(0, 1).Resize(Dict.Count, 1) = Application.Transpose(Dict.items())

End Sub

запускаете макрос GetDetails, выбираете ячейку для выгрузки результта.
 
Msi2102, я хотела бы получить объяснение :)
Я только начинаю изучать Excel, поэтому помогите, если не сложно)  
 
Цитата
написал:
А в чем правка?
подправил вот эту часть кода:

Код
' код....    
For Each conn In .QueryTables
        conn.Delete
    Next conn
End With
    Set QT = Nothing
' код...
End Sub
 
Здравствуйте, почему функция =СЧЕТЕСЛИ(prices;">="&F2;prices) не выглядит как синтаксис =СЧЕТЕСЛИ(диапазон;критерий)
Почему в критерий нельзя записать как ">=F2"
prices - наименование диапазона
 
F2 это ссылка на ячейку, а ">=" это текст для их объединения нужен Амперсанд (&)
Если Вы напишите так ">=F2", то это будет просто текст и Excel не увидит ссылку на ячейку
Объяснил как мог  :D
 
artemkau88,  #15- Так вообще очень удобно!!!
СПАСИБО БОЛЬШОЕ!!!
 
evg_glaz,
Как это можно быстро руками сделать - Встаете в ячейку А3, жмете Контрл-Шифт-СтрелкаВниз (выделяются все вагоны), копируете выделенное, переходите в ячейку Н3 (например), вставляете скопированное, идете на вкладку Данные и жмете там кнопку "Удалить дубликаты". Вылезает окошко, нажимаете там ОК
Скажи мне, кудесник, любимец ба’гов...
Страницы: 1
Наверх