Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2009, 10:47   #1
KinderX
Пользователь
 
Регистрация: 27.06.2009
Сообщений: 36
По умолчанию Помогите с циклом и сортировкой на другой лист

На одном листе есть данные:

а б в г д е ё ж з
0 3 0 0 1 5 0 1 0
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Надо чтоб на другом получилось вот такое, каждое значение в рамках :

1 б 3 3*0.2
2 д 1 1*0.5
3 е 5 5*0.6
4 ж 1 1*0.8

Смысол в том что у меня таких сталбцов 246 штук, и задаются номер строки и поней все выдоваться должно, описание я сделал, а вот таблицу наименования я сделать не могу, так как не могу найти как выполнеть несколько действий в одной операции (пример: =если(А=В; С=Р В=М К=Т+1;смещ(Е1;;1))) и как сделать цикл( над ним я еще не думал так как первое сделать не могу).
Люди добрые помагите. VBA не знаю, все делаю стандартными функциями.
KinderX вне форума Ответить с цитированием
Старый 27.06.2009, 11:14   #2
KinderX
Пользователь
 
Регистрация: 27.06.2009
Сообщений: 36
По умолчанию

Как написать в одной ячейке что А1=В1 и А2=А2+1, и цикл, и вся проблемма бы решилась в раз
KinderX вне форума Ответить с цитированием
Старый 27.06.2009, 12:01   #3
KinderX
Пользователь
 
Регистрация: 27.06.2009
Сообщений: 36
По умолчанию

Нашел еще одно решение, но как вывести номера не пустых ячеек? Допустим как вывести отдельно не пустые ячейки в столбец?
KinderX вне форума Ответить с цитированием
Старый 27.06.2009, 12:39   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

приблизительно так:
Вложения
Тип файла: rar Книга106.rar (4.2 Кб, 16 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 27.06.2009, 13:03   #5
KinderX
Пользователь
 
Регистрация: 27.06.2009
Сообщений: 36
По умолчанию

IgorGO большое спасибо!!!
Опиши пожалуйста немного, а то мне надо это перенести в мою таблици эти данные и я немного не понимаю что к чему там.
=ЕСЛИ(СТРОКА()>$F$1;"";СТРОКА())
=ЕСЛИ($A1="";"";НАИМЕНЬШИЙ(ЕСЛИ(Лис т1!$2:$2=0;1111;СТОЛБЕЦ(Лист1!$2:$2 ));$A1))
KinderX вне форума Ответить с цитированием
Старый 27.06.2009, 13:41   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

1. определяю количество значений больше 0 во второй строке исходных данных. записываю значение в Ф1 (столько строк будет в последующем в таблице)
2. проставляю номера строк =ЕСЛИ(СТРОКА()>$F$1;"";СТРОКА()). если сверху таблицы будет "шапка", а сами данные будут заполняться например начиная с 3-й строки, то следует написать =ЕСЛИ(СТРОКА()-2>$F$1;"";СТРОКА()-2)
3. нахожу номера колонок с ненулевыми данными в строке2 исходный =ЕСЛИ($A1="";"";НАИМЕНЬШИЙ(ЕСЛИ(Лис т1!$2:$2=0;1111;СТОЛБЕЦ(Лист1!$2:$2 ));$A1))
где
ЕСЛИ(Лис т1!$2:$2=0;1111;СТОЛБЕЦ(Лист1!$2:$2 )) - формирует множество в котором, если в строке 2 не 0 записывается номер столбца, а если 0 записывается число 1111.
а НАИМЕНЬШИЙ последовательно из этого множества выбирает значения для первой строки, 1 наименьший, для второй - 2-й и т.д....
номера нужных колонок последовательно записываются в столбец Е
4. СМЕЩ выбирает данные из исходных.
5. В начале каждой ячейки предварительная проверка тут должна быть пустая строка или данные.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 27.06.2009, 14:06   #7
KinderX
Пользователь
 
Регистрация: 27.06.2009
Сообщений: 36
По умолчанию

Не могу не как сообразить. Вот допустим:

строка 327 нужна для проверки;
проверяем с 14 до 228 столбца;
название т.е. буквы находятся в 4 строке;
а число 0.2 находится в 1079 строке;
ВЫХОДИТ В 9 СТРОКУ
Да и условие что база меняется!!!

P.S Сложно для меня первый раз до сложностей таких дохожу.

Получаться должно:
1 Машина 0.2 2 =0,2*2
2 Мотоцикл 0,3 1 =0,3*1
и т.д.

Получаться должно:
1_Машина_____0.2_____2______=0,2*2
2 Мотоцикл____0,3_____1______=0,3*1
и т.д.
Да ещё и в рамке

Эт только начало, ведь название состои из общего и часного:
Пример:
Машина спортивная
Мотоцикл с коляской

Последний раз редактировалось EducatedFool; 27.06.2009 в 14:27.
KinderX вне форума Ответить с цитированием
Старый 27.06.2009, 14:30   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а я теперь не могу сообразить где проблема?
понятно формулы, которые я понаписывал были нацелены на базу данных состоящую из 3-х строк первых строк листа. В первой строке - буквы (наззвания) во второй - критерий (0 или не 0, по которому определяется будет выведена эта колонка в новую таблицу или нет), в третьей еще одно значение.
поиск ощуствлялся по всей строке с критерием отбора.
правьте формулы как хотите.
Добейтесь в такой последовательности получения правильных значений в:
1. количество элементов в новой таблице (ячейка Ф1)
2. нумерация строк (колонка А)
3. номера нужных колонок (колонка Е)
4. А сами данные, зная номера строки в которых они находятся в базе и вычислив номер колонки (значение в Е), легко вытащить с помощью СМЕЩ.

Успехов!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 27.06.2009, 14:38   #9
KinderX
Пользователь
 
Регистрация: 27.06.2009
Сообщений: 36
По умолчанию

Спасибо большое!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!
Буду пробовать через смещения!!!
KinderX вне форума Ответить с цитированием
Старый 27.06.2009, 15:43   #10
KinderX
Пользователь
 
Регистрация: 27.06.2009
Сообщений: 36
По умолчанию

Все равно в формуле =ЕСЛИ($A1="";"";НАИМЕНЬШИЙ(ЕСЛИ(Лис т1!$2:$2=0;1111;СТОЛБЕЦ(Лист1!$2:$2 ));$A1)) вылазет #ЗНАЧ хоть и поменял только только Лист1!$2:$2
KinderX вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с циклом BuT@JL Помощь студентам 3 25.03.2009 17:53
как из одного одной книги экспортировать данные на другой лист mabru Microsoft Office Excel 11 07.01.2009 10:20
Выбор и перенос данных в другой лист, книгу. Avald Microsoft Office Excel 1 16.06.2008 10:44
Помогите с циклом Almost_Famous Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 27.03.2008 21:08
Переброс данных на другой лист в таблицу vodvorezlaya Microsoft Office Excel 1 06.06.2007 14:07