「変数が奇数の場合は・・・、偶数の場合は・・・」
なんてゆう処理をエクセルで行いたいときに、わざわざ変数を2で割って余りが0なら・・・とかゆう処理を行っている人は多いと思います。
が、その処理はエクセルの関数で一発処理できるんです。
というわけでこの記事では、エクセル上で変数を奇数か偶数か一発判定できる【ISODD関数】の使い方をご紹介していきます。
通常のエクセルシート上での使い方から、VBA上で使用する方法までを解説していきます。
ぜひ最後までご覧ください。
それではさっそくやっていきましょう。
ISODD関数とは
まず始めに、この記事の主人公であるISODD関数についてご紹介します。
※偶数ならFALSEになるわけではありませんのでご注意ください。例えば0.1とかを入力するとFALSEが出力されます。
このISODDとは、英語のbe動詞である is と奇数を表すodd numberを組みあわせたものです。
1は奇数です、という日本語を英語に直すと、
1 is odd number
となりますよね。
この英文中にでてくるis oddだと覚えておけば、忘れにくくなるでしょう。
ISODD関数の使い方
次は先ほど紹介したISODD関数の使い方をご紹介していきます。
=ISODD(参照セル)
非常に簡単ですね。
※VBA上での使用方法は後程ご紹介します。
ISODD関数の使用例
次はISODD関数の実際の使用例をみてみましょう。
数値を直接入力する方法と、セルを参照する方法それぞれで実際に使ってみました。
まずは、数値を直接入力する場合。
A1セルに=ISODD(1)を入力しています。
このISODD関数は奇数が入力されたらTRUE、そうでなければFALSEを出力すると先ほど説明しました。
今回入力した1は奇数なので、しっかりとTRUEが出力されていますね。
参考までに2を入力してみましょう。
A1セルに=ISODD(2)を入力しています。
2は奇数ではないので今度はFALSEが出力されました。
問題なく動作していそうですね。
つぎは別のセルに入っている数値を参照する場合です。
今度は=ISODD(B1)を入力し、1という数値が入っているB1セルを参照してみました。
結果は奇数なのでTRUE。
B1セルを2に変えてみましょう。
奇数ではないのでFALSEになりました。
また先ほど0.1とか入れたらどうなるかという話をしましたので、実際にいれてみましょう。
0.1は当然奇数ではありませんのでFALSEが出力されましたね。
このように偶数だけをFALSEと出力するわけではないということは覚えておきましょう。
いずれにせよ、使いかたとしては非常に簡単ですね。
VBA上での使用例
エクセルシート上での使い方がわかったところで、つぎはVBA上で使用する方法をご紹介していきます。
基本的には先ほど使用したISODD関数をワークシート関数として呼びだして使用するだけです。
以下が実際の使用例です。
Sub Macro1()
Dim i As Integer
For i = 1 To 10
If WorksheetFunction.IsOdd(i) = True Then
Cells(i, 1) = "奇数"
Else
Cells(i, 1) = "偶数"
End If
Next
End Sub
基本的にやっていることとしては、
1から10まで繰り返される変数 i に対して、
WorksheetFunction.IsOdd(i)
で先ほど紹介したISODD関数を適用し、
結果が Trueの場合は
A列のi行目に”奇数”という文字を入れる
そうでない場合は
A列のi行目に”偶数”という文字を入れる
という処理を行っています。
このコードを実行すると以下のような結果が得られました。
問題なく処理が実行されていますね。
おわりに
というわけで今回は、奇数かどうかを一発判定してくれるISODD関数の使い方をご紹介しました。
うまく活用して面倒な数式記述やVBAのコーディング作業を効率化していきましょう!
また、感の良いひとならお気づきかもしれませんが、偶数(Even Number)かどうかを判定してくれるISEVEN関数も存在しています。
使い方はISODD関数とまったく同じですので、状況に応じて使い分けてみましょう。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント