Посмотрите, работает ли это
=ArrayFormula(vlookup(timevalue(A2), {iferror(value(regexextract(TimeSlots!A2:A, "(.+)\s-"))),TimeSlots!B2:C}, {2, 3}, 1))
Да, функционально они - то же самое. Насколько я знаю, что между двумя нет никаких значительных различий в производительности.
Всего одна вещь отметить является этим, после того как Вы имеете set rowcount
это сохранится для жизни соединения, так удостоверьтесь, что Вы сбрасываете его к 0
после того как Вы сделаны с ним.
Объем SET ROWCOUNT
для текущей процедуры только. Это включает процедуры, названные текущей процедурой. Это также включает динамический SQL, выполняемый через EXEC
или SP_EXECUTESQL
так как их считают "дочерними" объемами.
Заметьте это SET ROWCOUNT
находится в a BEGIN/END
объем, но это расширяется кроме того.
create proc test1
as
begin
begin
set rowcount 100
end
exec ('select top 101 * from master..spt_values')
end
GO
exec test1
select top 102 * from master..spt_values
Результат = 100 строк, затем 102 строки