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


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

Автор Тема: Знатокам формул Open Office  (Прочитано 3355 раз)

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

Оффлайн Bocha

  • Автор темы
  • Участник
  • *
  • Сообщений: 139
    • Просмотр профиля
Знатокам формул Open Office
« : 20 Октября 2009, 13:35:36 »
Пояснения:
{1} - Фамилия
{2} - Имя
{3} - Отчество
_ - пробел

Есть документ такого вида (большой список), где последовательность 3 слов в одной ячейки:
[ ЯЧЕЙКА A ]   [ЯЧЕЙКА B]   [ЯЧЕЙКА C]
[{1}_{2}_ {3}]

Как автоматически разложить строку по ячейкам:
[ ЯЧЕЙКА A ]   [ЯЧЕЙКА B]   [ЯЧЕЙКА C]
[{1}_{2}_ {3}  ]    [{2}             ]   [{1}             ]

Как я понимаю должна быть какая-нить формула в OpenOffice ?
P.S. надеюсь доходчиво расписал.. ))

Оффлайн volgautc

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: Знатокам формул Open Office
« Ответ #1 : 20 Октября 2009, 14:23:33 »
Если writer-ом, то через преобразование сначала таблицу в текст потом обратно, но уже с правильным выбором разделителей.

Оффлайн Svertal

  • Активист
  • *
  • Сообщений: 893
  • КиберПанк
    • Просмотр профиля
Re: Знатокам формул Open Office
« Ответ #2 : 20 Октября 2009, 15:43:36 »
Если writer-ом, то через преобразование сначала таблицу в текст потом обратно, но уже с правильным выбором разделителей.
Ну раз на то пошло, то проще в calc, "данные" > "текст по столбцам".
Но вопрос был о том как это сделать формулой...

Оффлайн volgautc

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: Знатокам формул Open Office
« Ответ #3 : 20 Октября 2009, 16:15:08 »
В том то и дело, что автор не обозначил того приложения, где у него имеется препарируемая таблица. Я так понял, что не формула ему нужна, а просто все слова из одной ячейки раскидать пословно в каждую ячейку строки. В calc-е да, проще будет.

П.С. просто не соображу какие формулы можно применять с текстом.

Оффлайн bujhm666

  • Участник
  • *
  • Сообщений: 185
  • Arch Linux
    • Просмотр профиля
Re: Знатокам формул Open Office
« Ответ #4 : 20 Октября 2009, 20:00:18 »
Формулой не знаю, а ручками можно скопировать [{1}_{2}_ {3}] в каждый столбец, а потом поиск и замена по маске.

Оффлайн Dixi257

  • Активист
  • *
  • Сообщений: 287
    • Просмотр профиля
Re: Знатокам формул Open Office
« Ответ #5 : 20 Октября 2009, 23:10:20 »
Как я понял, требуется поиск токенов, разделённых пробелами и раскладывание по отдельным ячейкам. Можно макрос написать. Только пусть автор чётче обрисует задачу. Откуда брать исходные строки (файл, документ Writer, ...), куда складывать разобранные токены (документ Calc)?

Оффлайн Bocha

  • Автор темы
  • Участник
  • *
  • Сообщений: 139
    • Просмотр профиля
Re: Знатокам формул Open Office
« Ответ #6 : 21 Октября 2009, 06:31:25 »
На самом деле таблица в Calc'e, и на самом деле нужно просто решить задачу три слова из одного поля, разложить по одному в слову в поля.
Принимаются любый варианты решений, просто я подумал, что должен существовать штатный механизм, предположительно какая-нить строковая функция.
Так как это сделать? Если можно на пальцах расскажите  :)

Оффлайн Svertal

  • Активист
  • *
  • Сообщений: 893
  • КиберПанк
    • Просмотр профиля
Re: Знатокам формул Open Office
« Ответ #7 : 21 Октября 2009, 06:41:21 »
Еще попальцатее?

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Знатокам формул Open Office
« Ответ #8 : 21 Октября 2009, 08:12:25 »
Проблема решается через сохранение файла в формате csv.
При вводе надо уазать разделитель.
В крайнем случае, можно в csv файле скриптом с  sed ом заменить разделители.

Оффлайн Svertal

  • Активист
  • *
  • Сообщений: 893
  • КиберПанк
    • Просмотр профиля
Re: Знатокам формул Open Office
« Ответ #9 : 21 Октября 2009, 08:19:07 »
Можно и еще покруче завернуть, можно на питоне написать, или на руби, или подставьте все что угодно...
Чем не устраивает?
Ну раз на то пошло, то проще в calc, "данные" > "текст по столбцам".

Оффлайн Vitalink

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Знатокам формул Open Office
« Ответ #10 : 21 Октября 2009, 08:46:30 »
Можно и формулами, но с большим списком будет работать медленно
Цитировать
ABCD
1Фамилия Имя Отчество=LEFT(A1;SEARCH(" ";A1)-1)=MID(A1;SEARCH(" ";A1)+1;SEARCH(" ";A1;SEARCH(" ";A1)+1)-SEARCH(" ";A1))=RIGHT(A1;LEN(A1)-SEARCH(" ";A1;SEARCH(" ";A1)+1))

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Знатокам формул Open Office
« Ответ #11 : 21 Октября 2009, 10:25:51 »
А формула будет все длиннее и длиннее с увеличением столбца.
Проще скриптом преобразовать файл.
Что-то типа.
sed 's/" "/;/g' file_in > file_out

Оффлайн volgautc

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: Знатокам формул Open Office
« Ответ #12 : 21 Октября 2009, 14:24:24 »
На самом деле таблица в Calc'e, и на самом деле нужно просто решить задачу три слова из одного поля, разложить по одному в слову в поля.
Принимаются любый варианты решений, просто я подумал, что должен существовать штатный механизм, предположительно какая-нить строковая функция.
Так как это сделать? Если можно на пальцах расскажите  :)
Вот решение уже почти сутки висит:
... "данные" > "текст по столбцам"....
Механизм штатнее некуда и без умных формул.

Оффлайн Vitalink

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Знатокам формул Open Office
« Ответ #13 : 21 Октября 2009, 14:55:12 »
А формула будет все длиннее и длиннее с увеличением столбца.
Необязательно. ;)
Если известно общее количество столбцов и оно постоянно, то для средних столбцов (кроме первого и последнего) можно использовать конструкцию:
=MID(Строка_ФИО;SEARCH("#";SUBSTITUTE(Строка_ФИО;" ";"#";Номер_слова-1))+1;SEARCH("#";SUBSTITUTE(Строка_ФИО;" ";"#";Номер_слова))-SEARCH("#";SUBSTITUTE(Строка_ФИО;" ";"#";Номер_слова-1)))
Можно сделать и для заранее неизвестного количества столбцов, но получится совсем громоздко.

(Нажмите, чтобы показать/скрыть)

Пользователь решил продолжить мысль 21 Октября 2009, 15:23:10:
... "данные" > "текст по столбцам"....
Механизм штатнее некуда и без умных формул.
"Умные формулы" пригодятся если данные надо получить сразу в какой-нибудь форме или если исходные данные динамические. В других случаях пользуемся вариантом "данные" > "текст по столбцам"
« Последнее редактирование: 21 Октября 2009, 15:23:10 от Vitalink »

 

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