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

Вход

Регистрация

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

 

= Мир MS Excel/Автоматическое создание новых листов и распред. данных в них - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Автоматическое создание новых листов и распред. данных в них (Формулы/Formulas)
Автоматическое создание новых листов и распред. данных в них
Hjq Дата: Воскресенье, 05.11.2017, 17:35 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Так как новичок в Excel, не перестаю удивляться возможностям этой программы. Хочу попросить у вас помощи форумчани.
У меня есть файл, таких на работе встречается много и хотелось бы как-то автоматизировать процесс, ну или хотя бы облегчить его.
Во вложении вставлю пример.
У меня есть ряд следующих вопросов:
1) Устанавливая фильтр по странам можно ли автоматически создать листы с наименованием каждой страны представленной в фильтре в алфавитном порядке. В файле есть пример, но делал я это вручную.
2) Можно ли создать такой макрос/формулу что бы выбирая страну из фильтра можно было бы автоматически перенести информацию с колонок CDEFG в разбитые по странам листы, с последующим удалением дубликатов. (я пробовал создавать макросы, но они выполняют только то количество что я выделял, т.е. не важно какая страна, он тупо выделяет только то количество колонок, которое я выделял записывая макрос)

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

Заранее Благодарю за помощь.
К сообщению приложен файл: 3128973.xlsx (59.1 Kb)
 
Ответить
СообщениеТак как новичок в Excel, не перестаю удивляться возможностям этой программы. Хочу попросить у вас помощи форумчани.
У меня есть файл, таких на работе встречается много и хотелось бы как-то автоматизировать процесс, ну или хотя бы облегчить его.
Во вложении вставлю пример.
У меня есть ряд следующих вопросов:
1) Устанавливая фильтр по странам можно ли автоматически создать листы с наименованием каждой страны представленной в фильтре в алфавитном порядке. В файле есть пример, но делал я это вручную.
2) Можно ли создать такой макрос/формулу что бы выбирая страну из фильтра можно было бы автоматически перенести информацию с колонок CDEFG в разбитые по странам листы, с последующим удалением дубликатов. (я пробовал создавать макросы, но они выполняют только то количество что я выделял, т.е. не важно какая страна, он тупо выделяет только то количество колонок, которое я выделял записывая макрос)

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

Заранее Благодарю за помощь.

Автор - Hjq
Дата добавления - 05.11.2017 в 17:35
Pelena Дата: Воскресенье, 05.11.2017, 20:49 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19176
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
И Вам здравствуйте.
Есть несколько готовых решений на эту тему. Например
http://www.excelworld.ru/board....-1-0-23
http://www.excelworld.ru/forum/10-12227-1#104694
http://www.planetaexcel.ru/forum....e493856
Попробуйте применить одно из них.
Но в любом случае надо избавляться от объединенных ячеек и распространять названия на все строки


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеИ Вам здравствуйте.
Есть несколько готовых решений на эту тему. Например
http://www.excelworld.ru/board....-1-0-23
http://www.excelworld.ru/forum/10-12227-1#104694
http://www.planetaexcel.ru/forum....e493856
Попробуйте применить одно из них.
Но в любом случае надо избавляться от объединенных ячеек и распространять названия на все строки

Автор - Pelena
Дата добавления - 05.11.2017 в 20:49
InExSu Дата: Понедельник, 06.11.2017, 08:49 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
[vba]
Код
Option Explicit

Sub ЛистыИзФильтра_InExSu() ' на основе МакроРекордер
Columns("B:B").Copy
Workbooks.Add
Columns("A:A").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("a1:a4").Delete shift:=xlShiftUp
ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range("A1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Лист1").Sort
' .SetRange Range("A1:A190")
.SetRange Range("A:A")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
"C1"), Unique:=True
'Columns("C:C").Select
ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range("C1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Лист1").Sort
.SetRange Range("C:C")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Dim arr(): arr = Columns("C:C").CurrentRegion.Value
ActiveWorkbook.Close SaveChanges:=False
Dim i
On Error Resume Next
For i = LBound(arr) To UBound(arr)
Worksheets.Add after:=Worksheets(i)
Worksheets(i + 1).Name = arr(i, 1)
Next
End Sub
[/vba]


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac

Сообщение отредактировал InExSu - Понедельник, 06.11.2017, 08:52
 
Ответить
Сообщение[vba]
Код
Option Explicit

Sub ЛистыИзФильтра_InExSu() ' на основе МакроРекордер
Columns("B:B").Copy
Workbooks.Add
Columns("A:A").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("a1:a4").Delete shift:=xlShiftUp
ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range("A1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Лист1").Sort
' .SetRange Range("A1:A190")
.SetRange Range("A:A")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
"C1"), Unique:=True
'Columns("C:C").Select
ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range("C1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Лист1").Sort
.SetRange Range("C:C")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Dim arr(): arr = Columns("C:C").CurrentRegion.Value
ActiveWorkbook.Close SaveChanges:=False
Dim i
On Error Resume Next
For i = LBound(arr) To UBound(arr)
Worksheets.Add after:=Worksheets(i)
Worksheets(i + 1).Name = arr(i, 1)
Next
End Sub
[/vba]

Автор - InExSu
Дата добавления - 06.11.2017 в 08:49
Hjq Дата: Понедельник, 06.11.2017, 20:27 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
InExSu,

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

Я пробовал изменить макрос [b]Sanja[b], но он вообще походу не для меня. От меня же руководство требует, что бы на каждую страну (а иногда эти страны идут не по алфавитному порядку, а иногда и дублируются).
http://www.planetaexcel.ru/forum....e493856

Чет я совсем профан наверное :( Очень требуется помощь, а то на работе просто пожар.


Сообщение отредактировал Hjq - Вторник, 07.11.2017, 01:16
 
Ответить
СообщениеInExSu,

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

Я пробовал изменить макрос [b]Sanja[b], но он вообще походу не для меня. От меня же руководство требует, что бы на каждую страну (а иногда эти страны идут не по алфавитному порядку, а иногда и дублируются).
http://www.planetaexcel.ru/forum....e493856

Чет я совсем профан наверное :( Очень требуется помощь, а то на работе просто пожар.

Автор - Hjq
Дата добавления - 06.11.2017 в 20:27
Pelena Дата: Понедельник, 06.11.2017, 20:31 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 19176
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
Hjq, не надо цитировать пост целиком. Это нарушение Правил форума. Исправьте


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеHjq, не надо цитировать пост целиком. Это нарушение Правил форума. Исправьте

Автор - Pelena
Дата добавления - 06.11.2017 в 20:31
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Автоматическое создание новых листов и распред. данных в них (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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