powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / подсчет к-ва повторяемых ячеек по условию
10 сообщений из 10, страница 1 из 1
подсчет к-ва повторяемых ячеек по условию
    #38328699
Firazim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Прошу Вашей помощи, самому как то руки не доходят.

не могу средствами VBA реализовать подсчет к-ва одинаковых номеров согласно двум условиям, пока что додумался к простому подсчету одинаковых номеров.

Задача:
необходимо подсчитать к-во повторяемых номеров если дата больше текущей, а так же статус больше 0.

стандартными формулами привел пример( но не подходит из-за большого массива (до 60тыс. строк) висит).
файл во вложении.
+
подскажите как реализовать автоматическое расширение диапазона проверки.
...
Рейтинг: 0 / 0
подсчет к-ва повторяемых ячеек по условию
    #38329840
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Средства VBA" - это макросы, которые у вас и не наблюдаются.
Впрочем, можно и формулами:
Код: vbnet
1.
=СУММПРОИЗВ(($A$2:$A$24>$A2)*($B$2:$B$24=$B2)*($C$2:$C$24>0))
...
Рейтинг: 0 / 0
подсчет к-ва повторяемых ячеек по условию
    #38330086
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Firazim,

Внутренний запрос SQL думается мне должен помочь. Его можно и через VBA.
...
Рейтинг: 0 / 0
подсчет к-ва повторяемых ячеек по условию
    #38330338
Написал запрос, как понял задачу. 1 момент - последня дата, исходя из условия "дата больше текущей", получается, должна отсутствовать в выборке.
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT t1.Дата, t1.Номер, t1.Статус,
(SELECT  COUNT(t2.Дата) as C_N
From range0 AS t2
WHERE t1.Номер=t2.Номер AND t1.Дата<t2.Дата AND t2.Статус>0 ) AS d_t
FROM range0 AS t1
 WHERE t1.Статус>0
GROUP BY t1.Дата, t1.Номер, t1.Статус


Как обернуть в VBA можешь нагуглить по паре EXCEL + ADO
-----
Не люблю Progress OpenEdge.
...
Рейтинг: 0 / 0
подсчет к-ва повторяемых ячеек по условию
    #38333025
Firazim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

Добрый день!

формула работает. но на 60тыс. строк компьютер не тянет. :(
...
Рейтинг: 0 / 0
подсчет к-ва повторяемых ячеек по условию
    #38333132
Firazim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ниже макрос который по какой то причине не попал в файл.

Sub n()
For i = 2 To 24
Cells(i, 5) = Application.WorksheetFunction.CountIf([b2:b24], Cells(i, 2))
Next i

End Sub

как можно его переделать под несколько условий?
если словами то: посчитать сколько раз повторяется данный номер если дата больше текущей.
...
Рейтинг: 0 / 0
подсчет к-ва повторяемых ячеек по условию
    #38333289
Firazim, А что не так с запросом? Он даже при самосоединении должен быть шустрым?
...
Рейтинг: 0 / 0
подсчет к-ва повторяемых ячеек по условию
    #38333373
Firazim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
грязный комплектовщик, честно говоря не могу додуматься как его прикрутить :(
...
Рейтинг: 0 / 0
подсчет к-ва повторяемых ячеек по условию
    #38334564
Firazimгрязный комплектовщик, честно говоря не могу додуматься как его прикрутить :(
Тут коллега специальную ф-ю выкладывал для такого:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
Public Function ADO_R_Dmitry(ByVal StrSql$, ByVal FilePath$, ByVal OutputRange As Range, _
ByVal FieldsName As Boolean, ByVal OutputFieldsName As Boolean)
'==============================================================================
'*Описание функции : Возвращает набор записей Recordset с первой ячейки адреса,
'* указанного диапазона.
'*strSql - Конструкция SQL запроса.
'* FilePath - Полный путь к файлу включая имя и расширение.
'* OutputRange - адрес ячеки с которой начинается вывод данных.
'* FieldsName - используются или нет заголовки столбцов (True - False)
'* OutputFieldsName - вывод данных с заголовками или без (True - False), _
'==============================================================================
'* Автор R Dmitry (Дмитрий Русак dg_rusak@mail.ru skype: RDG_Dmitry) |
'* WM:_R269866874234 U144446690328 |
'==============================================================================
Dim sCon As String, FieldName As String
Dim rs As Object, cn As Object
Set rs = CreateObject("ADODB.Recordset")
Set cn = CreateObject("ADODB.Connection")
If FieldsName Then FieldName = "Yes" Else FieldName = "No"
Select Case Val(Application.Version)

Case Is < 12
sCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FilePath _
& ";Extended Properties=""Excel 8.0;HDR=" & FieldName & ";IMEX=1"";"
Case Is >= 12
sCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FilePath _
& ";Extended Properties=""Excel 12.0;HDR=" & FieldName & ";IMEX=1"";"
End Select

cn.Open sCon
If Not cn.State = 1 Then Exit Function
Set rs = cn.Execute(StrSql)
If Not FieldsName Then OutputFieldsName = False
If OutputFieldsName Then
For i = 0 To rs.Fields.Count - 1
OutputRange.Offset(0, i) = rs.Fields(i).Name
Next
Set OutputRange = OutputRange.Offset(1, 0)
End If
DoEvents
OutputRange.CopyFromRecordset rs
rs.Close: cn.Close
Set cn = Nothing: Set rs = Nothing
End Function

Sub GetFileName(ByRef OtputPath)
    With Application.FileDialog(msoFileDialogFilePicker)
        .Show
        If .SelectedItems.Count > 0 Then Set OtputPath = .SelectedItems
    End With
End Sub

Sub test()
strSql2 = "SELECT * FROM [Ввод$]"
GetFileName tt
If IsEmpty(tt) Then Exit Sub
Call ADO_R_Dmitry(strSql2, tt(1), Sheets(1).[a1], True, True)
End Sub
...
Рейтинг: 0 / 0
подсчет к-ва повторяемых ячеек по условию
    #38342300
Firazim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
грязный комплектовщик,

Спасибо огромное! еле разобрался!

:( но к сожалению довольно таки долго, запрос повторяет данные, если повтор отключать что довольно таки ускоряет работу то данные проставляются на свой лад, согласно какой то своей логике.

может все же найдется вариант решение моей задачи более оптимально?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / подсчет к-ва повторяемых ячеек по условию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]