|
Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2003/XP/2000 - [архив] Microsoft Excel 2003 и более ранние версии |
|
2003/XP/2000 - [архив] Microsoft Excel 2003 и более ранние версии
|
Новый участник Сообщения: 8 |
Профиль | Отправить PM | Цитировать
Microsoft Excel 2003 и более ранние версии В этой теме обсуждаются только Microsoft Excel 2003 и более ранние версии. Если у вас вопрос по Microsoft Excel 2007 или по другим приложениями Office, обращайтесь в темы, перечисленные ниже. Связанные темы:Другие темы по продуктам Micrоsoft Office |
|
Отправлено: 17:03, 21-02-2004 |
Старожил Сообщения: 282
|
Профиль | Сайт | Отправить PM | Цитировать дело в том, что у меня есть скрипт перегоняющий любую таблицу из excel в mysql и в качестве имен полей в мускуле можно задать чтобы скрипт ставил имена столбцов екселя. то есть можно просто оставить что будут поля field1 field2 и т.п. но хочется наглядности чтоли
|
------- Отправлено: 11:50, 31-07-2006 | #201 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Человек Сообщения: 3313
|
Профиль | Отправить PM | Цитировать Ну вот скриптом и переименовывай при переводе, нафига это на Excel возлагать? В нем можно выбирать либо буквы, либо цифры. Так же ты можешь модифицировать скрипт, чтобы брать в качестве наименований значения в первой строке (как делает тот же офис при слиянии, например).
|
------- Отправлено: 12:30, 31-07-2006 | #202 |
Старожил Сообщения: 282
|
Профиль | Сайт | Отправить PM | Цитировать тут немаловажный вопрос в том, что я в скрипте не понимаю нифига поэтому я и решил пойти в обход то бишь переименовать в екселе столбцы
а он позволяет брать первую строку в качестве имен полей но при этом бабахает имена полей в базу тоже вобщем итог: нельзя |
Отправлено: 12:36, 31-07-2006 | #203 |
Старожил Сообщения: 260
|
Профиль | Отправить PM | Цитировать Скорее всего нужно не A,B,C,D,... переименовывать , а в самом поле в первой строке области таблицы дать нужные имена. В случае koresaram - Column1, Column2 и т.д. Например DBF-файлы именно так и конвертируются.
|
------- Отправлено: 08:23, 01-08-2006 | #204 |
Человек Сообщения: 3313
|
Профиль | Отправить PM | Цитировать Gerdewski
Цитата я:
|
|
------- Отправлено: 09:41, 01-08-2006 | #205 |
Старожил Сообщения: 246
|
Профиль | Отправить PM | Цитировать Greyman,
там дело точно не в сортировке, и вообще не так как я описывал - там одни цифры во всех столбцах, и надо их сопоставить. Этим ничего не становится понятным, скорее наоборот. Сегодня инет там барахлил, завтра постараюсь полжить список сюда, просто до смерти интересно что там происходит. Pliomera способ конечно хороший, наверно так лучше и грамотнее что-ли, но я не пишу процедуры и не хочу связываться на сейчас, а главное - все это делается (должен делаться) средствами экссел, и действительно интересна сама причина; еслиб не это, можно было вообще руками подправить - их там всего несколько штук. |
------- Отправлено: 01:24, 02-08-2006 | #206 |
Старожил Сообщения: 246
|
Профиль | Отправить PM | Цитировать Вот и файл. К данным из первого столбца сопоставляются соответствующий из третьего и пишутся во вторую. Если в третый столбец (он сортирован по возрастанию) не найдется соответствующая запись, во вторую должен записываться ближайший сверху. Так и есть во всех ячейках, кроме окрашенных в желтый цвет - там адрес последней ячейки "эталонного" списка если больше некоторой величины, почему-то формула пишет содержимое этой самой последней ячейки.
Спасибо заранее если кто заинтересуется. |
------- Последний раз редактировалось maxo, 02-08-2006 в 22:16. Отправлено: 22:04, 02-08-2006 | #207 |
Старожил Сообщения: 260
|
Профиль | Отправить PM | Цитировать maxo, для твоей функции данные массива должны быть отсортированы по возрастанию.
А у тебя с е5767 до конца стоят нули. Или поменяй диапазон на e1:e5766, или отсортируй свой диапазон по возрастанию. Все заработает. |
------- Последний раз редактировалось Gerdewski, 03-08-2006 в 09:02. Отправлено: 08:49, 03-08-2006 | #208 |
Человек Сообщения: 3313
|
Профиль | Отправить PM | Цитировать maxo
Как я и говорил, проблема с сортировкой, что также озвучил и Gerdewski. Если отсортируешь или зделаешь нормальный диапазон, то работать будет... Однако обрати внимание на строку №45. Такого значения в массиве поиска нет и твой вариант будет выдавать ближайшее, которое найдет. Т. е. в твоем варианте формулы, если где-то допущена ошибка в ФИО (я про начало темы), то ты этого так и не заметишь. Гораздо правильнее использовать функцию "ВПР", как я и говорил. В случае поиска точного значения (последний параметр - ЛОЖЬ) массив вообще может не сортироваться, а если точного значения в нем не найдется, то формула покажет ошибку. Для твоего примера аналог используемой тобой функции будет: |
------- Отправлено: 09:49, 03-08-2006 | #209 |
Старожил Сообщения: 246
|
Профиль | Отправить PM | Цитировать Нет ребята, дело не в этом - Вы обратите внимание: если в В19 записать =LOOKUP(A20;$E$1:$E$5952), то формула работает, а если =LOOKUP(A20;$E$1:$E$5953), тогда нет. В то же время эта "критическая" ячейка 5953 ничем не примечательна, то что там другие (ненулевые) цифры начинаются, это я сам ставил для пробы.
Кроме того, в предыдущей ячейке формула работает, каково бы не было это число. Вот над этим бются теперь около 5 человек , вчера даже в skype разбирали. Gerdewski, Цитата:
Нули в конце - это значения формул, которые примут какое-то значение при добавлении новых абонентов, поэтому их стирать нелзя. Вообще этот список получается с помощю сводной таблицы, это я их заменил значениями для простоты. Greyman Цитата:
Цитата:
Вообще мне не нравится когда такие вещи делаются в эксел - он хорош для обработки уже законченной таблицы или списка, а для "живых", куда постаянно добавляются новые данные, могут создаваться проблемы, но эта таблица уже сделана, с репортами и разными наворотками, и сделать заново все это - я лучше в отпуск Pliomera Твой "скрипт" работает действително гарантированно, но действительно жутко медленно. Я циклы поменял местами, но от этого он быстрее не стал. Нелзя его как-то ускорить? и на что там так много времени уходит - выборка ячейки, сравнение - что-нибудь известно о том, какой процесс более прожорлив? Или может что-нибудь типа WHILE не отыщется в VB? И плз большая просьба - как сделать так, чтоб при обнаружении соответствии (и печати ячейки) iCount сразу наращивался, а не бежал зря до конца списка (одинаковых будем считать что не будет), ато ничего умнее кроме как ставить метку в голову старого ассемблерщика не приходит |
|||
------- Последний раз редактировалось maxo, 04-08-2006 в 03:03. Отправлено: 01:23, 04-08-2006 | #210 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2003/XP/2000 - [архив] Microsoft Office 2003 и более ранние версии | 440 | Microsoft Office (Word, Excel, Outlook и т.д.) | 444 | 01-02-2010 06:11 | |
2003/XP/2000 - [архив] Microsoft Word 2003 и более ранние версии | Iriya | Microsoft Office (Word, Excel, Outlook и т.д.) | 580 | 31-01-2010 03:12 | |
2003/XP/2000 - [архив] Microsoft Outlook 2003 и более ранние версии | ShaddyR | Microsoft Office (Word, Excel, Outlook и т.д.) | 537 | 19-01-2010 12:36 | |
2003/XP/2000 - [архив] Microsoft PowerPoint 2003 и более ранние версии | Vadikan | Microsoft Office (Word, Excel, Outlook и т.д.) | 65 | 03-01-2009 11:31 | |
2003/XP/2000 - [архив] Microsoft Access 2003 и более ранние версии | dav02 | Microsoft Office (Word, Excel, Outlook и т.д.) | 100 | 30-11-2008 17:02 |
|