Новости:

Новая редакция правил форума: 2.4. Если вопрос или ответ содержится во вложенном файле, все-равно кратко описывайте в сообщении вопрос или суть решения. Это необходимо, чтобы тему можно было найти через поиск.

Главное меню

Копирование строк из другого файла по условию.

Автор Njura, 23.08.2012, 11:51

« назад - далее »

Njura

Уважаемые форумчане!
Прошу вас о помощи.
Есть два похожих журнала, в которые заносятся данные. В обоих журналах записи добавляются каждый день, сколько их будет в итоге неизвестно.  Сначала запись добавляется в Журнал1, потом на основании данных Журнала 1 заполняется Журнал2. Данные в колонках "Серия" и "Вещество" идентичные. Хочу, чтобы было так: в Журнале 2 вношу в ячейку "Серия" номер серии из Журнала 1, и соседние ячейки "Вещество" заполняются соответствующими значениями из Журнала 1. Если бы каждому значению "Вещество" соответствовал уникальный номер серии, то было бы более-менее понятно. Но в каждой записи к одной серии привязано несколько веществ. Тут я и споткнулась. Плюс динамические диапазоны, с которыми я пока тоже не очень дружу.

На самом деле это только малая часть того, что в этих журналах наворочено, просто я убрала всё лишнее. Остался последний шаг. Буду очень благодарна за помощь.

П.С. Объединённые ячейки - это зло, я знаю. Этой красотой, конечно, можно пожертововать.

IKor

К сожалению, сейчас не смогу посвятить вопросу много времени, но могу предложить направление, куда бы я копал.

Цитата: Njura от 23.08.2012, 11:51
П.С. Объединённые ячейки - это зло, я знаю. Этой красотой, конечно, можно пожертововать.
Вместо объединения ячеек (или в дополнительном столбце) создать уникальные числовые значения по принципу, например: номер_серии + номер_строки_Журнала_1 / 1000
На новом месте (в Журнале 2) сгенерировать дополнительный столбец (можно виртуальный) правильных уникальных значений и уже с его помощью сформировать красивый журнал.

Посмотрите также соседнюю тему
Цитата: IKor от 17.08.2012, 12:31
перейдите по линку в заголовке этой цитаты в другую тему и посмотрите прилагаемые к ней файлы.

Njura


Njura

IKor, а что такое "виртуальный столбец"?

Njura

IKor, спасибо за идею, почти всё сделала. Одна загвоздка- работает со статическим диапазоном. Как только я вставляю в формулу именной динамический диапазон - "ошибка в формуле". Дело, как я понимаю, в синтаксисе.
Подскажите, пожалуйста, какими знаками связать имя диапазона и название файла? Zur и DD- имена диапазонов в Журнале2, а формула такая:

=IF(ISNA(INDEX('Путь\[Имя_файла.xls]'Zur;MATCH(V29;'Путь\[Имя_Файла.xls]'DD;0);4));"";INDEX('Путь\[Имя_файла.xls]'Zur;MATCH(V29;'Путь\[Имя_Файла.xls]'DD;0);4))


cheshiki1

попробуйте в место 'Путь\[Имя_файла.xls]'Zur
'Путь\Имя_файла.xls'!Zur

Njura


cheshiki1

#7
покажите ваш файл.

П.С.у меня подозрение что у вас второй файл закрыт.

Njura

Вот. В Журнале2 ячейки с формулой отмечены красным. Путь не писала в этот раз, чтобы не мешал.

cheshiki1

#9
как я и предполагал - ваша формула не работает с закрытыми книгами.
путь прописывать как я уже говорил.
обратите внимание в вашем примере в ф-циях MATCH проверяемое значение указано разное - хотя должно быть одинаковое.

формула для доп столбца в Журнал1 =ЕСЛИ(ЕЧИСЛО(C3);C3;N2+0,00001) так проще будет чем у вас.

Njura

Цитата: cheshiki1 от 27.08.2012, 15:49
как я и предполагал - ваша формула не работает с закрытыми книгами.

Так она и открытыми не работает. Почему? И почему работает со статическими массивами? И с динамическими, но в одной книге?

Цитироватьпуть прописывать как я уже говорил.
Сделаю.

Цитироватьобратите внимание в вашем примере в ф-циях MATCH проверяемое значение указано разное - хотя должно быть одинаковое.
Опечатка. Экспериментирую в других файлах и так их размножила, что дай бог теперь понять, где исходник.  :)


Njura

Всё, с открытыми книгами работает, спасибо. А какие функции использовать, чтобы с закрытой книгой работало тоже?

Njura

Решила не заморачиваться динамическими диапазонами и прописала в формуле статический. В Журнале1 Diap=Zhurnal!$A$3:$N$30000. Но при удалении/добавлении строк в Журнал1 этот диапазон уменьшается или увеличивается. Пробовала использовать для определения диапазона INDEX или INDIRECT. В первом случае диапазон фиксируется, но не позволяет работать с закрытой книгой. Во втором - и не фиксируется, и с закрытой книгой работать не даёт. Как быть?

cheshiki1

Я так думаю проще будет если макрописцы помогут всю вашу процедуру прописать в макросе.

Njura