LibreOffice の Calc で Excel ファイルを開いたら、
以下の様な LOOKUP 関数でエラーになった。
=LOOKUP(1,0/(B47+ROW($1:$6)-1=B47:B52),B47:B52)
ググっても、なかなか情報が出てこず結構困ったけど、
なんとか解決出来たので、シェア。
=SUMPRODUCT((B47+ROW($1:$6)-1=B47:B52),(B47:B52))
=SUMPRODUCT((B47+ROW($1:$6)-1=B47:B52)*(B47:B52))
とりあえず、
以下は同じ動作するみたいです。たぶん…。
=LOOKUP(1,0/([配列]),[配列])
=SUMPRODUCT(([配列]),[配列])
=SUMPRODUCT(([配列])*([配列]))
以上。
【2018/06/27追記】
すみません。
色々わかっていなかったみたいです…。
LOOKUP の関数は振替休日を算出する関数だったんですが、以下のページで詳しい説明がありました。
この LOOKUP 関数は、GW などの連なった祝日のどれかが日曜と重なった場合、最後の祝日の翌日を次の日を振替休日として、算出している様です。
=LOOKUP(1,0/(B5+ROW($1:$6)-1=B5:B10),B5:B10)+1
で、微妙に違うところもありますが、
これとほぼ同じ動きを SUMPRODUCT で行うと、
=SUMPRODUCT((B5+ROW($1:$6)=B5:B10+1)*(B5:B10+1=B6:B11))+B5+1
でいけるのではと思います。
LOOKUP 関数では、連なった祝日の最後の祝日を算出してますが、
SUMPRODUCT 関数では、連なった祝日の残りの祝日の数を算出しています。
例えば、05/03 が日曜だった場合、
LOOKUP 関数では、05/05 を算出し、それに +1 で 05/06、
SUMPRODUCT 関数では、05/03 の後の残りの祝日数を算出(2)し、それを 05/03 に足して、さらに +1 して、05/06 としています。
ただ、
(現実的には無いけど…)これでも微妙に違いが出るパターンが有ると思いますので、ご注意下さい。
適当な投稿で非常に申し訳ありませんでした…。
以上。