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

Объединение ячеек одного столбца при совпадении ячеек в другом

18.04.2014, 15:53. Показов 5323. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте,
В таблице необходимо объединить все телефоны в одну ячейку, если совпадение по сайту или по названию+адрес Стороку с обединенными телефонами оставить, а все остальные, из которых извлечены телефоны для объединения, либо сделать пустыми либо удалить. Алгоритм понимаю, а вот с реализацией... Что называется только учусь)
Буду благодарна за любую помощь.
Пример во вложенном файле.
Вложения
Тип файла: xlsx Книга2.xlsx (9.6 Кб, 70 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2014, 15:53
Ответы с готовыми решениями:

Сложение ячеек в столбце при совпадении ячеек в двух соседних столбцах
Добрый вечер!Прошу помощи.Есть длинная таблица excel с тремя столбцами. Необходимо сложить данные в...

Заливка ячеек столбца по значению из столбца на другом листе
Здравствуйте, Подскажите пожалуйста, как залить ячейки столбца B на 2 листе, если значение из...

Объединение ячеек столбца в word
Открывается вордовский документ в котором есть таблица. Нужно объеденить 1,2,3 ячейку в 1 столбце....

Замена ячеек при совпадении других (Excel)
Доброго времени суток. Возникла такая проблема. Есть две таблицы с большим колличеством данных....

5
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,086
18.04.2014, 17:21 2
Как вариант предложу со словарем - результат на странице "Лист2":
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub ObyedienieTelefonov()
    Dim a(), b(), i&, t$
    a = Sheets("Ëèñò1").UsedRange.Value
    With CreateObject("Scripting.Dictionary")
        For i = 1 To UBound(a, 1)
            t = a(i, 1) & "|" & a(i, 2) & "|" & a(i, 3) & "|" & a(i, 5)
            If .exists(t) Then
                a(i, 4) = .Item(t)(4) & ", " & a(i, 4)
            End If
            .Item(t) = Application.Index(a, i)
        Next
        b = .Keys
        For i = 0 To UBound(b)
            Sheets("Ëèñò2").Cells(i + 1, 1).Resize(1, 5) = .Item(b(i))
        Next
    End With
End Sub
3
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 4
18.04.2014, 23:32  [ТС] 3
Спасибо! То что нужно. Кроме одного, я не разобралась почему он он не выпоняется для последних трех строчек в примере?
0
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
19.04.2014, 12:08 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

laigri, а какой адрес надо оставить для последних трех строчек?

Добавлено через 14 минут
Допилил немного
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub ObyedienieTelefonov()
    Dim a(), b(), i&, t$
    a = Sheets("Лист1").UsedRange.Value
    With CreateObject("Scripting.Dictionary")
        For i = 1 To UBound(a, 1)
            t = a(i, 5)
            If IsEmpty(t) Then _
                t = a(i, 1) & "|" & a(i, 2) & "|" & a(i, 3)
            If .exists(t) Then
                a(i, 4) = .Item(t)(4) & ", " & a(i, 4)
            End If
            .Item(t) = Application.Index(a, i)
        Next
        b = .Keys
        For i = 0 To UBound(b)
            Sheets("Лист2").Cells(i + 1, 1).Resize(1, 5) = .Item(b(i))
        Next
    End With
End Sub
1
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 4
21.04.2014, 00:44  [ТС] 5
Спасибо еще раз, очень помогли.
0
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 4
27.05.2014, 15:23  [ТС] 6
Здравствуйте,
возникла проблема(
попробовала прогнать по другой таблице,
выдает ошибку
run time error 13
type mismatch
в строчке
Visual Basic
1
.Item(t) = Application.Index(a, i)
Это же ошибка в значении переменной?
Что искать, что бы исправить не пойму.
Массив порядка 50000 строк.
0
27.05.2014, 15:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2014, 15:23
Помогаю со студенческими работами здесь

Перенос данных при совпадении части текста ячеек
Ребята, подскажите пожалуйста можно-ли средствами VBA провести следующую операцию. В таблице на...

При совпадении 4 условий значения ячеек суммировать из листа №1 в лист №2
В общем расклад такой: Нужно чтоб при совпадении четырех условий значения ячеек суммировались из...

Сравнение ячеек на разных страницах и копирование строки при совпадении
Здравствуйте! Помогите пожалуйста! С vba раньше ничего не связвало, а сейчас появилась огромная...

Объединение значений ячеек столбца в одну ячейку с разделителем
Добрый день. Помогите, пожалуйста решить задачу. Имеется большое количество названий проектов,...


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

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