Тема закрыта
  • Ales MemberАвтор темы
    офлайн
    Ales Member Автор темы

    204

    22 года на сайте
    пользователь #2704

    Профиль
    Написать сообщение

    204
    # 26 сентября 2002 16:03

    Ребята, помогите.

    Вопрос:

    Из телефонной компании, регулярно присылают распечатку по звонкам из конторы, до поры до времени эти счета никто не открывал, но последнее время, суммы стали расти прямо на глазах.

    Озабоченный шеф, поручил сделать следующее:

    Сбить таблицу таким образом, что бы можно было видеть на какой номер сколько звонили (сколько это не во времени, а в рублях).

    Пример:

    5642764742 - 345234р.

    3623645656 - 546435р.

    типо того.

    Т.е. собственно отсортировать по номерам - отсортировал, а какую формулу можно придумать, что бы он(компьютер :) ) суммировал определенное значение (стоимость) в строчках с одинаковыми значениями (номера телефонов).

    Ребят, немного путанно. Попробую еще раз сформулировать.

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

    Ниже - кусок исходной таблицы.

    И не сочтите за ламерский вопрос. Никто помочь не в силах.

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

    Да, вариант - забить вручную - не рассматривается. 12 номеров с приличным листом звонков с каждого.

    19348 2337699 8029 МОБИЛЬНАЯ СЕТЬ 6144423 28.08.2002 10:38 1 1 НЕТ АВТ 24360

    19348 2337699 8029 МОБИЛЬНАЯ СЕТЬ 6151858 12.08.2002 17:22 1 1 НЕТ АВТ 24360

    19348 2337699 8029 МОБИЛЬНАЯ СЕТЬ 6210222 30.08.2002 11:53 2 1 НЕТ АВТ 48720

    19348 2337699 8029 МОБИЛЬНАЯ СЕТЬ 6212315 20.08.2002 17:13 1 1 НЕТ АВТ 24360

    Заранее Спасибо (но уже почти безнадежно)

  • NiteRider Senior Member
    офлайн
    NiteRider Senior Member

    11812

    21 год на сайте
    пользователь #4603

    Профиль
    Написать сообщение

    11812
    # 26 сентября 2002 17:27

    Хм... отфильтруй в Икселе по номеру телефона и посчитай ПРОМЕЖУТОЧНЫЕ_ИТОГИ по сумме.

    Отфильтровать список 12 раз - всяко быстрее, чем прогу или макрос сочинять. Добро бы у вас сотни две номеров было

    с уважением

    What's mine is mine!
  • SathanaS Onliner Team
    офлайн
    SathanaS Onliner Team

    1015

    22 года на сайте
    пользователь #1622

    Профиль
    Написать сообщение

    1015
    # 26 сентября 2002 18:04

    в Access'e пишется запросик. в котором идет группировка по полю "номер телефона" а поле "стоимость" суммируется. и все.

  • WasserKocher Куратор team
    офлайн
    WasserKocher Куратор team

    12098

    23 года на сайте
    пользователь #132

    Профиль
    Написать сообщение

    12098
    # 26 сентября 2002 18:10

    Макрос вам поможет. Я уже давно в Экселе и вообще на VB ничего не писал, но тряхнул стариной:

    Пусть в ячейках A1 - AN находятся отсортированные номера, в ячейках B1 - BN - суммы. Требуется в ячейки C записать промежуточные суммы для каждого номера (в последней строке каждого номера). Подсчет прекращается при нахождении пустой ячейки в столбце A.

    Тогда макрос будет выглядеть так (код рабочий):

    код выделить все

    Sub Calc()
    Dim CurPhone As String
    Dim CurRow As Integer
    Dim SubTotal As Long

    CurRow = 1
    SubTotal = 0

    Do While Cells(CurRow, 1) <> ""
    Do While Cells(CurRow, 1) = CurPhone
    SubTotal = SubTotal + CInt(Cells(CurRow, 2))
    CurRow = CurRow + 1
    Loop
    If CurRow <> 1 Then
    Cells(CurRow - 1, 3) = SubTotal
    End If
    SubTotal = 0
    CurPhone = Cells(CurRow, 1)
    Loop

    End Sub

    С вас пиво. Чешское.

    Хотя, почитал условия задачи, надо код немного изменить. Итак, вместо записи суммы в ячейки C, создаем отдельную табличку "телефон-сумма" где-нибудь в районе столбца K:

    код выделить все

    Sub Calc()
    Dim CurPhone As String
    Dim CurRow As Integer
    Dim SubTotal As Long
    Dim OutputRow as Integer

    CurRow = 1
    OutputRow = 1
    SubTotal = 0

    Do While Cells(CurRow, 1) <> ""
    Do While Cells(CurRow, 1) = CurPhone
    SubTotal = SubTotal + CInt(Cells(CurRow, 2))
    CurRow = CurRow + 1
    Loop
    If CurRow <> 1 Then
    Cells(OutputRow, 10) = CurPhone
    Cells(OutputRow, 11) = SubTotal
    OutputRow = OutputRow + 1
    End If
    SubTotal = 0
    CurPhone = Cells(CurRow, 1)
    Loop

    End Sub

    Каин, где Авель, брат твой?
  • StoPPer Junior Member
    офлайн
    StoPPer Junior Member

    81

    22 года на сайте
    пользователь #423

    Профиль
    Написать сообщение

    81
    # 26 сентября 2002 18:51

    А сводными таблицами в Экселе не пробовали?..

    Все само получается и считается! Как-то вы из пушки по воробьям... Сильные у нас программисты!

    В кратце:

    Исходная таблица: 2 столбца А телефоны; В стоимость;

    Данные - Сводная таблица - (все по умолчанию)

    Столбец А (телефоны) в поле строки

    Столбец В (стоимость) в поле данные

    И у меня все получается!

    P.S. И почему юзеры никогда хелпа не читают?..

  • Iгар Senior Member
    офлайн
    Iгар Senior Member

    2259

    22 года на сайте
    пользователь #1340

    Профиль
    Написать сообщение

    2259
    # 26 сентября 2002 19:34

    А ещё есть такая штука как "автофильтр"

    . . .
  • Mask Senior Member
    офлайн
    Mask Senior Member

    1628

    22 года на сайте
    пользователь #1788

    Профиль
    Написать сообщение

    1628
    # 27 сентября 2002 08:05

    Как вариант: "Данные"->"Сортировка" (по № телефона (возрастание или убывание)), затем после каждого № - "Вставка"->"Строки" и в данную строку автосуммироние ячеек стоимости каждого разговора! У нас работает! :super:

  • Kuz_NET_soft Member
    офлайн
    Kuz_NET_soft Member

    445

    22 года на сайте
    пользователь #1244

    Профиль
    Написать сообщение

    445
    # 27 сентября 2002 09:59

    сводная однозначно! другие варианты избыточны.

    Слово - не Word. Вылетит - undo не сделаешь...
  • Ales MemberАвтор темы
    офлайн
    Ales Member Автор темы

    204

    22 года на сайте
    пользователь #2704

    Профиль
    Написать сообщение

    204
    # 30 сентября 2002 16:59

    Спасибо ребят.

    Вот, приблизительно то, что получилось.

    В екселе - не получилось, почему - не знаю.

    Есле делать, как написал Стоппер, то в сводных таблицах, ексель пачимута считает количество звонков с определенного номера, а считать суммы - ну ни как не хочет. Я уже не говорю, что во время этих зверских экспериментов он 3 раза вешался.

    Перешли к аксессу - все начало получатся. Все точно и верно. Тем более, что далее была дана установка показывать не только телефон и стоимость но и куда был сделан звонок, т.е. еще один столбец, в екселе так понимаю это не пройдет. А вот в аксесе - прошло, единственно что он не каждый раз открывает запрос, выдавая загадочную надпись "переполнение числового поля", что это - даже понятия не имею. При клике на кнопку справка, выдает, что в результате сбоя эта функция недоступна. Страанно.

    Помогите наконец разобраться с екселем, самому уже интересно. Со сводными таблицами.

    Да, и как этим макросом то пользоваться.

    Когда его увидел, слабо говоря - оччень удивился.

    Ну очень хочецца попробовать.

    Спасибо.

  • aVg Onliner Team
    офлайн
    aVg Onliner Team

    1436

    23 года на сайте
    пользователь #68

    Профиль
    Написать сообщение

    1436
    # 1 октября 2002 17:17
    Ales:

    Спасибо ребят.

    ...

    Помогите наконец разобраться с екселем, самому уже интересно. Со сводными таблицами.

    ...

    ну ладно, главное что с таблицами вопрос решился...

    а на счет обучения Экселю в форуме :-? неа, купи лучше книжку, в них все очень классно натайпано.

    Ок, думаю что вопрос решился, всем спасибо.

    [b]I[/b] [img]http://forum.onliner.by/images/smiles/love.gif[/img] [b]OnLiner[/b]
Тема закрыта