Автор Тема: С кириллицы на латницу LibO Calc [решено]  (Прочитано 4657 раз)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Возможно ли в LibO Calc перегнать через формулу (или как-то по-другому) с кириллицы на латницу ?
« Последнее редактирование: 16.07.2013 14:52:39 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 243
Re: С кириллицы на латницу LibO Calc
« Ответ #1 : 02.04.2012 17:24:24 »
Возможно ли в LibO Calc перегнать через формулу (или как-то по-другому) с кириллицы на латницу ?
вам транслит нужен?

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: С кириллицы на латницу LibO Calc
« Ответ #2 : 02.04.2012 18:45:29 »
вам транслит нужен?
Мне надо приличное количество строк перегнать с кириллицы на латницу.
Можно, конечно, воспользоваться онлайн сервисами... но подумал, а может быть можно это сделать через Calc ? Чтобы "протащить" все остальные столбцы автозаполнением.
Сноси Винду, переходи на Линукс ! :)

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
Re: С кириллицы на латницу LibO Calc
« Ответ #3 : 02.04.2012 21:19:04 »
вам транслит нужен?
Мне надо приличное количество строк перегнать с кириллицы на латницу.
Типа Привет - > Privet
Или Привет -> Hello ? :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: С кириллицы на латницу LibO Calc
« Ответ #4 : 02.04.2012 21:28:27 »
Вот так:
Типа Привет - > Privet
Сноси Винду, переходи на Линукс ! :)

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
Re: С кириллицы на латницу LibO Calc
« Ответ #5 : 02.04.2012 21:29:24 »
Вот так:
Типа Привет - > Privet
Скрипт тогда.
За основу можно взять скрипт на javascript в интернете есть....

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: С кириллицы на латницу LibO Calc
« Ответ #6 : 02.04.2012 21:39:04 »
Скрипт тогда.
За основу можно взять скрипт на javascript в интернете есть....
Хм... тогда уж подобным сервисом воспользуюсь http://translit.ru/
Просто, думал, что в Calc (Excel) есть подобные функции...
Спасибо.
Сноси Винду, переходи на Линукс ! :)

ska

  • Гость
Re: С кириллицы на латницу LibO Calc
« Ответ #7 : 24.04.2012 14:26:50 »

Скрипт тогда.
За основу можно взять скрипт на javascript в интернете есть....
Будь мужиком! Сделай сам!)
Чую, что юзеров создаете. Если так, глядите, какие закорючки у меня когда-то получились)
#переводит в нижний регистр и транслитирирует русские символы для подготовки к созданию логинов
#например Иванов Иван Иванович в ivanov ivan ivanovich
#порядок использования: sed -f transliterate file
#transliterate - название этого файла-скрипта
#file - путь к текстовому файлу с русскими именами
y/АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ/абвгдеёжзийклмнопрстуфхцчшщъыьэюя/
y/абвгдезийклмнопрстуфхцыэ/abvgdeziyklmnoprstufhzye/
s/ё/yo/g
s/я/ya/g
s/ю/yu/g
s/ч/ch/g
s/ш/sh/g
s/щ/ch/g
s/ж/zh/g
s/ь//g
s/ъ//g
####################
#s/\(^.....\).*[ ]\(...\).*[ ].*$/\1\2/g #преобразует "фамилия имя отчество" в логин "фамилимя"
#s/\(^.....\).*[ ]\(...\).*$/\1\2/g #преобразует "фамилия имя" в логин "фамилимя"

#s/\(^...\).*[ ]\(.....\).*$/\2\1/g #преобразует "имя фамилия" в логин "фамилимя"

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: С кириллицы на латницу LibO Calc
« Ответ #8 : 24.04.2012 18:21:27 »
Чую, что юзеров создаете. Если так, глядите, какие закорючки у меня когда-то получились)
Именно. :-)
Интересно, надо будет опробовать. Спасибо!
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: С кириллицы на латницу LibO Calc
« Ответ #9 : 16.07.2013 12:00:18 »
Неожиданно для себя решил продолжить начатое :)

По-прежнему хочу всё сделать через Calc.
Вот такая формула получилась:
=SUBSTITUTE(SUBSTITUTE(A1;"б";"b");"а";"a")Можно, конечно дальше продолжить, но может быть как-то это всё можно упростить, чтобы для каждой буквы не описывать одно и то же ? Строчка иначе получится очень длинной :)
У кого какие мысли есть ?
« Последнее редактирование: 16.07.2013 12:09:14 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
Re: С кириллицы на латницу LibO Calc
« Ответ #10 : 16.07.2013 14:45:26 »
Вот скрипт

  Dim doc As Variant
  Dim cell As Variant
 
doc = ThisComponent
cell = doc.getCurrentSelection
 
  cellText = cell.getString

msgbox "->"+cellText

cellText = Replace(cellText,"П","М")
cellText = Replace(cellText,"р","е")
cellText = Replace(cellText,"и","д")
cellText = Replace(cellText,"в","в")
cellText = Replace(cellText,"е","э")
cellText = Replace(cellText,"т","д")

msgbox "->"+cellText

cell.SetString(cellText)
Меняет в активной ячейке буквы из "Привет" на "Медвед"
Подправьте и все :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: С кириллицы на латницу LibO Calc
« Ответ #11 : 16.07.2013 14:52:31 »
Вот скрипт
Спасибо.
Я в общем-то уже сделал через формулу... :) Кстати, ни так уж и много получилось, норм.
Мне через формулу больше нравится, удобней что ли :)
Если у кого будут какие-то предложения касаемо упрощения формулы — отписывайтесь, пожалуйста! :) Спасибо.

[решено]
Сноси Винду, переходи на Линукс ! :)

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 569
Насчёт упрощения формулы не скажу, однако, так
{=SUBSTITUTE(SUBSTITUTE(LOWER(A1:A65536);"б";"b");"а";"a")}можно формулу ввести один раз и не протаскивать, при большом количестве строк будет работать гораздо быстрее, да и испортить её сложнее будет. :)
« Последнее редактирование: 16.07.2013 19:56:25 от stranger573 »

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Насчёт упрощения формулы не скажу, однако, так
Хм... а что означают "{}" ? У меня с ними не считает...
У меня такая формула получилась:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE
(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE
(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE
(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE
(SUBSTITUTE(LOWER(CONCATENATE(C1:C1000;LEFT(D1:D1000);LEFT(E1:E1000)));
"я";"ja");"ю";"ju");"э";"je");"ь";"");"ы";"y");"ъ";"");"щ";"w");"ш";"sh");"ч";"ch");"ц";"c");"х";"h");"ф";"f");"у";"u");
"т";"t");"с";"s");"р";"r");"п";"p");"о";"o");"н";"n");"м";"m");"л";"l");"к";"k");"й";"j");"и";"i");"з";"z");"ж";"zh");
"ё";"jo");"е";"e");"д";"d");"г";"g");"в";"v");"б";"b");"а";"a")
Сноси Винду, переходи на Линукс ! :)

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 569
Хм... а что означают "{}" ? У меня с ними не считает...
Означают формулу массива. Выделяется диапазон ячеек для которого будет работать формула (лучше в строке "Область листа", там где пишется адрес выделенной ячейки, например B1:B65536 и Enter). Далее пишете, как обычно, формулу (фигурные скобки вводить не надо) и жмёте Ctrl+Shift+Enter.
Если понадобится потом отредактировать формулу массива, нужно сначала выделить диапазон.
При большом количестве ячеек с формулой, массив может пересчитываться в десятки раз быстрее чем отдельные формулы в каждой ячейке.
P.S. Если Вам нужна транслитерация для логинов, имён файлов и т.д. имеет смысл добавить в вашу формулу замену пробела на подчёркивание, некоторые приложения неадекватно себя ведут, когда в строке есть пробелы.
« Последнее редактирование: 17.07.2013 10:19:02 от stranger573 »