экранироваине [] квадратных скобок при настройках парсинга

Тема в разделе "Решение различных задач по парсингу", создана пользователем cherkas, 19 ноя 2017.

  1. cherkas

    cherkas Member Пользователи

    Регистрация:
    20 авг 2013
    Сообщения:
    54
    Адрес:
    Украина
    Здравствуйте, существует задача обрабатывать полученные данные в excel, для этого в настройки парсинга я сразу ввожу формулы для excel

    пример повторяющихся границ парсинга

    [GRAN20][CSVCS][GRAN19][CSVCS][GRAN18][CSVCS][GRAN17][CSVCS][GRAN16][CSVCS]=100*[GRAN17]/[GRAN18][CSVCS]=100*[GRAN16]/[GRAN18][CSVCS]=ЕСЛИ("[GRAN14]"="[GRAN19]";"[GRAN15]";"[GRAN14]")[CSVCS]=100/((ВПР(RC[1];C[-7]:C[-3];5;0)+RC[-3])/2)[CSVCS][CSVLB]

    и получается что RC[1] принимается программой не как простой текст а как что то другое. Перейти на формулы буквенные типа "=A1-B1" и т.п. я не могу, так как там меняется нумерация строк. А в формате RC не принимаются скобки.

    Подскажите какое то решение.


    пробовал писать так
    RC\1`

    и ставить автозамену

    \|[
    `|]

    но видимо автозамена работает только для того что парсится
     
    Последнее редактирование: 19 ноя 2017
  2. aresa

    aresa Well-Known Member Пользователи

    Регистрация:
    17 окт 2015
    Сообщения:
    180
    Может лучше по максимуму расчеты постараться в CD сделать? Например для этого выражения 100*[GRAN17]/[GRAN18] вполне подойдет макрос TOPRICE
    Также макрос IF можно использовать
     
  3. cherkas

    cherkas Member Пользователи

    Регистрация:
    20 авг 2013
    Сообщения:
    54
    Адрес:
    Украина
    даже если я часть посчитаю в CD то от расчетов с функцией ВПР я ни куда не денусь, а там всё равно [] есть
     
  4. aresa

    aresa Well-Known Member Пользователи

    Регистрация:
    17 окт 2015
    Сообщения:
    180
    Так может эту функцию после парсинга в excel`е и применить, а на этапе парсинга пустой столбец оставить?
     
  5. cherkas

    cherkas Member Пользователи

    Регистрация:
    20 авг 2013
    Сообщения:
    54
    Адрес:
    Украина
    можно конечно и в ручную данные внести в exсel, без парсинга :)

    Вариант с последующей допилкой в excel не подходит.
     
  6. cherkas

    cherkas Member Пользователи

    Регистрация:
    20 авг 2013
    Сообщения:
    54
    Адрес:
    Украина
    вышел из положения с помощью макроса [INT_ID] и буквенного обозначения столбцов, как вариант конечно можно использовать, но всё таки от ГУРУ этого форума хотелось бы услышать еще варианты, так как обрабатывать данные приходится часто и через формат RC[1] это делать удобнее.

    Решение (макрос [INT_ID] настроен на нужное количество одинаковых повторений, что бы во всех формулах был один и тот же номер, а так же начинает отсчет с 2 так как первая строка - шапка)
    =100/((ВПР(H[INT_ID];B:F;5;0)+F[INT_ID])/2)

    эта же формула уже в csv
    =100/((ВПР(H2;B:F;5;0)+F2)/2)
    =100/((ВПР(H3;B:F;5;0)+F3)/2)
    =100/((ВПР(H4;B:F;5;0)+F4)/2)
    и т.д.
     
  7. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Это вопрос или своеобразная констатация решения?
     
  8. cherkas

    cherkas Member Пользователи

    Регистрация:
    20 авг 2013
    Сообщения:
    54
    Адрес:
    Украина
    это своеобразный вариант решения но не именно то, что хотелось бы тогда когда это было актуально.

    написал, решение так как может кому то еще пригодится.
     
    Root нравится это.
  9. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    При составлении шаблона вывода если используете теги которые воспринимаются частью стандартных макросов CD то для своих (excel) макросов используйте замену изначально например
    ] как ^e^
    [ как ^s^
    В итоге все стандартные макросы отработают не задев лишнего, а все содержимое шаблона вывода обнять макросом FINAL_REPLACE где произойдет обратная замена.
     
    gans, xLime, cherkas и ещё 1-му нравится это.

Поделиться этой страницей