Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Копирование данных с нескольких столбцов в один - Мир MS Excel

Старая форма входа
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: китин, _Boroda_  
Копирование данных с нескольких столбцов в один
Leojse Дата: Воскресенье, 02.12.2012, 17:28 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
Вообщем, имеется отчет (скрин приложу). В колонки Январь (5,6), Февраль(7,8), Март (5,6) данные вводятся вручную. Хотелось бы, чтобы "1 квартал" формировался сам, то есть чтобы автоматически данные соответственно переносились с января, февраля, марта в соответствующие колонки в "1 квартал". Затем вручную я заполняю Апрель, Май, Июнь. Потом идет "1 полугодие", которое, заполнялось бы тоже автоматически, то есть брались бы данные с первого квартала и заполнялись бы далее с Апреля, Мая, Июня. Затем, опять вручную Июль, Август, Сентябрь. Снова бы хотелось автоматического заполнения "9 месяцев" - данные бы брались из 1 полугодия и добирались с Июля, Августа, Сентября. Октябрь, ноября, Декабрь - вручную, а "Год" - автоматически, т.е. копировались бы "9 месяцев" и добирались бы данные с Октября, Ноября, Декабря.
В отчете более 1500 строчек. Количество столбцов не меняются. Строчки добавляются в конец раздела. Разделов очень много.
Заранее спасибо за помощь.
http://imageshack.us/photo/my-images/12/2222df.jpg/
К сообщению приложен файл: 2823493.xls (36.0 Kb)


Сообщение отредактировал Leojse - Воскресенье, 02.12.2012, 18:23
 
Ответить
СообщениеВообщем, имеется отчет (скрин приложу). В колонки Январь (5,6), Февраль(7,8), Март (5,6) данные вводятся вручную. Хотелось бы, чтобы "1 квартал" формировался сам, то есть чтобы автоматически данные соответственно переносились с января, февраля, марта в соответствующие колонки в "1 квартал". Затем вручную я заполняю Апрель, Май, Июнь. Потом идет "1 полугодие", которое, заполнялось бы тоже автоматически, то есть брались бы данные с первого квартала и заполнялись бы далее с Апреля, Мая, Июня. Затем, опять вручную Июль, Август, Сентябрь. Снова бы хотелось автоматического заполнения "9 месяцев" - данные бы брались из 1 полугодия и добирались с Июля, Августа, Сентября. Октябрь, ноября, Декабрь - вручную, а "Год" - автоматически, т.е. копировались бы "9 месяцев" и добирались бы данные с Октября, Ноября, Декабря.
В отчете более 1500 строчек. Количество столбцов не меняются. Строчки добавляются в конец раздела. Разделов очень много.
Заранее спасибо за помощь.
http://imageshack.us/photo/my-images/12/2222df.jpg/

Автор - Leojse
Дата добавления - 02.12.2012 в 17:28
AlexM Дата: Воскресенье, 02.12.2012, 19:23 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
А если для одного адреса будут заполнены ячейки января, марта, июня и октября. Как быть?
Может быть не переносились, а суммировались?



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеА если для одного адреса будут заполнены ячейки января, марта, июня и октября. Как быть?
Может быть не переносились, а суммировались?

Автор - AlexM
Дата добавления - 02.12.2012 в 19:23
Leojse Дата: Воскресенье, 02.12.2012, 19:27 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
AlexM, нет, для одного адреса будет заполнение только одного месяца.
 
Ответить
СообщениеAlexM, нет, для одного адреса будет заполнение только одного месяца.

Автор - Leojse
Дата добавления - 02.12.2012 в 19:27
AlexM Дата: Воскресенье, 02.12.2012, 19:31 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
С суммой все равно проще.
См. файл.
К сообщению приложен файл: 2823493_new.xls (40.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеС суммой все равно проще.
См. файл.

Автор - AlexM
Дата добавления - 02.12.2012 в 19:31
Leojse Дата: Воскресенье, 02.12.2012, 19:48 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
AlexM, спасибо, но немного не то... Придется для каждого раздела вбивать свою формулу... Может, еще что-нибудь можно сделать?
 
Ответить
СообщениеAlexM, спасибо, но немного не то... Придется для каждого раздела вбивать свою формулу... Может, еще что-нибудь можно сделать?

Автор - Leojse
Дата добавления - 02.12.2012 в 19:48
AlexM Дата: Воскресенье, 02.12.2012, 19:52 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Только у первого квартала формулы короче на один аргумент.
Формулы 1-го полугодия копируются в 9 месяцев и год.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеТолько у первого квартала формулы короче на один аргумент.
Формулы 1-го полугодия копируются в 9 месяцев и год.

Автор - AlexM
Дата добавления - 02.12.2012 в 19:52
AlexM Дата: Воскресенье, 02.12.2012, 20:00 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Можно так
См. файл.
К сообщению приложен файл: 2823493_new2.xls (40.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеМожно так
См. файл.

Автор - AlexM
Дата добавления - 02.12.2012 в 20:00
Leojse Дата: Воскресенье, 02.12.2012, 22:43 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
Вот посмотрите:
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rRg As Range, rCell As Range
Dim lLr: lLr = 200 ' глубина строк

Set rRg = Intersect(Target, Range("E1:AH" & lLr))
If Not rRg Is Nothing Then
For Each rCell In rRg
Select Case rCell.Column ' номер столбика
Case 5, 7, 9
Cells(rCell.Row, 11) = rCell.Value
Cells(rCell.Row, 19) = rCell.Value
Cells(rCell.Row, 27) = rCell.Value
Cells(rCell.Row, 35) = rCell.Value

Case 6, 8, 10
Cells(rCell.Row, 12) = rCell.Value
Cells(rCell.Row, 20) = rCell.Value
Cells(rCell.Row, 28) = rCell.Value
Cells(rCell.Row, 36) = rCell.Value

End Select
Next rCell
End If
End Sub
[/vba]

С помощью этого макроса разносятся январь, февраль, март как положено на квартал, полугодие, 9 месяцев и год. Далее иду к следующим месяцам (апрель, май, июнь):
[vba]
Code
Case 13, 15, 17
Cells(rCell.Row, 19) = rCell.Value
Cells(rCell.Row, 27) = rCell.Value
Cells(rCell.Row, 35) = rCell.Value

Case 14, 16, 18
Cells(rCell.Row, 20) = rCell.Value
Cells(rCell.Row, 28) = rCell.Value
Cells(rCell.Row, 36) = rCell.Value
[/vba]
Но копирования с апреля, мая, июня в другие колонки не происходит... Можно ли что-нибудь сделать?


Сообщение отредактировал Leojse - Воскресенье, 02.12.2012, 23:01
 
Ответить
СообщениеВот посмотрите:
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rRg As Range, rCell As Range
Dim lLr: lLr = 200 ' глубина строк

Set rRg = Intersect(Target, Range("E1:AH" & lLr))
If Not rRg Is Nothing Then
For Each rCell In rRg
Select Case rCell.Column ' номер столбика
Case 5, 7, 9
Cells(rCell.Row, 11) = rCell.Value
Cells(rCell.Row, 19) = rCell.Value
Cells(rCell.Row, 27) = rCell.Value
Cells(rCell.Row, 35) = rCell.Value

Case 6, 8, 10
Cells(rCell.Row, 12) = rCell.Value
Cells(rCell.Row, 20) = rCell.Value
Cells(rCell.Row, 28) = rCell.Value
Cells(rCell.Row, 36) = rCell.Value

End Select
Next rCell
End If
End Sub
[/vba]

С помощью этого макроса разносятся январь, февраль, март как положено на квартал, полугодие, 9 месяцев и год. Далее иду к следующим месяцам (апрель, май, июнь):
[vba]
Code
Case 13, 15, 17
Cells(rCell.Row, 19) = rCell.Value
Cells(rCell.Row, 27) = rCell.Value
Cells(rCell.Row, 35) = rCell.Value

Case 14, 16, 18
Cells(rCell.Row, 20) = rCell.Value
Cells(rCell.Row, 28) = rCell.Value
Cells(rCell.Row, 36) = rCell.Value
[/vba]
Но копирования с апреля, мая, июня в другие колонки не происходит... Можно ли что-нибудь сделать?

Автор - Leojse
Дата добавления - 02.12.2012 в 22:43
AlexM Дата: Понедельник, 03.12.2012, 02:19 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Попробуйте такой код
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim i As Long, ii As Long
Select Case Target.Column
Case 5 To 10: i = 12
Case 13 To 18: i = 20
Case 21 To 26: i = 28
Case 29 To 34: i = 36
Case Else: GoTo iStop
End Select
For ii = i - Target.Column Mod 2 To 36 - Target.Column Mod 2 Step 8
Cells(Target.Row, ii) = Target.Value
Next ii
iStop:
Application.EnableEvents = True
End Sub
[/vba]



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеПопробуйте такой код
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim i As Long, ii As Long
Select Case Target.Column
Case 5 To 10: i = 12
Case 13 To 18: i = 20
Case 21 To 26: i = 28
Case 29 To 34: i = 36
Case Else: GoTo iStop
End Select
For ii = i - Target.Column Mod 2 To 36 - Target.Column Mod 2 Step 8
Cells(Target.Row, ii) = Target.Value
Next ii
iStop:
Application.EnableEvents = True
End Sub
[/vba]

Автор - AlexM
Дата добавления - 03.12.2012 в 02:19
Leojse Дата: Понедельник, 03.12.2012, 08:30 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
AlexM, всё равно с апреля не копируется в остальные ячейки...
 
Ответить
СообщениеAlexM, всё равно с апреля не копируется в остальные ячейки...

Автор - Leojse
Дата добавления - 03.12.2012 в 08:30
AlexM Дата: Понедельник, 03.12.2012, 10:28 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Очень странно у меня работает.
Возможно макрос не завершил работу из-за ошибки и не произошло включение событий.
В прикрепленном файле три листа.
На первом задача решается формулой, на втором макросом из предыдущего сообщения, а на третьем новый макрос.
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim i As Long, ii As Long
i = Evaluate("CEILING(" & Target.Column + 4 & ",8)") - 4
Select Case Target.Column
Case 5 To 10, 13 To 18, 21 To 26, 29 To 34
     For ii = i - Target.Column Mod 2 To 36 - Target.Column Mod 2 Step 8
         Cells(Target.Row, ii) = Target.Value
     Next ii
End Select
Application.EnableEvents = True
End Sub
[/vba]

Для включения событий в файле, на всякий случай, есть макрос Enable_Events - Включение_Событий.
На листе где формулы удалите данные по месяцам и пробуйте заполнять таблицу.
На листах с макросами надо очистить диапазон E3:AJ38, а потом заполнять данные.
К сообщению приложен файл: 2760072.xls (79.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеОчень странно у меня работает.
Возможно макрос не завершил работу из-за ошибки и не произошло включение событий.
В прикрепленном файле три листа.
На первом задача решается формулой, на втором макросом из предыдущего сообщения, а на третьем новый макрос.
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim i As Long, ii As Long
i = Evaluate("CEILING(" & Target.Column + 4 & ",8)") - 4
Select Case Target.Column
Case 5 To 10, 13 To 18, 21 To 26, 29 To 34
     For ii = i - Target.Column Mod 2 To 36 - Target.Column Mod 2 Step 8
         Cells(Target.Row, ii) = Target.Value
     Next ii
End Select
Application.EnableEvents = True
End Sub
[/vba]

Для включения событий в файле, на всякий случай, есть макрос Enable_Events - Включение_Событий.
На листе где формулы удалите данные по месяцам и пробуйте заполнять таблицу.
На листах с макросами надо очистить диапазон E3:AJ38, а потом заполнять данные.

Автор - AlexM
Дата добавления - 03.12.2012 в 10:28
Leojse Дата: Понедельник, 03.12.2012, 10:54 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
AlexM, круто)
Не бейте меня сильно... Я понимаю, что достал Вас, но есть еще проблемка... Если данные копирую с другой книги и вставляю в ваш документ (например, в январь вставляю сразу несколько строк), то почему-то разносится только одна первая вставленная ячейка, а остальные - нет. Пробовал и в 2003 и в 2010 excel'e. пробую на листах с макросами.


Сообщение отредактировал Leojse - Понедельник, 03.12.2012, 10:55
 
Ответить
СообщениеAlexM, круто)
Не бейте меня сильно... Я понимаю, что достал Вас, но есть еще проблемка... Если данные копирую с другой книги и вставляю в ваш документ (например, в январь вставляю сразу несколько строк), то почему-то разносится только одна первая вставленная ячейка, а остальные - нет. Пробовал и в 2003 и в 2010 excel'e. пробую на листах с макросами.

Автор - Leojse
Дата добавления - 03.12.2012 в 10:54
AlexM Дата: Понедельник, 03.12.2012, 11:18 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Так и должно быть. Задача стояла "данные вводятся вручную", стало быть по одному значению.
А так получается совсем другой вопрос, другое решение и другой макрос.

PS. А какими блоками вставляете. В пределах одного квартала или больше?
Например, вставляете диапазон E13:J24 Так?



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Понедельник, 03.12.2012, 11:26
 
Ответить
СообщениеТак и должно быть. Задача стояла "данные вводятся вручную", стало быть по одному значению.
А так получается совсем другой вопрос, другое решение и другой макрос.

PS. А какими блоками вставляете. В пределах одного квартала или больше?
Например, вставляете диапазон E13:J24 Так?

Автор - AlexM
Дата добавления - 03.12.2012 в 11:18
Leojse Дата: Понедельник, 03.12.2012, 11:29 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
Блин, вот я facepalm sad Надо было мне сразу написать..... Ну помогите.....
Вся надежда на вас... notworthy


Сообщение отредактировал Leojse - Понедельник, 03.12.2012, 11:34
 
Ответить
СообщениеБлин, вот я facepalm sad Надо было мне сразу написать..... Ну помогите.....
Вся надежда на вас... notworthy

Автор - Leojse
Дата добавления - 03.12.2012 в 11:29
Leojse Дата: Понедельник, 03.12.2012, 11:35 | Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
Вставляю в пределах одного месяца.


Сообщение отредактировал Leojse - Понедельник, 03.12.2012, 11:35
 
Ответить
СообщениеВставляю в пределах одного месяца.

Автор - Leojse
Дата добавления - 03.12.2012 в 11:35
AlexM Дата: Понедельник, 03.12.2012, 11:36 | Сообщение № 16
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
См. лист 4 в файле
К сообщению приложен файл: 7803782.xls (95.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеСм. лист 4 в файле

Автор - AlexM
Дата добавления - 03.12.2012 в 11:36
Leojse Дата: Понедельник, 03.12.2012, 11:40 | Сообщение № 17
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
AlexM, Огромнейшее Вам спасибо за проделанную работу!!!!!!!!!!!!!!!!!!!!!!!!!! Спасибо, спасибо, спасибо!!!!!!!!!!!!!!!!!!!
 
Ответить
СообщениеAlexM, Огромнейшее Вам спасибо за проделанную работу!!!!!!!!!!!!!!!!!!!!!!!!!! Спасибо, спасибо, спасибо!!!!!!!!!!!!!!!!!!!

Автор - Leojse
Дата добавления - 03.12.2012 в 11:40
Leojse Дата: Понедельник, 03.12.2012, 13:01 | Сообщение № 18
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
AlexM, последний вопрос, чисто теоретический. Если в отчете уже вбиты несколько месяцев, то при добавлении макроса данные не копируются. Выход - перебивать данные?
 
Ответить
СообщениеAlexM, последний вопрос, чисто теоретический. Если в отчете уже вбиты несколько месяцев, то при добавлении макроса данные не копируются. Выход - перебивать данные?

Автор - Leojse
Дата добавления - 03.12.2012 в 13:01
AlexM Дата: Понедельник, 03.12.2012, 13:54 | Сообщение № 19
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Допустим вбиты данные за январь, а ячейки квартала, полугодия, 9 месяцев и года не заполнены.
Добавляете макрос в модуль листа, если его там нет.
Выделяете данные месяца, копируете и вставляете на то же место.
Должно получится.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеДопустим вбиты данные за январь, а ячейки квартала, полугодия, 9 месяцев и года не заполнены.
Добавляете макрос в модуль листа, если его там нет.
Выделяете данные месяца, копируете и вставляете на то же место.
Должно получится.

Автор - AlexM
Дата добавления - 03.12.2012 в 13:54
Leojse Дата: Понедельник, 03.12.2012, 14:28 | Сообщение № 20
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
Наверно, зря заикнулся по поводу последнего вопроса... А можно ли сделать так, чтобы макрос не копировал ячейки определенного цвета (в моем примере - зеленого)? То есть чтобы макрос их игнорировал?


Сообщение отредактировал Leojse - Понедельник, 03.12.2012, 14:53
 
Ответить
СообщениеНаверно, зря заикнулся по поводу последнего вопроса... А можно ли сделать так, чтобы макрос не копировал ячейки определенного цвета (в моем примере - зеленого)? То есть чтобы макрос их игнорировал?

Автор - Leojse
Дата добавления - 03.12.2012 в 14:28
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!