|
|
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
сейчас идёт обучение всех школ России альтлинуксу и опен офису (после штрафа препода за нелицуху в классах) и я в этом проекте в ТП сижу. И вот с областей приходят файлы со школами. В таком заполнении в котором приходят с ними нереально что-то сделать, вот и дали нам переделывать)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2009, 12:35 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
Вообщем спасибо всем огромное, особенно Максимусу и Хюгу я полостью приноровился сделать как описал Макс, и уже намного проще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2009, 12:47 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
Для автоматизации данной работы нужно иметь разделители в строке. Так как разделители у вас не всегда присутствуют, то надо заняться их восстановлением вручную. Для начала надо создать таблицу на основе ваших входных данных. Потом я бы сначала отфильтровл данные по критерию "не содержит" и значению "," (или что там у вас является разделителем). Так как данные повторяются, то методом замены добавляем разделители: [оригинал:] 347144 Ростовская область Обливский район п. Каштановский ул. Школьная, 4"Б" [Заменить:] Ростовская область Обливский район, [На:] ,Ростовская область, Обливский район, Это только пример. Понятно, что это придется делать не один раз. В общем: автофильтр и замена текста поможет вам относительно быстро вручную отформатировать текст для последующей автоматизации. Форматировать можно и по другому: не добавлять разделители, а отформатировать записи относительно количества слов. Т.е. вышеприведенная запись имеет такое разделение по словам (количественно): 1,2,2,2,2,1 Приведя к такой последовательности все записи вы можете написать соответствующий макрос. Тут я бы заменил все "п." на "посёлок", "ул." на "улица". Написать однозначно правильный макрос для расстановки разделителей не представляется возможным, так как данные вариативны. В любом случае - без ручной подгонки текста не обойтись... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2009, 13:03 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
anton-sf, Спасибо, хорошее предложение. Но скорее всего это займёт немало времени, т.к. по мимо файла с Ростовской область, и районов там как минимум под 40, и файлов со всей России. поэтому разделяю и сцепляю. =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2009, 15:23 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
Ну, вообщем что-то получилось... Формулой... Не скажу, что оригинально, но работает :)... Во вложении книга и пошагово можна глянуть как я шел к формуле... Формула по сути состоит из нескольких частей, каждая для определенного столбца. Может кто предложит интересней что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2009, 16:49 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
Вот эта строчка ОК: 347165 Ростовская область Обливский р-н, х. Александровский, ул. Школьная, 4 А с этими засада: 346937 Ростовская область город Новошахтинск, ул. Пирогова, 26 346905 Ростовская область город Новошахтинск, ул. 4-я Пятилетка, 18 ИМХО всё же лучше сделать одинаковые разделители, разбить всё по группам (любым из 4-х способов), в 20 :) столбике поставить порядковые номера, что бы в итоге порядок восстановить, затем отсортировать, что получилось, по тому, как получилось :) . Вариантов наверное больше 10 не будет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2009, 17:15 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
2 Hugo121 Я делал формулу для вида указаным автором в примере. Плюс делал исключительно из интереса. Так как у автора вариантов вида куча, то и формул соответственно может быть много. Думаю что Вы правы, все в любом случае сначала прийдеться сводить к единуму представлению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2009, 17:35 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
MaximuS_G Думаю что Вы правы, все в любом случае сначала прийдеться сводить к единуму представлению. Практически всегда можно какую-нибуть закономерность выявить и избавиться от 98% ручной работы :). Нужно только функции знать и мозги включать, см. пример: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2009, 09:02 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
2 Deggasad Монстр! Как такое сочинить, не представляю. Сохраню, как пример... Надеюсь, не пригодится :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2009, 09:13 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
DeggasadПрактически всегда можно какую-нибуть закономерность выявить и избавиться от 98% ручной работы :). Нужно только функции знать и мозги включать Совершенно верно... Красиво получилось :) Тоже так сначала хотел сделать, но вот этого не знал "=найти( {текст1, текст2, текст3...} ;...)" поэтому и не стал так делать. Так что за это спасибо! А вот здесь что происходит: ПОИСК({"район";"р-н"};C6;1)+{5;3}, можна комментарий ? К значению, которое возвращает ПОИСК добавляется либо 5 либо 3 в зависимости от того, нашла формула "район" или "р-н" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2009, 09:41 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
MaximuS_GА вот здесь что происходит: ПОИСК({"район";"р-н"};C6;1)+{5;3}, можна комментарий ? К значению, которое возвращает ПОИСК добавляется либо 5 либо 3 в зависимости от того, нашла формула "район" или "р-н" ? Поиск находит первую позицию искомого текста, а в функцию ПСТР нужно подставить количество символов до конца искомого текста, вот и добавляются символы. На самом деле - это самая длинная из получившихся формул, может и не самая удачная, нужно подумать, если есть желание позагоняться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2009, 10:00 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
DeggasadПоиск находит первую позицию искомого текста, а в функцию ПСТР нужно подставить количество символов до конца искомого текста, вот и добавляются символы. На самом деле - это самая длинная из получившихся формул, может и не самая удачная, нужно подумать, если есть желание позагоняться. Да, это все понятно... Вопрос в том, что именно вот здесь будет прибавлено? ПОИСК({"район";"р-н"};C6;1)+{5;3}... Если, например, ПОИСК(...) вернет 5, какое значение мы получим?... ПОИСК(..)[ 5 ] +{5;3} = 10 или 8 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2009, 10:14 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
MaximuS_G Да, это все понятно... Вопрос в том, что именно вот здесь будет прибавлено? ПОИСК({"район";"р-н"};C6;1)+{5;3}... Если, например, ПОИСК(...) вернет 5, какое значение мы получим?... ПОИСК(..)[ 5 ] +{5;3} = 10 или 8 ? А я вижу, что не понятно, по крайней мере не все... :) ПОИСК({"район";"р-н"};C6;1) - никогда не вернет 5 , т.к. он всегда вернет массив из двух значений, напр. {#ЗНАЧ!;37} , причем в нашем конкретном примере по крайней мере одно из значений всегда будет #ЗНАЧ! Отвечая на ваш вопрос: соотвественно 5 добавится к первому значению, а 3 добавится ко второму значению. Но только в конкретно этом примере эта вся конструкция стоит внутри если, которая проверяет на значение ошибки и берет только тот вариант который не выдает ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2009, 10:42 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
Кстате любой кусок формулы если выделить прямо внутри строки формул и нажать F9 ,то эта часть формулы вычислится и покажет значение, очень удобно для отладки и изучения чужих формул. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2009, 10:46 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
DeggasadПОИСК({"район";"р-н"};C6;1) - никогда не вернет 5, т.к. он всегда вернет массив из двух значений, напр. {#ЗНАЧ!;37} Ага... так вот оно что... массив :)... Теперь ясно. Спасибо большое! Кстате любой кусок формулы если выделить прямо внутри строки формул и нажать F9,то эта часть формулы вычислится и покажет значение, очень удобно для отладки и изучения чужих формул. За это тоже спасибо! Очень интересно - буду знать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2009, 11:39 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
Degasset правильно говорит. Надо определить разделители не знаками препинания и спецсимволами, а служебными словами( область, район, р-н, п., ул. и так далее) находить их в списке и резать по ним. Формула конечно будет не маленькая, но нам ли бояться габаритов? Думаю многие здесь фантазировали формулы и по-более. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2009, 08:19 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
Deggasad , простите. Я неправильно указал ваш ник. А редактировать , я так понял, текст нельзя!? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2009, 08:22 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
RomeN1k Я так понял, что заполнение файла эксель такими данными - это часть рабочего процесса вашей организации. Задача ваша выполнима. Объявите тендер, сумму (хотя бы символическую) наверняка вам напишут эту формулу. Даже если ваша контора не захочет заплатить - заплатите сами, взвесьте стоимость вашего труда и сумму с которой вы готовы расстаться. Приведу пример из своей жизни. 1983 год... жив ещё Брежнев. Я это к тому, чтобы вы поняли атмосферу... Я работаю радиомонтажником на военном заводе, - молодой парень. Рядом ОТК - молодые ребята и военпреды, постарше. Так вот дают мне работу с навесным монтажём (а я прирождённый печатник!!! Ну не люблю я провода!) заказ дорогой - 25 руб. штука. А делать не хочу... А рядом ОТК - ребята, сидят на окладе... и скучают... Вообщем я их НАНЯЛ!!!! 1983год... Перечислять сколько УК статей я нарушал не буду, чего не сделаешь по-молодости. В результате. Заказ исполнен, я доволен, ОТК счастливо! Кстати, ОТК потом само себе штампик ставило! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2009, 08:37 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
Добрый день.Отличный форум.Подскажите пожалуйста как решить задачу (см.вложение).Третий день голову ломаю (к сожалению не программист).Очень нужно решение.Описание задание в файле стр."Описание".Заранее благодарен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2009, 12:00 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
Valll 1983 год... жив ещё Брежнев. Я это к тому, чтобы вы поняли атмосферу! Брежнев, Леонид Ильич (1906—1982) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2009, 12:47 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
2 smdm , Не очень разбраюсь в формулах, поэтому как вашу задачу решить одной формулой не знаю... Можна так, смотреть вложение. Совет: при работе с датой/временем старайтесь не использовать текстовые значения. Вводите и обработывайте данные как числа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2009, 14:27 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
m, Спасибо.Немного "надорвал" мозх и ввел соотношение времени как ячейку/1.Вроде получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2009, 14:44 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
Deggasad ПОИСК({"район";"р-н"};C6;1) - никогда не вернет 5 , т.к. он всегда вернет массив из двух значений, напр. {#ЗНАЧ!;37} , причем в нашем конкретном примере по крайней мере одно из значений всегда будет #ЗНАЧ! Чтобы обработать такой случай, нужно использовать функцию ЕОШИБКА Примерно так: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2009, 19:07 |
|
||
|
Помогите с Exel
|
|||
|---|---|---|---|
|
#18+
MinamotoDeggasad ПОИСК({"район";"р-н"};C6;1) - никогда не вернет 5 , т.к. он всегда вернет массив из двух значений, напр. {#ЗНАЧ!;37} , причем в нашем конкретном примере по крайней мере одно из значений всегда будет #ЗНАЧ! Чтобы обработать такой случай, нужно использовать функцию ЕОШИБКА Примерно так: Код: plaintext Смотрите файл, там так и сделано :) Мы просто обсуждали сделанное ранее, а не просили помощи :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2009, 13:06 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=36248661&tid=2178858]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
148ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 479ms |

| 0 / 0 |
