Создание формул как из экселя в тильде
Перейти к содержимому

Создание формул как из экселя в тильде

  • автор:

Создание формул как из экселя в тильде

Столкнулись с проблемой, где нужно добавить на страницу сайта большую таблицу Exсel? И не хочется делать все руками? Есть решение, как преобразовать данные с помощью простой формулы. Вам останется только перенести все одним копипастом.

Допустим, у нас есть огромная таблица с данными (представим, что она огромная):

Пример: исходная таблица в Excel.
Если мы будем переносить таблицу в блок CL46 (раздел Колонки), то выйдет вот такая глупость:

Чтобы избежать этого кривого копирования, нам нужно подготовить данные правильным образом.

В таблицу Excel добавляем ещё одну ячейку с символом ; и копируем ее на всю длину столбца (до конца контента).

Задаём формулу через =, поочередно выбирая ячейка&символ;&ячейка&символ;&ячейка и тд.
Здесь амперсанд (&) выступает связующим, а мы связываем все так, чтобы точка с запятой были между каждой ячейкой, его мы добавляем кнопкой на клавиатуре.

Использование структурированных ссылок в таблицах Excel

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2007 Excel для Mac 2011 Excel Mobile Еще. Меньше

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

Прямая ссылка на ячейки

Имена таблицы и столбцов в Excel

Это сочетание имен таблицы и столбца называется структурированной ссылкой. Имена в структурированных ссылках корректируются при добавлении данных в таблицу или их удалении.

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

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

Менеджер по продажам

Сумма продаж

ПроцентКомиссии

ОбъемКомиссии

  1. Скопируйте пример данных из приведенной выше таблицы, включая заголовки столбцов, и вставьте их в ячейку A1 нового листа Excel.
  2. Чтобы создать таблицу, выделите любую ячейку в диапазоне данных и нажмите клавиши CTRL+T.
  3. Установите флажок Моя таблица с заголовками и нажмите кнопку ОК.
  4. В ячейке E2 введите знак равенства (=) и щелкните ячейку C2. В строке формул после знака равенства появится структурированная ссылка [@[ОбъемПродаж]].
  5. Введите звездочку (*) непосредственно после закрывающей скобки и щелкните ячейку D2. В строке формул после звездочки появится структурированная ссылка [@[ПроцентКомиссии]].
  6. Нажмите клавишу ВВОД. Excel автоматически создает вычисляемый столбец и копирует формулу вниз по нему, корректируя ее для каждой строки.

Что произойдет, если я буду использовать прямые ссылки на ячейки?

Если вы введете в вычисляемый столбец прямые ссылки на ячейки, может быть сложнее понять, что вычисляет формула.

  1. В образце листа щелкните ячейку E2.
  2. В строке формул введите =C2*D2 и нажмите клавишу ВВОД.

Обратите внимание на то, что хотя Excel копирует формулу вниз по столбцу, структурированные ссылки не используются. Если, например, вы добавите столбец между столбцами C и D, вам придется исправлять формулу.

Как изменить имя таблицы?

При создании таблицы Excel ей назначается имя по умолчанию («Таблица1», «Таблица2» и т. д.), но его можно изменить, чтобы сделать более осмысленным.

  1. Выберите любую ячейку в таблице, чтобы отобразить вкладку Работа с таблицами >Конструктор на ленте.
  2. Введите нужное имя в поле Имя таблицы и нажмите клавишу ВВОД.

В этом примере мы используем имя ОтделПродаж.

При выборе имени таблицы соблюдайте такие правила:

  • Используйте допустимые символы. Имя всегда должно начинаться с буквы, символа подчеркивания (_) или обратной косой черты (\). Остальная часть имени может включать в себя буквы, цифры, точки и символы подчеркивания. В имени нельзя использовать латинские буквы C, c, R и r, так как они служат для быстрого выделения столбца или строки с активной ячейкой при вводе их в поле Имя или Перейти.
  • Не используйте ссылки на ячейки. Имена не могут иметь такой же вид, как ссылки на ячейки, например Z$100 или R1C1.
  • Не используйте пробелы для разделения слов. В имени нельзя использовать пробелы. Можно использовать символ подчеркивания (_) и точку (.). Примеры допустимых имен: ОтделПродаж, Налог_на_продажи, Первый.квартал.
  • Используйте не более 255 знаков. Имя таблицы может содержать не более 255 знаков.
  • Использование уникальных имен таблиц Повторяющиеся имена не допускаются. Excel не различает символы в верхнем и нижнем регистрах в именах, поэтому если вы введете «Продажи», но уже имеете другое имя «SALES» в той же книге, вам будет предложено выбрать уникальное имя.
  • Использование идентификатора объекта Если вы планируете использовать сочетание таблиц, сводных таблиц и диаграмм, рекомендуется префиксировать имена с помощью типа объекта. Например, tbl_Sales для таблицы продаж, pt_Sales для сводной таблицы продаж и chrt_Sales для диаграммы продаж или ptchrt_Sales для сводной диаграммы продаж. При этом все имена будут храниться в упорядоченном списке в диспетчере имен.

Правила синтаксиса структурированных ссылок

Вы также можете ввести или изменить структурированные ссылки вручную в формуле, но это поможет понять синтаксис структурированных ссылок. Рассмотрим такую формулу:

В этой формуле используются указанные ниже компоненты структурированной ссылки.

  • Имя таблицы:DeptSales — это пользовательское имя таблицы. Он ссылается на данные таблицы без каких-либо строк заголовка или итогов. Вы можете использовать имя таблицы по умолчанию, например Table1, или изменить его, чтобы использовать пользовательское имя.
  • Описатель столбцов:[Сумма продаж]и[Сумма комиссии] — это описатели столбцов, которые используют имена столбцов, которые они представляют. Они ссылаются на данные столбца без заголовка столбца или строки итогов. Всегда заключайте описатели в квадратные скобки, как показано ниже.
  • Описатель элемента:[#Totals] и [#Data] — это специальные описатели элементов, которые ссылаются на определенные части таблицы, например на строку итогового значения.
  • Табличный описатель:[#Totals], [Сумма продаж]] и [[#Data],[Сумма комиссии]] являются табличными описателями, представляющими внешние части структурированной ссылки. Внешние ссылки следуют за именем таблицы и заключают их в квадратные скобки.
  • Структурированная ссылка:(DeptSales[[#Totals],[Sales Amount]] и DeptSales[[#Data],[Commission Amount]] представляют собой структурированные ссылки, представленные строкой, которая начинается с имени таблицы и заканчивается описателем столбца.

При создании или изменении структурированных ссылок вручную учитывайте перечисленные ниже правила синтаксиса.

  • Заключайте указатели в квадратные скобки. Все указатели таблиц, столбцов и специальных элементов должны быть заключены в парные скобки ([ ]). Указатель, содержащий другие указатели, требует наличия таких же внешних скобок, в которые будут заключены внутренние скобки других указателей. Например: =DeptSales[[Sales Person]:[Region]]
  • Все заголовки столбцов — это текстовые строки. Но для них не требуются кавычки, если они используются в структурированной ссылке. Числа или даты, например 2014 или 01.01.2014, также считаются текстовыми строками. Нельзя использовать выражения с заголовками столбцов. Например, выражение ОтделПродажСводкаФГ[[2014]:[2012]] недопустимо.

Заключайте в квадратные скобки заголовки столбцов, содержащие специальные знаки. Если присутствуют специальные знаки, весь заголовок столбца должен быть заключен в скобки, а это означает, что для указателя столбца потребуются двойные скобки. Пример: =ОтделПродажСводкаФГ[[Итого $]]

Дополнительные скобки в формуле нужны при наличии таких специальных знаков:

  • TAB
  • Канал строки
  • Возврат каретки
  • Запятая (,)
  • Двоеточие (:)
  • Точка (.)
  • Левая скобка ([)
  • Правая скобка (])
  • Знак фунта (#)
  • Одна кавычка (‘)
  • Двойная кавычка («)
  • Левая фигурная скобка ( <)
  • Правая фигурная скобка (>)
  • Знак доллара ($)
  • Caret (^)
  • Амперсанд (&)
  • Звездочка (*)
  • Знак «плюс» (+)
  • Знак равенства (=)
  • Знак минус (-)
  • Больше символа (>)
  • Меньше символа ( <)
  • Знак деления (/)
  • При знаке (@)
  • Обратная косая черта (\)
  • Восклицательный знак (!)
  • Левая скобка (()
  • Правая скобка ())
  • Знак процента (%)
  • Вопросительный знак (?)
  • Обратный тик (‘)
  • Точка с запятой (;)
  • Тильда (~)
  • Подчеркивание (_)
  • Используйте escape-символы для некоторых специальных знаков в заголовках столбцов. Перед некоторыми знаками, имеющими специфическое значение, необходимо ставить одинарную кавычку (‘), которая служит escape-символом. Пример: =ОтделПродажСводкаФГ[‘#Элементов]

Ниже приведен список специальных символов, которым требуется escape-символ (‘) в формуле:

  • Левая скобка ([)
  • Правая скобка (])
  • Знак фунта(#)
  • Одна кавычка (‘)
  • При знаке (@)

Используйте пробелы для повышения удобочитаемости структурированных ссылок. С помощью пробелов можно повысить удобочитаемость структурированной ссылки. Пример: =ОтделПродаж[ [Продавец]:[Регион] ] или =ОтделПродаж[[#Заголовки], [#Данные], [ПроцентКомиссии]].

Рекомендуется использовать один пробел:

  • После первой левой скобки ([)
  • Перед последней правой скобкой (]).
  • После запятой.

Операторы ссылок

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

Эта структурированная ссылка:

Ссылается на:

Диапазон ячеек:

Все ячейки в двух или более смежных столбцах

: (двоеточие) — оператор ссылки

Сочетание двух или более столбцов

, (запятая) — оператор объединения

Пересечение двух или более столбцов

(пробел) — оператор пересечения

Указатели специальных элементов

Чтобы сослаться на определенную часть таблицы, например на строку итогов, в структурированных ссылках можно использовать перечисленные ниже указатели специальных элементов.

Этот указатель специального элемента:

Ссылается на:

Вся таблица, включая заголовки столбцов, данные и итоги (если они есть).

Только строки данных.

Только строка заголовка.

Только строка итога. Если ее нет, будет возвращено значение null.

Только ячейки в той же строке, где располагается формула. Эти указатели нельзя сочетать с другими указателями специальных элементов. Используйте их для установки неявного пересечения в ссылке или для переопределения неявного пересечения и ссылки на отдельные значения из столбца.

Excel автоматически заменяет указатели «#Эта строка» более короткими указателями @ в таблицах, содержащих больше одной строки данных. Но если в таблице только одна строка, Excel не заменяет указатель «#Эта строка», и это может привести к тому, что при добавлении строк вычисления будут возвращать непредвиденные результаты. Чтобы избежать таких проблем при вычислениях, добавьте в таблицу несколько строк, прежде чем использовать формулы со структурированными ссылками.

Определение структурированных ссылок в вычисляемых столбцах

Когда вы создаете вычисляемый столбец, для формулы часто используется структурированная ссылка. Она может быть неопределенной или полностью определенной. Например, чтобы создать вычисляемый столбец с именем Commission Amount, который вычисляет сумму комиссии в долларах, можно использовать следующие формулы:

Тип структурированной ссылки

Перемножает соответствующие значения из текущей строки.

Перемножает соответствующие значения из каждой строки обоих столбцов.

Общее правило таково: если структурированная ссылка используется внутри таблицы, например, при создании вычисляемого столбца, то она может быть неопределенной, но вне таблицы нужно использовать полностью определенную структурированную ссылку.

Примеры использования структурированных ссылок

Ниже приведены примеры использования структурированных ссылок.

Эта структурированная ссылка:

Ссылается на:

Диапазон ячеек:

Все ячейки в столбце «ОбъемПродаж».

Заголовок столбца «ПроцентКомиссии».

Итог столбца «Регион». Если нет строки итогов, будет возвращено значение ноль.

Все ячейки в столбцах «ОбъемПродаж» и «ПроцентКомиссии».

Только данные в столбцах «ПроцентКомиссии» и «ОбъемКомиссии».

Только заголовки столбцов от «Регион» до «ОбъемКомиссии».

Итоги столбцов от «ОбъемПродаж» до «ОбъемКомиссии». Если нет строки итогов, будет возвращено значение null.

Только заголовок и данные столбца «ПроцентКомиссии».

=ОтделПродаж[[#Эта строка], [ОбъемКомиссии]]

Ячейка на пересечении текущей строки и столбца Commission Amount. При использовании в той же строке, что и заголовок или итоговая строка, возвращается ошибка #VALUE! .

Если ввести длинную форму этой структурированной ссылки (#Эта строка) в таблице с несколькими строками данных, Excel автоматически заменит ее укороченной формой (со знаком @). Две эти формы идентичны.

E5 (если текущая строка — 5)

Методы работы со структурированными ссылками

При работе со структурированными ссылками учитывайте следующее.

  • Автозаполнение формул может оказаться очень полезным при вводе структурированных ссылок для соблюдения правил синтаксиса. Дополнительные сведения см. в статье Использование автозаполнения формул.
  • Решите, следует ли создавать структурированные ссылки для таблиц в полувыборах По умолчанию при создании формулы при щелчке диапазона ячеек в таблице выбирается полуэлемерная ячейка и автоматически вводится структурированная ссылка вместо диапазона ячеек в формуле. Псевдовыбор облегчает ввод структурированной ссылки. Это поведение можно включить или отключить, выбрав или снимите флажок Использовать имена таблиц в формулах проверка в диалоговом окне Параметры > файла >формулы >Работа с формулами.
  • Использование книг с внешними ссылками на таблицы Excel в других книгах Если книга содержит внешнюю ссылку на таблицу Excel в другой книге, эта связанная исходная книга должна быть открыта в Excel, чтобы избежать ошибок #REF! в целевой книге, содержащей ссылки. Если сначала открыть целевую книгу и #REF! появятся ошибки, они будут устранены при открытии исходной книги. Если сначала открыть книгу с исходным кодом, коды ошибок не будут отображаться.
  • Преобразование диапазона в таблицу и таблицы в диапазон. При преобразовании таблицы в диапазон все ссылки на ячейки изменяются на эквивалентные абсолютные ссылки стиля A1. При преобразовании диапазона в таблицу Excel не изменяет автоматически ссылки на ячейки этого диапазона на эквивалентные структурированные ссылки.
  • Отключение заголовков столбцов. Вы можете включить и отключить заголовки столбцов таблицы на вкладке Конструктор таблицы >строке заголовков. Если отключить заголовки столбцов таблицы, структурированные ссылки, использующие имена столбцов, не затрагиваются, и вы по-прежнему можете использовать их в формулах. Структурированные ссылки, ссылающиеся непосредственно на заголовки таблицы (например, =DeptSales[[#Headers], [%Commission]]), приведут к #REF.
  • Добавление и удаление столбцов и строк в таблице. Так как диапазоны табличных данных часто меняются, ссылки на ячейки для структурированных ссылок настраиваются автоматически. Например, если вы используете имя таблицы для подсчета всех ячеек в ней, и добавляете строку данных, ссылка на ячейки автоматически меняется.
  • Переименование таблицы или столбца. Если переименовать столбец или таблицу, в приложении Excel автоматически изменится название этой таблицы или заголовок столбца, используемые во всех структурированных ссылках книги.
  • Перемещение, копирование и заполнение структурированных ссылок Все структурированные ссылки остаются неизменными при копировании или перемещении формулы, которая использует структурированную ссылку.

Примечание: Копирование структурированной ссылки и заполнение структурированной ссылки — это не одно и то же. При копировании все структурированные ссылки остаются неизменными, а при заполнении формулы полностью структурированные ссылки настраивают описатели столбцов, как последовательность, как показано в следующей таблице.

Направление заполнения:

И при заполнении нажимаете :

Выполняется действие:

Создание формул как из экселя в тильде

Перейдите к редактированию — нажмите «Контент» в левой верхней части блока.
Измените заголовок и описание на вкладке «Шапка блока».

Создайте поле для длины столешницы:
— Добавьте новое поле с типом «Количество(ползунок)».
— Задайте имя переменной — оно будет использовано для расчёта в формуле.
В примере задаем length.

Аналогичным образом добавьте поле с именем переменной width для выбора ширины.

Excel очень крут

Статья Хилла Уейна, автора почтовой рассылки «Компьютерные штучки», которая посвящена формальным методам и применению математики в программировании, истории и культуре программного обеспечения, философии и теории программирования, а также всяким экзотическим штукам и нишевым темам. В общем, рекомендуем.

В прошлом выпуске рассылки Уейн игрался с языком программирования J, который работает как арифметический калькулятор в консоли, и пошутил по ходу дела:

Я столько времени трачу на интерактивные вычисления, что даже не мог оторваться от этих функций… Может, мне просто хорошенько освоить Excel?

Пошутив про офисную программу, Хилл Уейн решил действительно посмотреть на неё поближе… и был поражён увиденным: «Это как найти сундук с сокровищами у себя на чердаке», — пишет он. И перечисляет некоторые новые функции современного Excel, о которых мало кто знает.

Вот кое-что из интересного.

В Excel теперь реальные возможности для программирования

Начнём с самой полезной функции, о которой, похоже, никто не знает. Вместо того чтобы повсюду использовать названия ячеек и диапазонов типа A15 и B1:D94 , вы можете… дать им нормальные имена. Или пропустить хранение информации в ячейке — и просто напрямую присвоить значение. Почти как в настоящем языке программирования!

Определены три имени, одно — фиксированное значение, другое — фиксированный массив, третье — ссылка на ячейку

Обычно об этом не принято распространяться, но такой метод устраняет одну из главных проблем нечитаемости формул. Вместо формулы =A1*B1 можно написать =Ширина*Высота , как это делали деды.

О, и можете составлять кастомные формулы на свой вкус.

Это не шутка. В 2020 году Microsoft добавила в Excel функции LET и LAMBDA . Если присвоить формуле LAMBDA(arr,y, MAX(arr)^y) имя MAXEXP , то можно использовать MAXEXP в качестве обычной встроенной формулы. LET позволяет связывать в середине формулы новые имена, которые также могут ссылаться на предыдущие связывания. Очень простой пример: LET(x, 1, y, x+1, z, y+x) выдаёт 3 . Примерно так же с LET работают все языки программирования. Конечно, синтаксис здесь немного странный, если вы не фанат S-выражений (sexp), но всё же. Полезная штука.

Заливка!

Предположим, у нас такая табличка.

Последний столбец — сложное преобразование текста

Нажимаем Ctrl+E:

Теперь в последних двух строках столбец заполнен по тому же образцу

Разве не здорово?!

Источники данных

Очень порадовала кнопка «Импорт из интернета»:

Она делает почти то, что вы ожидаете: вводите URL страницы — и оттуда HTML-таблица преобразуется в таблицу Excel.

Но есть нюанс (вот почему «почти»). Значения из интернета не просто копируются на лист. Excel сохраняет «запрос данных» по URL. Если изменить таблицу до неузнаваемости, то можно обновить запрос — и немедленно восстановить исходную таблицу вместе с любыми обновлениями из источника. То есть мы можем просто периодически (или автоматически) обновлять значения, которые подгружаются из интернета.

Это можно сделать практически с любым источником данных, включая XML, JSON и даже таблицы в PDF. В качестве эксперимента я импортировал в Excel старую налоговую декларацию в PDF — и он извлёк нужные данные.

Но прежде чем импортировать данные, можно изменить их на лету с помощью Power Query . Отфильтровать строки, заполнить пустые ячейки, разделить столбец по разделителю, выполнить базовую очистку данных. Все изменения моделируются как последовательность шагов преобразования. Это означает, что если обновить запрос, то все первоначальные преобразования применятся заново. Вот как это выглядит:

Очищаем CSV от плохих данных с помощью воспроизводимых шагов

Я уже говорил, что можно переименовать и комментировать каждый шаг? Если это недостаточно круто, как вам такое — можно форкнуть любой запрос, чтобы у разных запросов были общие начальные шаги! Например, вытянуть из интернета кучу данных, очистить их — а затем разложить на отдельные таблицы 2021 и 2022. Затем, если требуется дополнительная очистка, то применяем её к форкнутому префиксу — и обе таблицы на выходе автоматически обновятся.

Excel — это по сути APL

APL — функциональный язык, оптимизированный для работы с массивами, предшественник Matlab — прим. пер.

Наверное, для меня это самое странное. В Excel есть своеобразные «транзитные» массивы: формула в одной ячейке выводит массив значений, которые транзитом переходят в другие ячейки. Например, у нас такая таблица:

A B 1 2 3 4 5 6

Затем пишем в C1 формулу =A1:A3 + B1:B3 — и получаем C1=3, C2=7, C3=11. Далее, если поместить в D1 формулу =C1^2 , то просто получаем D1=9 . Но если вы вместо этого написать C1#^2 , то это применится к транзитному массиву C1 — и теперь у нас будет D1=9, D2=49, D3=121.

А если написать C1 = A1:A3 + TRANPOSE(B1:B3) , то получится следующее:

C D E 3 5 7 5 7 9 7 9 11

Это открывает некоторые забавные возможности в стиле APL. Недавно у меня была такая таблица данных:

A B 12 15 x

В этом случае значение в столбце B показывает на нечётные значения, которые не делятся на два. Я хотел вычислить сумму всех значений после деления на два. «Правильный» способ будет такой:

=SUM(A:A*IF(ISBLANK(B:B), 1, 0.5))

Но можно сделать и в стиле APL, например, так:

SUM(A:A*(1-0.5*(B:B="x")))

В инсайдерской сборке есть несколько формул, которые ещё больше превращают Excel в нечто APL-подобное.

А вот игра «Жизнь» в Excel:

LET(x, SUM(OFFSET(cell#,-1,-1,3,3)), (x=3)+cell#*(x=4))

Разные крутости

  • Excel поставляется с решателем для логического программирования с учётом ограничений (constraint solver). Можно включить его в дополнениях программы (аддонах).
  • Можно напрямую перемещать или копировать листы между разными файлами Excel.
  • С помощью связанных типов данных можно вставить в ячейку позу йоги — и Excel скажет, насколько она сложная.
  • Есть кнопка для создания 3D-глобусных карт по вашим данным. Видимо, по ним можно водить экскурсии, хотя я не пробовал (и вряд ли попробую).
  • Есть кнопка, которая преобразует выборку данных в изображение.

Вряд ли большинство пользователей, или даже «опытных пользователей», используют эти функции. То же самое верно и для разработчиков, большинство из которых на самом деле не используют все возможности своих редакторов. Однако такие штуки интересно исследовать!

В любом случае, любопытно познакомиться с этим инструментом, если вы или ваша компания оплатила подписку на Office 365.

  • Блог компании Дата-центр «Миран»
  • Программирование
  • INFOLUST
  • Функциональное программирование
  • Софт

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *