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

Последовательное объединение ячеек из двух столбцов

12.11.2014, 23:44. Показов 7222. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ситуация такая: Есть два столбца - в одном написаны имена, в другом фамилии (причём фамилий намного больше). Как переписать в третий столбец все сочетания ячеек из первых двух столбцов?

Наглядно:

АннаПетрова
ЕвгенияВоронцова
МарияЗеленская
 Орлова
 Авдеева

и т.д.

Чтобы получилось Анна Петрова, Анна Воронцова, Анна Зеленская и т.д.; Евгения Петрова, Евгения Воронцова и т.д.

По идее самый логичный вариант это создать формулу, когда первая ячейка первого столбца сочетается со всеми ячейками из второго, потом вторая ячейка первого столбца сочетается со всеми ячейками из второго и т.д. Наверно, примерно так: А1+(*В*)=С1
Но я не знаю как создать эту формулу или же как по другому решить этот вопрос.
Знатоки, подскажите, пожалуйста!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2014, 23:44
Ответы с готовыми решениями:

Объединение столбцов в Excel по порядку с сохранением форматирования ячеек
Здравствуйте! Данный код объединяет несколько столбцов с данными 1 2 3 1 2 3 2 3 ...

Объединение двух ячеек с сохранением данных
В Книге Excel 2003 скинули большую таблицу. Надо сделать следующее: ячейки идут парами: А1, А2;...

Объединение таблиц с проверкой совпадения двух левых столбцов
Здравствуйте подскажите возможно ли сделать следующее.... есть сверху большая таблица и снизу...

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

6
4081 / 1461 / 401
Регистрация: 07.08.2013
Сообщений: 3,656
13.11.2014, 07:09 2
я вижу два способа решения вашей задачи
оба предполагают написание макроса
способ первый
запустить 2 цикла один внутри другого и перебрать все варианты
способ второй
написать sql запрос который создаст рекордсет со всеми вариантами и загрузить рекордсет в нужный столбец

второй способ работает быстрее (по идее)

для наглядности нужен файл с данными и что куда вставлять
0
0 / 0 / 0
Регистрация: 12.11.2014
Сообщений: 2
13.11.2014, 16:21  [ТС] 3
snipe, спасибо большое! Мне уже написали макрос:
Вложения
Тип файла: 7z 789 - 01.7z (13.1 Кб, 74 просмотров)
0
0 / 0 / 0
Регистрация: 05.11.2015
Сообщений: 16
07.11.2015, 13:05 4
Цитата Сообщение от Павел Андреев Посмотреть сообщение
snipe, спасибо большое! Мне уже написали макрос:
А как изменить количество скрепляемых столбцов и где в макросе указывается какие именно столбцы склеиваются?? Допустим если надо склеивать 1 3 5 столбы, что надо поменять в макросе?
0
2904 / 1718 / 705
Регистрация: 04.09.2015
Сообщений: 3,445
07.11.2015, 14:54 5
Цитата Сообщение от Павел Андреев Посмотреть сообщение
я не знаю как создать эту формулу
Вот так можно
Код
=ЕСЛИ(СЧЁТЗ(B$1:B$99)*СЧЁТЗ(A$1:A$99)>=СТРОКА();ИНДЕКС(A$1:A$99;-ЦЕЛОЕ(-СТРОКА()/СЧЁТЗ(B$1:B$99)))&" "&ИНДЕКС(B$1:B$99;ОСТАТ(СТРОКА()-1;СЧЁТЗ(B$1:B$99))+1);"")
Имена в столбце А, фамилии в столбце В начинаются с первой строки. Формулу вставить в С1 и тянуть вниз
0
4081 / 1461 / 401
Регистрация: 07.08.2013
Сообщений: 3,656
08.11.2015, 05:51 6
olegator13god,
вот написал комменты к макросу Павел Андреев
надеюсь сами разберетесь что и куда

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub Macro1()
Dim LR1 As Long, LR2 As Long, i As Long, j As Long, n As Long
    LR1 = Cells(Rows.Count, 1).End(xlUp).Row 'переменной LR1 присваевается количество строк в первом столбце (Cells(Rows.Count, 1) - вот эта 1 это номер столбца)
    LR2 = Cells(Rows.Count, 2).End(xlUp).Row 'переменной LR2 присваевается количество строк во втором столбце (Cells(Rows.Count, 2) - вот эта 2 это номер столбца)
    n = 1
    For i = 1 To LR1 ' цикл перебора строк
        For j = 1 To LR2 ' цикл перебора строк
            Cells(n, 4) = Cells(i, 1) & " " & Cells(j, 2) ' вывод информации в 4 столбец
            n = n + 1
        Next j
    Next i
End Sub
1
0 / 0 / 0
Регистрация: 05.11.2015
Сообщений: 16
09.11.2015, 09:55 7
Цитата Сообщение от snipe Посмотреть сообщение
olegator13god,
вот написал комменты к макросу Павел Андреев
надеюсь сами разберетесь что и куда

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub Macro1()
Dim LR1 As Long, LR2 As Long, i As Long, j As Long, n As Long
    LR1 = Cells(Rows.Count, 1).End(xlUp).Row 'переменной LR1 присваевается количество строк в первом столбце (Cells(Rows.Count, 1) - вот эта 1 это номер столбца)
    LR2 = Cells(Rows.Count, 2).End(xlUp).Row 'переменной LR2 присваевается количество строк во втором столбце (Cells(Rows.Count, 2) - вот эта 2 это номер столбца)
    n = 1
    For i = 1 To LR1 ' цикл перебора строк
        For j = 1 To LR2 ' цикл перебора строк
            Cells(n, 4) = Cells(i, 1) & " " & Cells(j, 2) ' вывод информации в 4 столбец
            n = n + 1
        Next j
    Next i
End Sub
спасибо большое! Разобрался!
0
09.11.2015, 09:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.11.2015, 09:55
Помогаю со студенческими работами здесь

Сравнение и выборка из двух больших (более 100000 ячеек) столбцов с данными
Здравствуйте, уважаемые форумчане. Новичок в VBA, подобные темы пошукал, но толи плохо шукал, толи...

Объединение ячеек одного столбца при совпадении ячеек в другом
Здравствуйте, В таблице необходимо объединить все телефоны в одну ячейку, если совпадение по...

Удалить пробелы в начале и конце ячеек выделенных столбцов ячеек
Доброй ночи! Имеется excel файл с большим количеством страниц, строк и столбцов. В ячейках:...

Определение координат центров ячеек из столбцов, текст которых - вписан в заголовки столбцов
Добрый вечер, специалисты по эксель. Помогите решить вопрос. На листе несколько столбцов с...


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

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