Поиск по таблицам

Для поиска внутри таблиц или табличных разделов, удовлетворяющих определенным критериям, используется функция table().

Синтаксис

table([аргумент_1, [аргумент_2, …​]])

Функция поддерживает опциональные именованные параметры, которые позволяют указывать дополнительный критерий поиска.

Параметр

Пояснение

name

поиск внутри таблиц с указанным именем; может определяться PDL-запросом

number

поиск внутри таблиц с указанным номером

col/column

поиск внутри указанной колонки; может определяться PDL-запросом

row

поиск внутри указанной строки; может определяться PDL-запросом

cell

поиск внутри указанных ячеек; может определяться PDL-запросом

match

определяет табличные разделы, которые должны быть подсвечены (ячейки/строки/колонки)

whole:=yes/no

whole:=yes позволяет найти название таблицы, ряда, колонки или содержание ячейки, только если оно полностью совпадает с указанной строкой (по умолчанию whole:=no, функция находит любое вхождение строки)

level

ограничение уровня вложенности таблицы (начиная с 1) с использованием операторов «>», «<», «>=», «<=», «!=»

nested:=yes/no

поиск только вложенных таблиц ("no" по умолчанию)

has_nested:yes/no

поиск таблиц, содержащих вложенные таблицы ("yes" по умолчанию)

Примечание

Для ограничения поиска внутри числовых параметров можно использовать операторы сравнения «>», «<», «>=», «<=», «!=», например, table(col:>1, col:<3, row:>4).

Пример

table() находит все таблицы документа.

table(таблетка, ароматизатор) находит все случаи употребления слов «таблетка» или «ароматизатор» внутри таблиц;

table(таблетка, ароматизатор, match:=cell) находит ячейки таблиц, содержащие слова «таблетка» или «ароматизатор»;

table(таблетка, ароматизатор, match:=row) находит строки таблиц, содержащие слова «таблетка» или «ароматизатор»;

table(name:=phrase(0, состав, optional(lemma(adjective)), orn(препарат,лекарство))) находит таблицы с именами, найденными путем специального запроса, например «Состав препарата», «Состав лекарственного средства», и т.д;

table(col:="применение", row:="таблетки жевательные") находит ячейки таблиц на пересечении колонки и строки с именем, определенным специальным запросом;

table(number:=3) находит таблицу №3;

table(number:=4, column:=2) находит колонку №2 таблицы №4;

table(сol:=phrase(lemma(adjective), orn(вещество,ингредиент))) находит колонки с именем, определенным специальным запросом, например «Действующее вещество», «Активное вещество», «Активный ингредиент», и т.д;

table(number:=4, row:=23, column:=2) находит ячейку на пересечении колонки №2 и строки №23 таблицы №4;

table(cell:=orn(таблетка,биофильтрация)) находит ячейки, где упомянуты слова «таблетка» или «биофильтрация».

table(row:>=5, level:=2, "закупка") находит слово «закупка» в строках, начиная с пятой, внутри вложенной таблицы второго уровня.

table(cell:="закупка", nested:=yes) находит слово «закупка» внутри ячеек вложенной таблицы.

table("заказчик", has_nested:=yes) находит слово «заказчик» внутри таблицы, содержащей вложенные таблицы.

Пример задачи: Найти препарат и лекарственную форму, соответствующие коду анатомо-терапевтическо-химической классификации (АТХ)

Для решения этой задачи можно составить следующий запрос: table(row:=A07BА, column:=orn(лекарственные формы, лекарственные препараты)).

Найдутся ячейки на пересечении строк, содержащих код «A07BА», и колонок «Лекарственные формы» или «Лекарственные препараты».

pdl table 1 rus