Страницы: 1
RSS
посчитать количество строк под определенной строкой
 
есть список контрагентов из 1с отфильтрован по торговым представителям. хотелось бы получать количество контрагентов по каждому торговому автоматически, а не в ручную выделять строки.. знаю что возможно, но как?..
например:
1.Кривоносенко =117
2.Матусов =127

дополнение к задаче:
по хорошему хотелось бы в отдельной книге иметь типо сводной таблицы в которой два столбца 1.ТП 2.Количество контрагентов(которое удачно считает макрос JayBhagavan).
незадача в том что из 1с отчет коряво выдаётся и сводная формироваться не хочет...
что делать? трясти админа 1с чтоб форму отчёта подкорректировал? или без жертв можно обойтись?...

спасибо за помощь, правда спасибо
Изменено: Mart - 31.08.2015 11:36:36
 
вариант с доп столбцом (подрезанный дабы влез)
Лень двигатель прогресса, доказано!!!
 
Сергей, тоже самое что и выделять. заморочка в том, что этот список контрагентов дополняется каждый день. может както со сводной замутить...
 
Скрытый текст

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, мне не понятно...
 
Цитата
Mart написал: мне не понятно...
Тогда Вам сюда.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Через формулу массива =МИН(ЕСЛИ(СТРОКА($C$9:$C$2079)>СТРОКА(D628);ЕСЛИ($C$9:$C$2079=" ";СТРОКА($C$9:$C$2079);"Меньше");"Меньше"))-СТРОКА(D628)-1

ps Обрезал данные, чтобы по размеру файл прошел, поэтому последнее значение некорректно
pps А вобще лучше исходные данные иметь в нормальном виде, чтобы без проблем производить вычисления, а не придумывать костыли
 
по хорошему хотелось бы в отдельной книге иметь типо сводной таблицы в которой два столбца 1.ТП 2.Количество контрагентов(которое удачно считает макрос JayBhagavan).
незадача в том что из 1с отчет коряво выдаётся и сводная формироваться не хочет...
что делать? трясти админа 1с чтоб форму отчёта подкорректировал? или без жертв можно обойтись?...
 
Цитата
Mart написал: что делать?
Если нет возможности выгружать данные из 1с в удобоваримом виде, я бы создал файл в нем макрос который обрабатывает информацию из 1с и формирует "правильный диапазон" на отдельном листе, а уже этот диапазон служит источником для сводной таблицы. Как то так ...
Редко но метко ...
 
GIG_ant, вариант, тольк макросы для меня тёмный-тёмный лес....
 
Mart, покажите в экселевском файле в каком виде нужен результат - попробую помочь.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, второй столбец акб я сам думаю смогу по аналогии подтянуть, а с 3,4,5 столбцами постараюсь разобраться своими силами используя ваши данные. буду благодарен и признателен
 
Цитата
Mart написал (2 РАЗА!):
Цитата
незадача в том что из 1с отчет коряво выдаётся и сводная формироваться не хочет...
Что Вы имеете в виду? Если то, что из 1С не выводится доп. столбец с названием склада - Вам Сергей в Анализ1.xlsx показал, как этот столбец добавить. А с пом.этого доп. столбца Сводная тоже не строится?
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Михаил Лебедев, добавляя этот столбец получается что я проделываю ту же работу но другим (более сложным) способом. мне с этого отчёта нужно только количество контрагентов и не важно какие именно(названия). если делать весь отчёт автоматически, чего я хочу, то в общем экономия времени утром порядка 10-20минут, а для утра рабочего дня это большое преимущество. то есть я хочу сказать, что хочется получить готовый результат для отчёта без редактирования файла из 1с.
 
Mart, см. файл.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan,о как красиво =) завтра на работе поковыряюсь. спасибо большое!
 
Код
Sub CntCli()
Dim rList As Range, c, oDic As Object, tName$
Set oDic = CreateObject("scripting.dictionary")
Set rList = ActiveSheet.Range("A8:A" & Cells(Rows.Count, 1).End(xlUp).Row)
For Each c In rList
    If c.Font.Color = 0 Then
        tName = c.Value
        oDic(tName) = 0
    ElseIf oDic.exists(tName) Then
        oDic(tName) = oDic(tName) + 1
    End If
Next

With Workbooks.Add
    .Sheets(1).Cells(1, 1).Resize(oDic.Count, 1) = Application.Transpose(oDic.keys)
    .Sheets(1).Cells(1, 2).Resize(oDic.Count, 1) = Application.Transpose(oDic.items)
End With

End Sub
F1 творит чудеса
 
доброго времени суток. у меня снова та же проблема. снова поменяли формат вывода данных из 1с. и макрос который верой и правдой прослужил год - не работает (
сам разобраться я не смог.
так вот повторюсь. есть список контрагентов поделённых на 17 торговых представителей. нужно макрос заставить считать этих контрагентов для каждого торгового в 7 столбце.
старый рабочий макрос прикрепил тоже
 
Mart, за год можно было разобраться с этим простым макросом.
Замените строку:
Код
        ElseIf cur_fcolor = cag_fcolor Then
на:
Код
        ElseIf Left(cl.Value, 4) = "    " Then
Изменено: JayBhagavan - 14.08.2016 10:38:13

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
Страницы: 1
Читают тему
Наверх