Пользователь tohuwawohu опубликовал ответ, который привел меня прямо к моему. Я не думаю, что tohuwawohu полностью понял, что я хотел, возможно, по моей вине, но его предложение макроса помогло мне понять. Я только что создал макрос, который теперь загружается во все листы и в котором определена функция, которую я могу вызывать с тем же синтаксисом, что и встроенная функция.
Но, во-первых, я использую OpenOffice Calc, а не LibreOffice Calc, но они оба используют язык BASIC, который очень похож на VBA (Visual Basic для приложений от Microsoft, как используется в Excel).
Вы можете определить порции операторов через Sub (как в подпрограмме) и Function. Согласно этой странице в документации, загрузка / запуск макроса с функцией в нем делает именно это, позволяет вам вызывать его как функцию в обычных формулах ячеек. Это факт, о котором я не знал раньше, несмотря на попытки найти способ сделать это в прошлом.
Немного посмотрев обзор OOCalc Basic , я сделал функцию, которая работает, хотя и не совсем так, как хотелось бы, поскольку оператор и второй операнд передаются как два отдельных аргумента, а первый - как строка. Но, я помню, когда-то была хотя бы одна встроенная функция Excel, которая использовала то же самое, аргумент для оператора, передаваемого в виде строки, так что, по крайней мере, есть прецедент.
Думаю, проблема была в том, что я не знал, что было так просто создать "макрос", что вместо выполнения некоторого кода и выхода определял функцию, которую можно вызывать в формулах ячеек. Слово "макрос" выбило меня из колеи, поскольку обычно оно означает только вещи процедурного типа, плюс в "Руководстве пользователя" была информация о вызове этих функций в макросах, которая была в другой части сайта, чем Основной обзор.
Инструменты> Макросы> Упорядочить макросы> OpenOffice Basic> кнопка «Органайзер ...»> вкладка "Библиотеки"> Мои макросы и диалоги> "Стандартная" библиотека> кнопка "Редактировать"
Я вставил это в конце, сохранил и закрыл редактор. Он выполняет вторую из двух функций в исходном вопросе, но в форме IfAlt(A, operator, B, C), где operator - строка оператора сравнения. Если A op B имеет значение true, возвращает C, в противном случае возвращает A.
Function IfAlt(arg1, op, arg2, ifTrue)
If (op="=" AND arg1=arg2) OR (op="<>" AND arg1<>arg2) OR _
(op=">" AND arg1>arg2) OR (op=">=" AND arg1>=arg2) OR _
(op="<" AND arg1<arg2) OR (op="<=" AND arg1<=arg2) Then
IfAlt = ifTrue
Else
IfAlt = arg1
End If
End Function