配列関数といえばよく見るのはARRAYFORMULAだが、
ヘルパー関数の BYROW(BYCOL) の方が良いと思う理由。
理由1.BYROWの方が明示的かつ簡潔
ARRAYFORMULAは数式中に何度も範囲が出てくるので、どの範囲を繰り返し処理するのかわかりづらい。
BYROWは最初に繰り返し処理する範囲を書くのでわかりやすい。
また、BYROWなら繰り返し処理する範囲を何度も書く必要がない。
=arrayformula(if(A:A="", , vlookup(A:A, B:D, 2, false)))
=byrow(A:A, lambda(x, if(x="", , vlookup(x, B:D, 2, false)))
理由2.処理できない関数がいくつかある
例えば OR、AND、SUM、ISDATE、SUMIFS、COUNTIFS、MINIFSなどはARRAYFORMULAで使えない。
BYROWならこれらの関数も使える。
理由3.そもそも繰り返し処理用の関数ではない(多分)
ARRAYFORMULAは数式の結果が配列になる場合、それを展開する(スピルさせる)ための関数であって、範囲の繰り返し処理のために用意された関数ではないように思う。
ARRAYFORMULAを使う理想のタイミングは多分次のようなもの。
=SPLIT("/", "スプシのURL")
=vlookup(A1, B:E, {2, 3, 4}, false)
=A:B