Не получится формулами сортировать на месте, да и такой вариант - перемешивание статических и динамических данных, что в корне неверно. Это можно сделать скриптом - организовать
onEdit() и там проверять значение и пересортировывать весь лист. Но я бы не советовал такой вариант -
onEdit может пропускать вызовы, если вызывать его часто. Да и медленно это будет всё, если данных много. Но пробуйте, может быть то что получится и устроит вас.
Заготовка для onEdit:
const whiteListSheetNames = [`Лист1`,`Лист2`];
const whiteListRangeNames = [`H1`, `H2`];
function onEditTrigger(e) { // установить триггер на "Редактирование". Простой onEdit имеет меньше прав
let sheet = e.source.getActiveSheet();
let address = e.range.getA1Notation().toUpperCase();
let row = e.range.getRow();
let col = e.range.getColumn();
let newValue = e.value;
let oldValue = e.oldValue;
if ((whiteListSheetNames.includes(sheet.getName())) && (whiteListRangeNames.includes(address))) { // Проверка по вкусу
// сортировка
};
};