|
Цикл в условии
|
|||
---|---|---|---|
#18+
Добрый день Подскажите пожалуйста. надо пробежать таблицу в Excel с регионами РФ. Населенные пункты разбиты по группам. Указано название Региона, название населенного пункта и количество проживающих там человек. Соответственно я пробегаю по этому списку циклом и проверяю на численность населения. Когда я дохожу до районов мне нужно найти населенный пункт с максимальным количеством жителей. И уже там проверять условия 200 Тверская область Бельский муниципальный район 6355 200 Тверская область Бежецкий муниципальный район 35858 203 Тверская область Городское поселение - город Бежецк 25230 213 Тверская область г. Бежецк 24042 213 Тверская область Борковское сельское поселение 1317 213 Тверская область Васюковское сельское поселение 630 Соответсвенно код будет примерно таким do while kod =84 If qty=1000 then .... If qty=2000 then .... If kod = 200 Then Do While kod =300 Поиск максимума Loop Ввод данных в ячейку с максимальным населением. End If loop Ну и соответственно во вложенном цикле поиск максимума. Можно или нет в VBA использовать вложенные в условия циклы? или можно эту задачу решить линейным способом? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2012, 15:06 |
|
Цикл в условии
|
|||
---|---|---|---|
#18+
Можно в соседний столбец вписать формулу массива , которая посчитает максимум численности для данного района: Код: plaintext
В макросе остается сравнить два столбца: где совпадает, там и максимум. Или сравнение сделать в самой формуле (формула массива): Код: plaintext
Тогда можно автофильтром выделить строки с ИСТИНА - это и будут населенные пункты с максимальным количеством жителей ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2012, 20:32 |
|
Цикл в условии
|
|||
---|---|---|---|
#18+
Казанский спасибо за вариант. Все таки решил воспользоваться вложенными циклами. Чтобы в столбцах на листе была только исходная информация. Хотя мне кажется здесь нужно загонять все данные в массив, и там уже их обрабатывать. Но пока не умею. А еще подскажите, пожалуйста, создай на отдельном листе отчет. И там жестко прописываю какие значения в какой ячейке .Cells(1, 1) = "Область" .Cells(2, 2) = "Количество" .Cells(2, 3) = "Население" Потом если добавляю строку или столбец все приходится менять. Как такие вещи обычно делаются на VBA? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 10:07 |
|
Цикл в условии
|
|||
---|---|---|---|
#18+
Я обычно создаю в книге с макросом скрытый лист-шаблон. На нем заголовки, форматирование, формулы, при необходимости - элементы управления и их код в модуле листа. Чтобы создать лист или новую книгу на основании этого шаблона, его нужно сделать видимым, скопировать и снова скрыть. Для изменения шаблона достаточно сделать его видимым и отредактировать обычными средствами Excel. При этом основной код не меняется или меняется незначительно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 18:44 |
|
Цикл в условии
|
|||
---|---|---|---|
#18+
dsmart, Такие вещи делаются не циклами, а запросами. Добро пожаловать в каменный век. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2012, 02:02 |
|
Цикл в условии
|
|||
---|---|---|---|
#18+
Отлично, спасибо большое. Попробую сделать так отчет. Позже отпишусь. Теперь вернусь к основному вопросу. Есть структура Страна-> Регион-> Столица и прочее. Столица может состоять из районов, города тоже. Области также могут состоять из областных районов. Далее каждому городу присваивается признак в зависимости от его размеров, при этом признак может присваиваться как городу так и входящим в него районам. То же самое с областями. Могу выложить Excel файл со структурой. Я с помощью if обхожу в цикле все города. И присваиваю признак.Но получается жутко криво. Можно ли как то такую структуру запихать в массив. Т.е. области наверное должны быть в подчинении у страны, районы области иметь родителя - область. Или как такую иерархическую структутру можно пропарсить? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2012, 17:33 |
|
Цикл в условии
|
|||
---|---|---|---|
#18+
Я бы порекомендовал привязать ваш список к классификатору КЛАДР . После этого хоть по его коду, хоть по ОКАТО вы можете построить иерархию. Ну и анализировать после этого намного проще... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2012, 19:16 |
|
Цикл в условии
|
|||
---|---|---|---|
#18+
AndreTM, спасибо. Хотя надо проверять насколько удастся привязать к этому списку, надо его подробнее смотреть. Сходу даже не получилось импортнуть их базу в текст. Попытаюсь. Но в целом может быть удастся обойтись без привязки. Примерный файл во вложении. Задача в том чтобы в зависимости от типа населенного пункта и от его размера выставить признак, который также зависит от вложенных в него населенных пунктов. Можно попытаться считать, что жирным шрифтом выделены районы имеющие подчиненные поселения. Далее если имеется в файле отступ, то также считаем что верхний уровень родительский. Или это тупиковый путь? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2012, 15:58 |
|
Цикл в условии
|
|||
---|---|---|---|
#18+
Ну, не нравится КЛАДР - возьмите классификаторы ОКАТО или ОКТМО. Один раз пропишете коды из этих классификаторов (изучив сначала структуру кода классификации) - и всё, вы имеете иерархический справочник... Дело ведь вот в чём - зачем придумывать то, что уже существует и официально используется? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2012, 21:31 |
|
|
start [/forum/topic.php?fid=60&msg=38043371&tid=2157306]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 293ms |
total: | 425ms |
0 / 0 |