Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Работа с EXEL-скими файлами. (Поиск в одном доке,вставка в другой автоматически)  (Прочитано 4726 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн TrEK

  • Автор темы
  • Активист
  • *
  • Сообщений: 738
  • good day in FolK-King life :)
    • Просмотр профиля
    • smallprogs.ru
Подскажите, пожалуйста. Есть ли решение для подобной задачи?
Есть два файла ЕКСЕЛовских.

Надо в первом читать пошагово строки, находить в ней ячейку с номером (все номер идут в столбец), и потом вписывать некоторое значение во второй документ, в строку где присутствует тот найденный в 1-ом доке номер.
Есть ли такая возможность решения подобных дел?
« Последнее редактирование: 02 Февраля 2011, 13:49:31 от TrEK »

Оффлайн inkblack

  • Старожил
  • *
  • Сообщений: 1216
    • Просмотр профиля
Re: Работа с EXEL-овскими файлами
« Ответ #1 : 02 Февраля 2011, 11:28:45 »
Проще ответить на этот вопрос, когда есть пример данных.

Насколько я понимаю, в MS Excel такое делается на раз с помощью Excel Basic или как он там называется.
Что касается OOo, там в макросах всё устроено несколько посложнее. Я давно хочу перетащить свои макросы в OOo, но пока не судьба :(
Делюсь знаниями, но их у меня мало!

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Работа с EXEL-овскими файлами
« Ответ #2 : 02 Февраля 2011, 12:04:32 »
Можно макросами, можно с помощью СУБД - экспортировать оба файла в CSV или tab-delimited, импортировать их в какую-нибудь базу, например, sqlite или mysql, сделать там все, что требуется - я так думаю, что это пара запросов на SQL - экспортировать из СУБД обратно в CSV или еще какой формат, импортировать в ексел.
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн TrEK

  • Автор темы
  • Активист
  • *
  • Сообщений: 738
  • good day in FolK-King life :)
    • Просмотр профиля
    • smallprogs.ru
Re: Работа с EXEL-овскими файлами
« Ответ #3 : 02 Февраля 2011, 13:45:13 »
Проще ответить на этот вопрос, когда есть пример данных.

Насколько я понимаю, в MS Excel такое делается на раз с помощью Excel Basic или как он там называется.
Что касается OOo, там в макросах всё устроено несколько посложнее. Я давно хочу перетащить свои макросы в OOo, но пока не судьба :(

Поочерёдно брать номер в 4-ом столбике:


Искать его в втором документе и там где найдет, вставить нужное значение в 5-ый столбик :


Замечу, что скрин1 и скрин2 - это два разных EXEL-документа!

Так как , возможно реализовать мою задачу? Я слышал что-то на счет макросов, но на сколько я знаю... для их применения надо чтоб там где ищем и туда куда вставляем были в одном доке...
« Последнее редактирование: 04 Февраля 2011, 18:10:20 от TrEK »

Оффлайн inkblack

  • Старожил
  • *
  • Сообщений: 1216
    • Просмотр профиля
Вечером сделаю, а щас - на работу ухожу :(
Делюсь знаниями, но их у меня мало!

Оффлайн TrEK

  • Автор темы
  • Активист
  • *
  • Сообщений: 738
  • good day in FolK-King life :)
    • Просмотр профиля
    • smallprogs.ru
Вечером сделаю, а щас - на работу ухожу :(
Хм, так такое возможно ?...  с нетерпением хочу посмотреть.... ;)

Оффлайн inkblack

  • Старожил
  • *
  • Сообщений: 1216
    • Просмотр профиля
Легко, но сейчас прямо не успею. Всё. Ушёл.
Делюсь знаниями, но их у меня мало!

Оффлайн TrEK

  • Автор темы
  • Активист
  • *
  • Сообщений: 738
  • good day in FolK-King life :)
    • Просмотр профиля
    • smallprogs.ru
Легко, но сейчас прямо не успею. Всё. Ушёл.
Да мне не к спеху.. просто давно уже ищу разные варианты, как можно автоматизировать енто дело. :)
Так как часто приходится заниматься однообразным копированием , поиском, и вставкой... вместо чего можно было бы что-нибудь полезное сделать.

Ок, тогда жду Вашей подсказки.

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Работа с EXEL-овскими файлами
« Ответ #8 : 02 Февраля 2011, 16:12:40 »
Я давно хочу перетащить свои макросы в OOo, но пока не судьба :(
Если Вы писали макросы в екселе, то освоите эти дела в ООо.
В ООо тоже есть запись макросов по сценарию нажатий мыши и клавиатуры. Никакого программирования при этом  не требуется. Если есть желание, то сценарий можно оптимизировать, отредактировав полученный скрипт.

Оффлайн TrEK

  • Автор темы
  • Активист
  • *
  • Сообщений: 738
  • good day in FolK-King life :)
    • Просмотр профиля
    • smallprogs.ru
а что такое ООо вообще?)  :idiot2:

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Open Office org
сейчас будет уже LO.
Пока еще OOo.

Оффлайн TrEK

  • Автор темы
  • Активист
  • *
  • Сообщений: 738
  • good day in FolK-King life :)
    • Просмотр профиля
    • smallprogs.ru
Open Office org
сейчас будет уже LO.
Пока еще OOo.

LO - Linux Office ?

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн inkblack

  • Старожил
  • *
  • Сообщений: 1216
    • Просмотр профиля
Итак, вот пример. 2 файла, 111.xls и 222.xls. Выглядят примерно так:
Файл 111.xls
Лист1:

       A       B      C
1    Индекс  Ключ Значение
2    12    50092 1.1.1.12
3    3     50583 1.1.1.3
4    10    50843 1.1.1.10
5    9     51222 1.1.1.9
6    19    51373 1.1.1.19
7    17    51417 1.1.1.17
8    7     51712 1.1.1.7
9    18    53722 1.1.1.18
10   4     53905 1.1.1.4
11   16    54994 1.1.1.16
12   6     55059 1.1.1.6
13   11    55614 1.1.1.11
14   13    55731 1.1.1.13
15   2     55764 1.1.1.2
16   5     55907 1.1.1.5
17   20    55921 1.1.1.20
18   14    56699 1.1.1.14
19   1     57296 1.1.1.1
20   8     57622 1.1.1.8
21   15    58997 1.1.1.15

Файл 222.xls
Лист1:

       A              B
1    57296 1.1.1.1   <- В этих ячейках формула:
2    55764 1.1.1.2       =ВПР(A1,[111.xls]Лист1!$B:$C,2,ЛОЖЬ)
3    50583 1.1.1.3
4    53905 1.1.1.4
5    55907 1.1.1.5
6    55059 1.1.1.6
7    51712 1.1.1.7
8    57622 1.1.1.8
9    51222 1.1.1.9
10   50843 1.1.1.10
11   55614 1.1.1.11
12   50092 1.1.1.12
13   55731 1.1.1.13
14   56699 1.1.1.14
15   58997 1.1.1.15
16   54994 1.1.1.16
17   51417 1.1.1.17
18   53722 1.1.1.18
19   51373 1.1.1.19
20   55921 1.1.1.20

В первом файле 1-й столбец — просто числа от 1 до 20, 2-й столбец — числа, по которым мы выбираем значения из 3 столбца.

Во втором файле первый столбец — числа. Для каждого числа из 1 столбца находится строка в первом файле, где есть это число. Из этой строки берется значение и помещается в ячейку напротив числа.

Т. е., в ячейке A1 — число 57296. В первом файле оно расположено в строке 19, столбце B. Из строки 19, столбца C берётся значение 1.1.1.1. Оно помещается в ячейку B1.

Что означает формула:
 ВПР — вертикальный просмотр. В английском варианте — vlookup.
 A1   — из этой ячейки берется число, которое ищем в первом файле.
 [111.xls]Лист1!$B:$C — просматриваем файл 111.xls, Лист1, столбцы от B до C.
 2   — после того, как нашли число в первом столбце просматриваемого интервала (B), берём значение из второго столбца (C).
 ЛОЖЬ —  означает, что в файле 111.xls данные НЕ ОБЯЗАТЕЛЬНО отсортированы.
 При этом просматриваются все значения, и когда встретится совпадение, формула дает ответ.

В этом примере данные отсортированы, и вместо ЛОЖЬ можно написать ИСТИНА или оставить пустое место — работать будет быстрее. Но если в первом файле отсортировать таблицу по первому полю, то в столбце B данные будут не по порядку, и надо в формуле писать ЛОЖЬ, иначе будет неправильно работать. У вас в примере данные не по порядку -> надо написать ЛОЖЬ.

В вашем случае формула должна выглядеть так:

=ВПР(A1,[111.xls]Лист1!$D:$?,?,ЛОЖЬ), ну, вместо ? надо подставить правильную букву и число.

Не умею я объяснять... Если что — спрашивайте.

Пользователь решил продолжить мысль 03 Февраля 2011, 02:05:00:
В этом примере всё получилось даже без макросов, просто с помощью формул на рабочем листе.

Одно только неясно: какое «некоторое значение» надо вписать в 5 столбец? Если это значение вычисляется только из содержимого строки с нужным числом из первого файла и некоторых констант, то всё ОК, а если там используются другие данные, то надо смотреть.

А с помощью макросов в Экселе можно не только с разными документами работать. Там можно почти всё!
« Последнее редактирование: 03 Февраля 2011, 02:05:00 от inkblack »
Делюсь знаниями, но их у меня мало!

Оффлайн TrEK

  • Автор темы
  • Активист
  • *
  • Сообщений: 738
  • good day in FolK-King life :)
    • Просмотр профиля
    • smallprogs.ru
Вот только добрался до форума, спасибо что отписали на вопрос, буду пробовать шаманить ...

Пользователь решил продолжить мысль [time]Mon Feb  7 03:17:57 2011[/time]:


Что-то у меня ничего не получается :(

Смотрите , Ексель мне предлагает разделять условия знаком ; ....



Давайте попробуем на моем примере?

===============================================================================

файл1:
LAN.xls  (из которого надо искать D2,D3,D4,D5,D6 во втором файле в столбике A, и вставлять в столбик F значения соответствующие столбику E первого файла)
лист1: Центр-1(24)


1
2
3
4
5
6
A
Номер:
1
2
3
4
5
B
Имя:
имя1
имя2
имя3
имя4
имя5
C
IP:
1.1.1.1
1.1.1.2
1.1.1.3
1.1.1.4
1.1.1.5
D
Телефон:
500000
500001
500002
500003
500004

E
Значение:
90
90
110
110
90

F
Дата:
05.01.11
04.01.11
03.01.11
02.02.11
01.02.11
G
Адресс:
ул.Стрит1
ул.Стрит2
ул.Стрит3
ул.Стрит4
ул.Стрит5
H
Дргуое:
ля-ля-ля1
ля-ля-ля2
ля-ля-ля3
ля-ля-ля4
ля-ля-ля5

===============================================================================

файл2: Номера.Январь.2011.xls (в который надо вставлять значение)
лист1: Номера


1
2
3
4
5
6

A
Телефон:
500000
500001
500002
500003
500004

B
Имя:
имя1
имя2
имя3
имя4
имя5
C
Данные1:
1
2
3
4
5
D
Данные2:
1
2
3
4
5
E
Данные3:
1
2
3
4
5
F
Значение:
[пусто]
[пусто]
[пусто]
[пусто]
[пусто]

G
Адресс:
ул.Стрит1
ул.Стрит2
ул.Стрит3
ул.Стрит4
ул.Стрит5
H
Инфа1:
ййй
ццц
ууу
ккк
еее
I
Инфа2:
ффф
ыыы
ввв
ааа
ппп

===============================================================================

Формулу надо вставить в файл2 в столбик, в который надо вставлять значение?
« Последнее редактирование: 08 Февраля 2011, 01:56:05 от TrEK »

 

Страница сгенерирована за 0.023 секунд. Запросов: 21.