powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Подсчет одинаковых значений в строках EXCEL
25 сообщений из 311, страница 9 из 13
Подсчет одинаковых значений в строках EXCEL
    #38104747
sidorsys
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Денис23, скажите вот у меня есть 200 магазинов на которые я гружу товар. как узнать какой магазин брал товар тоесть сработал в прошлом месяце и не сработал в этом!
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38109779
туцтуцтуц
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kimtan,

=СУММПРОИЗВ(1/СЧЁТЕСЛИ(B7:B10;B7:B10) Не могу конкретику на формулу набросить. Куда мне вставить СЧЁТЕСЛИ(B7:B10;">700") ??? Спасибо
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38110490
DV68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
туцтуцтуц,
Код: vbnet
1.
=СУММПРОИЗВ((B7:B10>700)/СЧЁТЕСЛИ(B7:B10;B7:B10))
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38113174
vlad_kkk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую всех. Помогите, пожалуйста. Перечитал всё, но под себя не нашел решения. На двух страницах исходные данные, которые необходимо сравнить построчно по фамилии (без имени и отчества) - 5-й столбец 1-го листа и 7-ой столбец 2-го листа и значению стоимости (2-ой столбец первого листа и 9-й столбец 2-го листа), и вывести на третью сраницу этого файла, совпавшие одновременно по обоим параметрам строки (фамилия и стоимость).
В приложении файл.

За оперативное решение готов перекинуть 500р. на яндекс-кошелек. Деньги не большие, конечно, но это дабы, хоть как-то компенсировать помощь.
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38113357
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vlad_kkk,
что-то вроде этого

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
' процедуру - в модуль обрабатываемой книги
Sub compareLName()
    Dim rs
    Dim scn$, sq$
    
    scn = "Provider=Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0 Xml;HDR=YES';data source=" & ThisWorkbook.Path
    sq = "select A.LNAME, A.SUMM from" & _
        " (select left([FROMNAME],instr(1,[FROMNAME],' ')-1) as LNAME,[PAYSUM] as SUMM from [Sheet1$]) as A" & _
        " inner join (select left([adresat],instrrev([adresat],' ')-1) as LNAME,[value] as SUMM from [Sheet2$]) as B" & _
        " on A.LNAME=B.LNAME and A.SUMM=B.SUMM"
    
    Set rs = CreateObject("adodb.recordset")
    
    rs.Open sq, scn
    ThisWorkbook.Worksheets(3).Cells(2, 2).CopyFromRecordset rs
    
    rs.Close
    Set rs = Nothing
End Sub

...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38113427
vlad_kkk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,

Я, честно говоря, первый раз с VBA сталкиваюсь, как и вообще с программированием. Вобщем, в открытом файле, который прикладывал в предыдущем посте, жму Alt+А11. Там дважды на Книге. В панель вставляю Ваш код, сохраняю, закрваю файл. Открываю файл. Ничего не просходит. Што делт? (с) так вопрошал таджик как-то раз. ))
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38113439
vlad_kkk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
P.S. Файл сохранен, как macros-enabled и имеет расширение .xlsm
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38113454
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vlad_kkkЯ, честно говоря, первый раз с VBA сталкиваюсь, как и вообще с программированием. Вобщем, в открытом файле, который прикладывал в предыдущем посте, жму Alt+А11. Там дважды на Книге. В панель вставляю Ваш код, сохраняю, закрваю файл. Открываю файл. Ничего не просходит. Што делт? (с) так вопрошал таджик как-то раз. ))

После того, как сохранили, - не закрыываете редактор VBA, а ставите курсор в любое место процедуры и нажимаете [F5] (выполнить).
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38113482
vlad_kkk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,

Возможно, у меня что-то не доустановлено?
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38113511
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vlad_kkk,
сорри, копипастил и не проверил код

строку
Код: vbnet
1.
scn = "Provider=Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0 Xml;HDR=YES';data source=" & ThisWorkbook.Path


замените на
Код: vbnet
1.
scn = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0 Xml;HDR=YES';data source=" & ThisWorkbook.Path



Лишнее 'Provider='
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38113553
vlad_kkk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,

Заменил. Сейчас другая ошибка.
Случайно, помимо Excel в включенными в него инструментами VBA не нужно ничего устанавливать?
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38113569
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vlad_kkk,
ещё две поправки:
на листах заменить '- ' (тире пробел) на '-' (тире) - чтобы нормально обрабатывало двойные фамилии

в коде заменить строку запроса на такую
Код: vbnet
1.
2.
3.
4.
    sq = "select A.LNAME, A.SUMM from" & _
        " (select left([FROMNAME],instr(1,[FROMNAME],' ')-1) as LNAME,[PAYSUM] as SUMM from [Sheet1$]) as A" & _
        " inner join (select mid([adresat],instr([adresat],' ')+1) as LNAME,[value] as SUMM from [Sheet2$]) as B" & _
        " on lcase(A.LNAME)=lcase(B.LNAME) and A.SUMM=B.SUMM"
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38113576
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vlad_kkk,
! ещё одна поправка - строка содинения!
Код: vbnet
1.
    scn = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0 Xml;HDR=YES';data source=" & ThisWorkbook.FullName
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38113612
vlad_kkk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,
Ага, есть. F5 отработало без ошибок. А теперь что? ) В экселе нажимаю Macros - View Macros - Run. Ошибок нет, но и ничего не появляется. Тысячу извининений за ламерство.
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38113630
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vlad_kkk,
после того, как процедура отработала, на третьем листе, начиная со второй строки, должен появиться список.
У меня на Ваших данных 13781832 это
ЛОГИНОВ2 120-00 В сумме заменил запятую на тире, чтобы CSV нормально отобразилось в форуме.
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38113664
vlad_kkk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,

Супер! Работеееет. Спасибо! Скиньте мне свой яндекс кошелек в личку. Сразу перекину, как обещал.
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38113668
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vlad_kkk,
у меня нееетууу :'(

ЗЫ: спасибо - достаточно.
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38113692
vlad_kkk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,

Еще раз спасибо! Если нужен будет нож (любой: охотничий, кухонник, складник) пишите в личку, сделаем скидку 30%.
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38113991
vlad_kkk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,

Вынужден еще раз обратиться к Вам. Прошу прощения.
А нельзя ли добавить такую фунцию, чтобы совпавшие данные удалились из первых двух листов?
Таком образом на первом и втором листе остануться только те, что не совпали.
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38114155
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vlad_kkk,
можно, но я смогу заняться этим только вечером ( ~ после 22:00 МСК ).
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38114192
vlad_kkk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,

Конечно, конечно. Даже не обсуждается.
И без этого выручили очень сильно.
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38114717
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vlad_kkk,
желательно сначала прочитатьЯ не ставил перед собой задачу написать универсальный код.
Процедуры жёстко привязаны к формату данных , представленых Вами в 13781832 .

1)
Код процедур compareLName, UpdateRec написан в предположении что:
- на первом листе (имя листа Sheet1) есть колонки 'PAYSUM', 'FROMNAME' (взаимное расположение не важно)
-ячейки в колонке 'PAYSUM' имеют цифровой либо общий формат
-данные в колонке 'FROMNAME' имеют структуру
Код: sql
1.
{фамилия_не_содержащая_пробелов_в_именительном_падеже}{пробел}{всё остальное}

То есть фамилией считается всё, что находится до первого пробела.
В представленных Вами данных есть исключения из этого правила:
ЮЛИЯЧ КУЗОВАХА (в строке 4) - фамилия НЕ перед первым пробелом
АНДРЕЙ ЮРЬЕВИЧ ЧЕРНОУСОВ (в строке 9) - фамилия НЕ перед первым пробелом
УСТЬ- КАЧКИНЦЕВ АЛЕКСАНДР ВАЛЕРЬЕВИЧ - (в строке 14) - фамилия продолжается после первого пробела
ЕГОРОВОЙ НАТАЛЬИ ВАЛЕРЬЕВНЫ (в строке 24) - фамилия НЕ в именительном падеже
ОЛЬГА БОНДАРЕНКО (в строке 24) - фамилия НЕ перед первым пробелом
АЛАУДИН ЦУРОВ (в строке 36) - фамилия НЕ перед первым пробелом

- на втором листе (имя листа Sheet2) есть колонки 'adresat', 'value' (взаимное расположение не важно)
-ячейки в колонке 'value' имеют цифровой либо общий формат
-данные в колонке 'adresat' имеют структуру
Код: sql
1.
{строка_не_содержащая_пробелов}{один_пробел}{фамилия_в_именительном_падеже}

То есть фамилией считается всё, что находится после первого пробела.
Второй лист на исключения не проверял.

- на третьем листе (имя листа Sheet3) есть колонки 'Фамилия', 'Стоиомость'
-! обращаю внимание на название 'Стои о мость'
-колонка 'Фамилия' - во втором столбце листа
-колонка 'Стоиомость' - в третьем столбце листа
-ячейки в колонке 'Стоиомость' имеют цифровой либо общий формат <-- не уверен, что условие обязательное


Код процедуры DelMarcked написан в предположении что:
-автофильтры на первых двух листах отключены
-в строках, которые надо удалить содержимое колонки "ФИО" начинается с '~~' ( две тильды )
-на первом листе колонка "ФИО" находится в пятом столбце листа
-на втором листе колонка "ФИО" находится в седьмом столбце листа

2)
Код НЕ БУДЕТ РАБОТАТЬ правильно если:
-не будут выполнены условия на структуру данных в колонках с "ФИО"
или
-будут измененны названия листов (отосится к процедурам compareLName, UpdateRec)
или
-будут изменены подписи столбцов в листах (отосится к процедурам compareLName, UpdateRec)
или
-будет изменено расположение столбцов с данными на первом и втором листах (отосится к процедуре DelMarcked)
или
-будет изменено расположение столбцов с данными на третьем листе (отосится к процедуре UpdateRec)
кодПорядок запуска
1. compareLName
скопирует соответствующие данные с первых двух листов на третий
2. UpdateRec
сохранит книгу и, используя данные третьего листа, на первых двух добавит к "ФИО" префикс '~~' в строках, подлежащих удалению
3. DelMarcked
удалит на первых двух листах строки, в которых "ФИО" начинается с '~~'

Код: 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.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
' процедуру - в модуль обрабатываемой книги
' сверяет данные на первых двух листах ("фамилия", сумма) и вставляет в третий лист
' "фамилию" и сумму, которые есть и на первом и на втором листе
' REM эту процедуру Вы уже видели
Sub compareLName()
    Dim rs
    Dim scn$, sq$
    
    scn = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0 Xml;HDR=YES';data source=" & ThisWorkbook.FullName

    sq = "select A.LNAME, A.SUMM from" & _
        " (select left([FROMNAME],instr(1,[FROMNAME],' ')-1) as LNAME,[PAYSUM] as SUMM from [Sheet1$]) as A" & _
        " inner join (select mid([adresat],instr([adresat],' ')+1) as LNAME,[value] as SUMM from [Sheet2$]) as B" & _
        " on lcase(A.LNAME)=lcase(B.LNAME) and A.SUMM=B.SUMM"
    
    Set rs = CreateObject("adodb.recordset")
    
    rs.Open sq, scn
    ThisWorkbook.Worksheets(3).Cells(2, 2).CopyFromRecordset rs
    
    rs.Close
    Set rs = Nothing
    
    'Call UpdateRec
End Sub


' процедуру - в модуль обрабатываемой книги
' сохраняет книгу и на первых двух листах добавляет к "ФИО" префикс '~~'
' в тех строках, аналог которых есть на третьем листе
Sub UpdateRec()
    Dim cn, scs$, sq1$, sq2$
    
    ThisWorkbook.Save
    
    scs = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0 Xml;HDR=YES';data source=" & ThisWorkbook.FullName

    sq1$ = "update [Sheet1$] as A set [FROMNAME]='~~' & [FROMNAME] where exists (" & _
        "select 'x' from [Sheet3$] as B" & _
        " where lcase(B.[Фамилия])=lcase(left(A.[FROMNAME],instr(1,A.[FROMNAME],' ')-1))" & _
        " and B.[Стоиомость]=A.[PAYSUM])"

    sq2$ = "update [Sheet2$] as A set [adresat]='~~' & [adresat] where exists (" & _
        "select 'x' from [Sheet3$] as B" & _
        " where lcase(B.[Фамилия])=lcase(mid(A.[adresat],instr(1,A.[adresat],' ')+1))" & _
        " and B.[Стоиомость]=A.[value])"
    
    Set cn = CreateObject("adodb.connection")
    cn.Open scs
    
    cn.Execute sq1
    cn.Execute sq2
    
    cn.Close
    Set cn = Nothing
    
    'Call DelMarcked
End Sub


' процедуру - в модуль обрабатываемой книги
' на первых двух листах удаляет строки, в которых колонка "ФИО" начинается с '~~'
' !! перед выполнением процедуры автофильтр на первых двух листах должен быть отключен
Sub DelMarcked()
    Dim iRow&, k&
    Dim arr
    
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    
    arr = Array(1&, 5&, 2&, 7&)
    
    For k = LBound(arr) To UBound(arr) Step 2
        With Worksheets(arr(k)).Cells(1, arr(k + 1))
            .Resize(.End(xlDown).Row).NumberFormat = "General"
            
            .AutoFilter Field:=1, Criteria1:="=~~*"
            iRow = .End(xlDown).Row - 1
            
            With .Offset(1)
                If iRow > 1 Then
                    .Resize(iRow).EntireRow.Delete
                ElseIf iRow = 1 Then
                    .EntireRow.Delete
                End If
            End With

            .AutoFilter
        
        End With
    Next k
    
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub

...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38118914
Elenaz33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Перечитала тему, но увы не смогла осилить задачу.
Пробовала сводные таблицы - не помогло, не работают как надо они, а по идее должны.
Суть: Есть массив цифр в ячейках и столбцах, нужно подсчитать сколько раз повторяется каждая цифра.
СПАСИБО!
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38118955
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elenaz33,

И в какое место и в каком виде должен выводиться результат?
...
Рейтинг: 0 / 0
Подсчет одинаковых значений в строках EXCEL
    #38120403
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробуйте макрос
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub bb()
Dim x
With CreateObject("scripting.dictionary")
    For Each x In ActiveSheet.UsedRange.Value
        .Item(x) = .Item(x) + 1
    Next
    Cells(Rows.Count, 1).End(xlUp).Offset(2).Resize(.Count, 2) = _
      Application.Transpose(Array(.keys, .items))
End With
End Sub
...
Рейтинг: 0 / 0
25 сообщений из 311, страница 9 из 13
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Подсчет одинаковых значений в строках EXCEL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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