Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 15
1

Требуется организовать поиск Номеров из столбца

15.02.2010, 09:33. Показов 2341. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Программирование я только начал изучать, и требуется ваша консультация:
В экселе есть 4 столбца:F, G, H, I, J (H и I объеденены). Требуется организовать поиск Номеров из столбца J (Значений больше чем в примере) в таблице, причем так, чтоб повторяющиеся значения в таблице суммировались (по столбцам G и HI) и записывались в 1 строку (без повторений). Длинна таблицы может изменяться, в столбце F количество символов варьируется от 4 до пяти. Поиск происходит по последним 4 символам.
Файл примерного вида таблицы прикреплен.
Заранее благодарен за ваши советы.
p.s. Очень большая просьба - Если кто-нибудь сможет написать код - напишите пожалуйста с пояснениями, т.к. хочется самому разобраться и научиться программировать! )))
Вложения
Тип файла: zip Пример.zip (5.7 Кб, 31 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2010, 09:33
Ответы с готовыми решениями:

Как организовать поиск в 1С 8.2? Нужно организовать поиск, например, по ФИО?
Например ситуация: мне из списка надо найти "Марьина Любовь Викторовна" и что-бы по ней вышла вся...

Организовать бронирование номеров на файлах
Помогите с логикой организации бронирования номеров на базе отдыха. допустим у нас есть всего 1...

Как организовать бронирование номеров в базе данных гостиницы?(прил.БД+скриншоты)
Здравствуйте. Я в создаю базу данных для абстрактной гостиницы (вписываю любую информацию). И у...

Разработать приложение, позволяющее организовать работу по учету занятости номеров гостиницы
Всем доброго времени суток! Решила сама начать осваивать С++ до поступления в институт, где...

13
здесь больше нет...
3374 / 1672 / 184
Регистрация: 03.02.2010
Сообщений: 1,219
15.02.2010, 10:36 2
Попробуй обойтись без макросов, использую формулу СУММЕСЛИ, а чтобы искать 4 последних символа - ПРАВСИМВ(...;4).
Еще, в Excele объединение ячеек - большой "грех", попробуй от этого избавиться.
И еще, возможно твоя задача решается посредством сводной таблицы.
0
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 15
15.02.2010, 10:58  [ТС] 3
Цитата Сообщение от аналитика Посмотреть сообщение
Попробуй обойтись без макросов, использую формулу СУММЕСЛИ, а чтобы искать 4 последних символа - ПРАВСИМВ(...;4).
Еще, в Excele объединение ячеек - большой "грех", попробуй от этого избавиться.
И еще, возможно твоя задача решается посредством сводной таблицы.
За совет спасибо, Но суть в том что приходится делать одну и туже работу еженедельно. Так что хотелось бы один раз помучиться, а потом расслабиться. )))) Что касается объединения ячеек - причина в том, что данные предоставляются на распечатках, приходится сканировать и распознавать, так что данные при распознавании по столбцам разбегаются. Форматирование я макросом уже написал. А вот с поиском - проблемы...
0
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
15.02.2010, 11:50 4
если еженедельно, то изложи суть задачи. возможно, этот, предложенный тобой, прием не оптимален
0
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 15
15.02.2010, 12:27  [ТС] 5
Суть задачи - исключить повторяющиеся строки. все повторяющиеся строки по столбцу F должны быть просуммированы по 2 другим столбцам и записаны в 1 строку. Для наглядности из примера: есть номер 7155. В столбце F он записан как 27155 и встречается 4 раза. В итоге я хочу чтоб была 1 строка 27155 8 мин. и сумма стоимости.

Добавлено через 3 минуты
Да, и еще все номера которые он просуммирует должны сравниваться с номерами которые указываются рядом в столбце. Если последние 4 цифры номера совпадают, то строка удаляется.
0
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
15.02.2010, 12:47 6
нет ответа на вопрос. ты хочешь узнать сколько денех потратили на вызовы по телефонам, указанным в столбце J ? причем не по каждому в отдельности, а просто, вся сумма, так?
результат надо поместить в ячейку в первой строке, например А1 ?
0
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 15
15.02.2010, 13:02  [ТС] 7
нет. я хочу:
1. Получить таблицу сколько денег суммарно потратили на звонок на каждый номер.
2. в таблицу в столбец J Заносятся известные номера. При нажатии кнопки строки с известными номерами удалялись бы из таблицы.
0
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
15.02.2010, 13:07 8
опиши подробнее не то, КАК нужно сделать, а то ЧТО нужно сделать

Добавлено через 1 минуту
а неизвестные тебе нужны?. может их легче удалить, а потом суммировать. это зависит от обьемов информации в основной таблице и столбце J

Добавлено через 2 минуты
а почему результат заносить в первую строку, может лучше добавлять справа от столца J ?
столбец К - минуты, столбец L - доляры
0
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 15
15.02.2010, 13:09  [ТС] 9
То что должно получиться в итоге п.1
Вложения
Тип файла: zip Пример2.zip (8.8 Кб, 43 просмотров)
0
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 15
15.02.2010, 13:10  [ТС] 10
неизвестные нужны в первую очередь
Данные не превышают 1000 строк. Процентов 80 повторяются
0
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
15.02.2010, 13:15 11
поэкспериментируй с экспортом таблиц из приложения OCR. может получится избежать объединения ячеек и всяких неприятных ошибок с этим связаных.
кстати, насколько критична точность результата? может нужно завести кучу проверок на правильность исходных данных? это же OCR. где то будет пятнышко на бумаге, распознается как точка, значащее число сместится... а если у тебя в таблице 20000 строк, глазами ты ошибки не просмотриш

Добавлено через 40 секунд
о.....
0
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
15.02.2010, 17:23 12
Visual Basic
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
'Public Type myVar
    Public vrem
    Public uah
'End Type
 
Sub Pusk()
Const J = 11 - 1  'номер столбца J
'Dim Z as myVar
 
    Do                 'цикл перебора нужных номеров
        i = i + 1
        Nomer = Cells(i, J).Value2
        If Nomer Then
            Nayti (Nomer)   'вызов функции поиска
            Cells(i, J + 1).Value2 = vrem   'запись времени в столбец К
            Cells(i, J + 2).Value2 = uah    'запись стоимости в столбец L
            vrem = 0                        'глобальные переменные. надо обнулить
            uah = 0                         '  перед следующим циклом
        Else
            Exit Do                         'выход из цикла если ячейка пустая
        End If
        'Debug.Print Nomer
    Loop
End Sub
 
 
Function Nayti(Optional ByVal Nomer As String = "")
Const F = 7 - 1
'Dim Z as myVar
 
    Do                'цикл поиска в НЕнужных номерах
        i = i + 1
        If Not IsEmpty(Cells(i, F).Value2) Then    'последующие текстовые функции не работают с Empty
            g = Cells(i, F).Value2
            y = Mid(RTrim(g), Len(g) - (4 - 1), 4) 'обрезаем до последних четырех символов
        End If
        If y Then           'пока y не пустой...
            If y = Nomer Then
                vrem = vrem + Cells(i, F + 1).Value2   'это математика
                uah = uah + Cells(i, F + 1).Value2 * Cells(i, F + 2).Value2
            End If
        Else
            'Nayti = 1
            Exit Function    '...если y пустой, возвращаемся в Start()
        End If
        y = 0       ' если не обнулить y то цикл будет безконечным,
                    'так как новые значения ему не присваиваются - в ячейках Empty,
                    'а у нас на него проверка
    Loop
End Function
ну вот. в первом приближении. чего то я хотел возвращать результат подсчета из функции через пользовательскую переменную. почемуто не сработало. может кто доделает? а я посмотрю
ну и про удаление я забыл, может автор впишет пару строк кода сам?
Вложения
Тип файла: zip Пример.zip (14.0 Кб, 15 просмотров)
1
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
15.02.2010, 17:24 13
да. активен должен быть второй лист! допиши функцию Activate
0
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 15
18.02.2010, 08:50  [ТС] 14
Спасибо господа! Проблема решена!
0
18.02.2010, 08:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2010, 08:50
Помогаю со студенческими работами здесь

Предусмотрите вывод чисел и их порядковых номеров (т. е. в два столбца)
программа вывода на экран целых положительных чисел #include <stdio.h> #include <conio.h> int...

Фишки. Требуется вывести последовательность номеров клеток, с которыми совершается действие
Дана полоска из клеток, пронумерованных от 1 до N. На каждом ходе разрешено поставить фишку на...

Написать программу поиска номеров строки и столбца минимального и максимального элемента матрицы
Написать программу поиска номеров строки и столбца минимального и максимального элемента в заданном...

Найдите сумму номеров строки и столбца клетки, в которой змейка закончит движение
Строки прямоугольного поля 2015×5000 пронумерованы от 1 до 2015 снизу вверх, а столбцы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru