【エクセル】奇数かどうか判定!ISODD関数の使い方!VBA利用まで!

「変数が奇数の場合は・・・、偶数の場合は・・・」

なんてゆう処理をエクセルで行いたいときに、わざわざ変数を2で割って余りが0なら・・・とかゆう処理を行っている人は多いと思います。

 

が、その処理はエクセルの関数で一発処理できるんです。

 

というわけでこの記事では、エクセル上で変数を奇数か偶数か一発判定できる【ISODD関数】の使い方をご紹介していきます。

通常のエクセルシート上での使い方から、VBA上で使用する方法までを解説していきます。

 

ぜひ最後までご覧ください。

 

それではさっそくやっていきましょう。

 

スポンサーリンク

ISODD関数とは

まず始めに、この記事の主人公であるISODD関数についてご紹介します。

ISODD関数は、指定した数が奇数ならTRUE、そうでなければFALSEを出力してくれるというものです。

※偶数ならFALSEになるわけではありませんのでご注意ください。例えば0.1とかを入力するとFALSEが出力されます。

 

このISODDとは、英語のbe動詞である is と奇数を表すodd numberを組みあわせたものです。

 

1は奇数です、という日本語を英語に直すと、

1 is odd number

となりますよね。

 

この英文中にでてくるis oddだと覚えておけば、忘れにくくなるでしょう。

スポンサーリンク

ISODD関数の使い方

次は先ほど紹介した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関数とまったく同じですので、状況に応じて使い分けてみましょう。

 

このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。

⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました