0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ARRAYFORMULAよりBYROWを使う方が良い気がする話

Posted at

配列関数といえばよく見るのは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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?