Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

20 Сентябрь 2017, 10:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Добрый день! Проблема такая много приходится вбивать д...  (Прочитано 250 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ForumOOo (бот)
Ветеран
*****
Offline Offline

Сообщений: 595


« Стартовое сообщение: 11 Июль 2017, 14:12 »

Компонент: Calc
Версия продукта: 4.x
Сборка: Apache OpenOffice
ОС: windows 10

Добрый день! Проблема такая много приходится вбивать данных в
биллинговую ситему. От операторов приходит в виде
                                   код                   подкоды    
                        цена                             Швейцария
(mob) - Swisscom   [ 41   ]  [75, 774-775, 79, 860774-860775, 86079   ]
[20,2777] а нужно разбить построчно в виде: если это возможно подскажите
Швейцария (mob) - Swisscom     41           4175                           
            20,2777
Швейцария (mob) - Swisscom     41           41774-41775                   
           20,2777
Швейцария (mob) - Swisscom     41           4179                           
            20,2777
Швейцария (mob) - Swisscom     41           41860774-41860775             
         20,2777
Швейцария (mob) - Swisscom     41           4186079                       
               20,2777



--
Подпись: Александр
Эл. почта: nekhay61@gmail.com
Записан
kompilainenn
Ветеран
*****
Offline Offline

Сообщений: 2 061



« Ответ #1: 11 Июль 2017, 16:02 »

сочувствую, что тут скажешь. А делать-то что надо в итоге?
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
economist
Ветеран
*****
Offline Offline

Сообщений: 684


« Ответ #2: 11 Июль 2017, 16:03 »

Макросом, написано за 5 минут...

Код:
Sub parseMob(a)
stroka="(mob) - Swisscom   [ 41   ]  [75, 774-775, 79, 860774-860775, 86079   ] [20,2777]"
stroka=replace(stroka,"  ", "")
stroka=replace(stroka," ", "")
stroka=replace(stroka,"]", "")
parts=split(stroka, "[")
partsSubCode=split(parts(2),",") '75, 774-775, 79, 860774-860775, 86079  

For n=0 to ubound(partsSubCode)
if instr(partsSubCode(n),"-")>0 then
firstSubCode=split(partsSubCode(n),"-")(0)
secondSubCode=split(partsSubCode(n),"-")(1)
Else
firstSubCode=""
secondSubCode=""
end if

if firstSubCode="" then
parts(2)=parts(1) & partsSubcode(n)
Else
parts(2)=parts(1) & firstSubCode & "-" & parts(1) & secondSubCode
End if

strokaItog=Join(parts," ")
msgbox(strokaItog)

Next n
parseMob=strokaItog
End Sub
« Последнее редактирование: 11 Июль 2017, 16:06 от economist » Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
economist
Ветеран
*****
Offline Offline

Сообщений: 684


« Ответ #3: 11 Июль 2017, 16:05 »

Правильнее макрос обернуть в функцию, но из топика не ясно в одной ячейке или нет исходные данные и куда они должны попасть. В целях просвещения - готов описать что каждая строка в макросе делает.
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!