Как пользоваться: Формула Excel в PHP
- Вставьте формулу из Excel или Google Таблиц либо выберите готовую в разделе Примеры.
- Выберите целевой язык. По умолчанию открыт PHP, переключить язык можно в любой момент.
- Переименуйте найденные ссылки на ячейки в понятные имена переменных, например
B2→price. - Выберите полную функцию или только выражение, затем скопируйте или скачайте код. Вспомогательные функции добавляются автоматически, если формула в них нуждается.
Превращаем формулы таблиц в PHP
Расценки, счета, стоимость доставки и правила расчёта комиссий часто описывают в Excel, а затем реализуют в PHP-приложении — Laravel, Symfony, WordPress или WooCommerce. Этот конвертер разбирает формулу с учётом приоритета операторов Excel и выдаёт код на PHP 8, который можно вставить в сервисный класс или файл с вспомогательными функциями.
=IFERROR(VLOOKUP(A2, Products!A2:C500, 3, FALSE), "Not found")
function calculate($a2, $products_a2_c500)
{
return if_error(fn() => vlookup($a2, $products_a2_c500, 3, false), 'Not found');
}
Как функции Excel соответствуют PHP
| Excel | PHP |
|---|---|
IF(c, a, b) | c ? a : b |
IFS / SWITCH | parenthesized ternaries |
AND, OR, NOT | &&, ||, ! |
= and <> | == and != |
a & b | $a . $b |
a ^ b | $a ** $b |
SUM(A2:A10) | array_sum($a2_a10) |
ROUND(x, 2) | round($x, 2) |
MOD(a, b) | excel_mod() helper |
SUMIFS / COUNTIF… | sum_ifs(), count_if() helpers |
VLOOKUP / XLOOKUP | vlookup(), xlookup() helpers |
IFERROR(x, y) | if_error(fn() => x, y) |
LEFT / MID / LEN | mb_substr(), mb_strlen() |
TODAY() / NOW() | new DateTime() |
Особенности PHP
- Вложенные тернарные операторы. Начиная с PHP 8, вложенные тернарные операторы без скобок вызывают фатальную ошибку. Каждый вложенный
IFавтоматически заключается в скобки. - Приоритет конкатенации. В PHP 8 операторы
+и-имеют более высокий приоритет, чем., поэтому"Total: " . $a + $bсначала выполнит сложение. Конвертер в любом случае сохраняет смысл формулы Excel. - Многобайтовый текст.
LEFT,MID,LEN,UPPERиLOWERиспользуют функцииmb_*, поэтому буквы с диакритикой и эмодзи считаются одним символом, как и в Excel. - FIND и SEARCH.
strpos()возвращаетfalseили смещение от нуля; вспомогательная функцияfind_pos()возвращает позицию в формате Excel, начиная с единицы (0, если ничего не найдено). - MOD. Оператор
%иfmod()в PHP сохраняют знак делимого;excel_mod()для отрицательных чисел работает так же, как Excel. - Ошибки.
IFERRORперехватываетDivisionByZeroErrorи ошибки поиска черезif_error(fn() => …), используя стрелочные функции (PHP 7.4+). - Даты.
TODAY(),DATE()иYEAR()работают с объектамиDateTime.
Как использовать результат
Вспомогательные функции — это обычные функции, которые размещаются выше вашей функции. Во фреймворке их можно перенести в файл-помощник или сделать статическими методами класса. Диапазоны представлены массивами PHP: один столбец — это простой список, а диапазон из нескольких столбцов — список строк.
Поддерживаемые функции: IF, IFS, SWITCH, AND, OR, NOT, XOR, IFERROR, IFNA, ISBLANK, ISNUMBER, ISTEXT, SUM, AVERAGE, MIN, MAX, COUNT, COUNTA, COUNTBLANK, PRODUCT, MEDIAN, ROUND, ROUNDUP, ROUNDDOWN, INT, TRUNC, ABS, SIGN, MOD, POWER, SQRT, EXP, LN, LOG, LOG10, PI, CEILING, FLOOR, RAND, RANDBETWEEN, SUMIF, SUMIFS, COUNTIF, COUNTIFS, AVERAGEIF, AVERAGEIFS, SUMPRODUCT, VLOOKUP, XLOOKUP, MATCH, INDEX, CONCAT, CONCATENATE, TEXTJOIN, LEFT, RIGHT, MID, LEN, UPPER, LOWER, PROPER, TRIM, SUBSTITUTE, REPLACE, FIND, SEARCH, REPT, VALUE, EXACT, TEXT (числовые форматы), TODAY, NOW, DATE, YEAR, MONTH, DAY. Чтобы перенести данные из таблицы, преобразуйте их с помощью Excel в массив PHP.
Также ищут как: vlookup в php, sumif в php, формулы excel laravel, перевод формул таблиц в php.
Инструменты, которые хорошо сочетаются с Формула Excel в PHP
- Формула Excel в JavaScript — Вставьте формулу из таблицы и получите понятный JavaScript: функцию с именованными параметрами, правильным порядком операций и небольшими вспомогательными функциями для того, чего нет в JavaScript, например SUMIFS и VLOOKUP.
- Формула Excel в Python — Вставьте формулу Excel или Google Sheets и получите функцию Python с понятными именами переменных, нужными импортами и вспомогательными функциями для SUMIFS, VLOOKUP и округления в стиле Excel.
- Формула Excel в SQL — Вставьте формулу Excel и получите эквивалентное SQL-выражение или запрос SELECT: IF и IFS как CASE WHEN, SUMIFS и COUNTIFS как условные агрегаты, а также подходящие строковые и датные функции для вашей базы данных.
- CSV и Excel в SQL — Вставьте ячейки CSV или Excel либо откройте файл .xlsx и получите готовые к выполнению операторы CREATE TABLE и INSERT с корректно экранированными значениями для вашей базы данных.
Часто задаваемые вопросы
Какая версия PHP нужна для результата?
** — PHP 5.6.Почему для строк используются mb_substr и mb_strlen?
Как передать диапазон в функцию?
A2:A10 превращается в плоский массив значений, а A2:C500 — в массив строк, именно такой формат ожидает vlookup().