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

Вход

Регистрация

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

 

= Мир MS Excel/Отбор строк по заданному значению из таблицы - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Отбор строк по заданному значению из таблицы
Iberia Дата: Понедельник, 11.11.2013, 15:51 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Необходимо реализовать следующую задачу:
1. отобрать в таблице строки, для которых значение в первой ячейке равно заданному.
2. перенести на другой лист файла из отобранных строк заданный диапазон ячеек.
3. при переносе копировать не формулы, а значения.

Интуитивно понимаю как это делается, но практически не помогло ни чтение описаний функций, ни попытка разобраться в макросах с форума.

отбор по значению yes

<!--
Пока удалось додуматься только до того, чтобы применить к массиву выбранного диапазона ячеек из строки вот такую формулу
=ЕСЛИ(IRR!A2="yes";ИНДЕКС(IRR!O2:AD2;0;0);0)
НО, она не решает вопрос не копирования строк без значения "yes"
-->
К сообщению приложен файл: 3765932.xls (52.0 Kb)


Сообщение отредактировал Iberia - Понедельник, 11.11.2013, 16:32
 
Ответить
СообщениеНеобходимо реализовать следующую задачу:
1. отобрать в таблице строки, для которых значение в первой ячейке равно заданному.
2. перенести на другой лист файла из отобранных строк заданный диапазон ячеек.
3. при переносе копировать не формулы, а значения.

Интуитивно понимаю как это делается, но практически не помогло ни чтение описаний функций, ни попытка разобраться в макросах с форума.

отбор по значению yes

<!--
Пока удалось додуматься только до того, чтобы применить к массиву выбранного диапазона ячеек из строки вот такую формулу
=ЕСЛИ(IRR!A2="yes";ИНДЕКС(IRR!O2:AD2;0;0);0)
НО, она не решает вопрос не копирования строк без значения "yes"
-->

Автор - Iberia
Дата добавления - 11.11.2013 в 15:51
Rustem Дата: Понедельник, 11.11.2013, 18:31 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 281
Репутация: 48 ±
Замечаний: 0% ±

Excel 2013
Вариант.
К сообщению приложен файл: 9220373.xls (44.5 Kb)


WMR: R183220163895
 
Ответить
СообщениеВариант.

Автор - Rustem
Дата добавления - 11.11.2013 в 18:31
Iberia Дата: Понедельник, 11.11.2013, 18:39 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Во второй лист, к сожалению, нельзя добавлять столбцы, иначе опять возвращаемся к ручной правке этого листа. Но решение красивое, спасибо :-). А можно ли его применить сразу к массиву?
 
Ответить
СообщениеВо второй лист, к сожалению, нельзя добавлять столбцы, иначе опять возвращаемся к ручной правке этого листа. Но решение красивое, спасибо :-). А можно ли его применить сразу к массиву?

Автор - Iberia
Дата добавления - 11.11.2013 в 18:39
Rustem Дата: Понедельник, 11.11.2013, 18:43 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 281
Репутация: 48 ±
Замечаний: 0% ±

Excel 2013
Скройте столбец А, или перенесите значения 1, 2, 3 и т.д., по которым происходит поиск, в право от основной таблицы.


WMR: R183220163895

Сообщение отредактировал Rustem - Понедельник, 11.11.2013, 18:43
 
Ответить
СообщениеСкройте столбец А, или перенесите значения 1, 2, 3 и т.д., по которым происходит поиск, в право от основной таблицы.

Автор - Rustem
Дата добавления - 11.11.2013 в 18:43
SkyPro Дата: Понедельник, 11.11.2013, 18:57 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Вариант макросом:
[vba]
Код
Sub toCSV()
Dim x
Dim i&, v&, c&
Dim arRes(1 To 10000, 1 To 5)
v = 0
x = Sheets(1).Range("A2:S" & Sheets(1).[a65536].End(xlUp).Row).Value
For i = 1 To UBound(x)
     If x(i, 1) = "yes" Then
     v = v + 1
         For c = 1 To 5
             arRes(v, c) = x(i, c + 14)
         Next
     End If
Next
Sheets(2).[a2].Resize(v, 5) = arRes
Sheets(2).Columns("A:E").AutoFit
End Sub
[/vba]
К сообщению приложен файл: 3066096.xls (46.5 Kb)


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Понедельник, 11.11.2013, 19:15
 
Ответить
СообщениеВариант макросом:
[vba]
Код
Sub toCSV()
Dim x
Dim i&, v&, c&
Dim arRes(1 To 10000, 1 To 5)
v = 0
x = Sheets(1).Range("A2:S" & Sheets(1).[a65536].End(xlUp).Row).Value
For i = 1 To UBound(x)
     If x(i, 1) = "yes" Then
     v = v + 1
         For c = 1 To 5
             arRes(v, c) = x(i, c + 14)
         Next
     End If
Next
Sheets(2).[a2].Resize(v, 5) = arRes
Sheets(2).Columns("A:E").AutoFit
End Sub
[/vba]

Автор - SkyPro
Дата добавления - 11.11.2013 в 18:57
Hugo Дата: Понедельник, 11.11.2013, 19:11 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3689
Репутация: 790 ±
Замечаний: 0% ±

365
Я обычно сперва делаю

[vba]
Код
v = v + 1
[/vba]

а уж затем

[vba]
Код
For c = 1 To 5
arRes(v, c) = x(i, c + 14)
Next
[/vba]

Так в конце в v имеем количество отобранных строк, и при выгрузке не нужно его уменьшать на 1, чтоб лишнее не выгружать/затирать или возможно нарвёмся на ошибку :(


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеЯ обычно сперва делаю

[vba]
Код
v = v + 1
[/vba]

а уж затем

[vba]
Код
For c = 1 To 5
arRes(v, c) = x(i, c + 14)
Next
[/vba]

Так в конце в v имеем количество отобранных строк, и при выгрузке не нужно его уменьшать на 1, чтоб лишнее не выгружать/затирать или возможно нарвёмся на ошибку :(

Автор - Hugo
Дата добавления - 11.11.2013 в 19:11
SkyPro Дата: Понедельник, 11.11.2013, 19:16 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Точно.
Игорь, спасибо за поправку. Учту на будущее.
Перезалил файл и исправил пост.


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Понедельник, 11.11.2013, 19:16
 
Ответить
СообщениеТочно.
Игорь, спасибо за поправку. Учту на будущее.
Перезалил файл и исправил пост.

Автор - SkyPro
Дата добавления - 11.11.2013 в 19:16
  • Страница 1 из 1
  • 1
Поиск:

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