いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Excel)ISEVEN・ISODD関数に配列を渡すとエラーになる現象と対策

 ExcelのISEVEN関数とISODD関数の伝統的な仕様についてです。

  • ISEVEN関数とISODD関数は、引数が配列(行列)だと「#VALUE!」を返します。
  • 引数に「*1」を加えるとエラーになりません。他の演算や関数を加えても同様です。

手順

f:id:accs2014:20200115051240p:plain:right:w350

 B2:B9に数字が並んでいますので、D2セルに「=ISODD(B2:B9)」と記してみます。
 ISNUMBERやISTEXTだと普通にTRUE/FALSEを返しますが……

f:id:accs2014:20200115051245p:plain:right:w350

 なぜかこの関数(とISEVEN関数)ではエラーになります。

f:id:accs2014:20200115051249p:plain:right:w350

 そこで引数に「*1」を加えて「=ISODD(B2:B9*1)」とします。

f:id:accs2014:20200115051252p:plain:right:w350

 今度は期待通りの値が返ってきました。
 なお、空白は0とみなされてTRUEが返ります。