目次
ExcelのISNUMBERとは何かを説明し、基本的な使い方と高度な使い方の例を紹介します。
ISNUMBER関数は、与えられた値が数字であるかどうかをチェックするという、非常にシンプルなコンセプトの関数です。 ここで重要なのは、この関数はその基本的なコンセプトをはるかに超えた、特に大きな計算式の中で他の関数と組み合わせた場合に、実用的に使えるということです。
エクセル ISNUMBER関数
ExcelのISNUMBER関数は、セルに数値が含まれているかどうかをチェックする関数です。 IS関数のグループに属します。
本機能は、Office 365、Excel 2019、Excel 2016、Excel 2013、Excel 2010、Excel 2007以下のすべてのバージョンのExcelで利用可能です。
ISNUMBER構文は、1つの引数だけを必要とします。
=ISNUMBER(値)
どこ 価値 はテストしたい値です。 通常はセル参照で表しますが、実際の値を指定したり、ISNUMBERの内部に別の関数をネストして結果をチェックすることもできます。
もし 価値 それ以外(テキスト値、エラー、空白)の場合、ISNUMBER は FALSE を返します。
例として、セルA2~A6の値をテストしてみましょう。最初の3つの値は数字で、最後の2つはテキストであることが分かります。
ExcelのISNUMBER関数について知っておくべき2つのこと
ここで、いくつか興味深い点があります。
- 内部のExcel表現で。 年月日 と 倍 は数値なので、ISNUMBER式はそれらに対してTRUEを返します(上のスクリーンショットのB3とB4を見てください)。
- テキストとして保存された数値の場合、ISNUMBER関数はFALSEを返します(この例を参照してください)。
Excel ISNUMBER 計算式の例
以下の例は、ExcelにおけるISNUMBERの一般的な使用方法と自明でない使用方法を示しています。
値が数値かどうかをチェックする
ワークシートにたくさんの値があって、どれが数字なのか知りたいとき、ISNUMBERは正しい関数です。
この例では、最初の値がA2にあるので、以下の数式でチェックし、必要な数だけ数式をドラッグダウンしています。
=ISNUMBER(A2)
すべての値は数字のように見えますが、セルA4とA5ではISNUMBER式がFALSEを返していることに注意してください。 数字列 このような数値は、先頭のゼロやアポストロフィなど、さまざまな理由が考えられますが、Excelでは数値として認識されません。 したがって、数値が正しく計算されない場合は、まずその数値がExcelでいうところの数値かどうかを確認し、必要に応じてテキストから数値への変換を行う必要があります。
Excel ISNUMBER SEARCH 計算式
ExcelのISNUMBER関数は、数字を識別するだけでなく、セルに特定のテキストが含まれているかどうかを確認することもできます。 この場合、ISNUMBERとSEARCH関数を一緒に使用します。
一般的な形では、次のような式になります。
isnumber(検索( 部分文字列 , セル ))どこ 部分文字列 は検索したいテキストです。
例として、A3の文字列が特定の色、例えば赤を含んでいるかどうかを調べてみよう。
=ISNUMBER(SEARCH("red", A3))
この式は1つのセルに対して有効ですが、今回のサンプル表(下図参照)には3種類の色が含まれているので、それぞれ別の式を書くのは時間の無駄です。 代わりに、関心のある色が含まれているセル(B2)を参照することにしましょう。
=isnumber(search(b$2, $a3))
数式が正しく下と右にコピーされるように、次の座標を必ず$記号でロックしてください。
- で 部分文字列 列の参照は、コピーされた数式が常に 2 行目の部分文字列を選択するように行 (B$2) をロックします。 列の参照は、各列に対して調整するため相対的です。つまり、数式が C3 にコピーされると、部分文字列参照は C$2 に変更されます。
- での げんしでんち を参照し、すべての数式が列Aの値をチェックするように列 ($A3) をロックします。
下のスクリーンショットはその結果です。
ISNUMBER FIND - 大文字・小文字を区別する数式
SEARCH機能があるため ケースインセンシティブ 大文字と小文字を区別して計算したい場合は、SEARCHではなく、FIND関数を使用してください。
ISNUMBER(FIND()の場合 部分文字列 , セル ))今回のサンプルデータセットでは、以下のような式になります。
=isnumber(find(b$2, $a3))
この式の仕組み
この式のロジックは極めて明白であり、簡単に理解できる。
- SEARCH / FIND関数は、指定されたセル内の部分文字列を検索します。 部分文字列が見つかった場合、最初の文字の位置を返します。 部分文字列が見つからなかった場合、#VALUE!エラーを出力します。
- ISNUMBER関数はそれを受けて、位置を数値で処理します。 つまり、部分文字列が見つかり、その位置が数値で返された場合、ISNUMBERはTRUEを出力します。 部分文字列が見つからず、#VALUE!エラーが発生した場合、ISNUMBERはFALSEを出力します。
IF ISNUMBER式
TRUEやFALSE以外の値を出力する数式を得たい場合は、IF関数と一緒にISNUMBERを使用します。
例1.どのセルにどのようなテキストが含まれているか
先ほどの例をさらに進めて、下の表のように各項目の色に「×」をつけたいとします。
これを実行させるには、ISNUMBER SEARCH 式を IF 文で包むだけです。
=IF(ISNUMBER(SEARCH(B$2, $A3)), "x", "")
ISNUMBERがTRUEを返した場合、IF関数は "x "を出力する(または、他の値を value_if_true ISNUMBERがFALSEを返した場合、IF関数は空文字列("")を出力します。)
例2:セルの最初の文字が数字または文字列の場合
英数字の文字列のリストを扱うとき、文字列の最初の文字が数字か文字かを知りたい場合を想像してください。
このような数式を作るには、4種類の関数が必要です。
- LEFT関数は、セルA2のような文字列の先頭から1文字目を抽出します。
LEFT(A2, 1)
- LEFTはText関数に属するので、その結果は数字だけであっても常にテキスト文字列です。 したがって、抽出された文字をチェックする前に、それを数字に変換してみる必要があります。 これには、VALUE関数または二重単項演算子を使用します。
値(左(a2, 1))
または(--left(a2, 1))
- ISNUMBER関数は、抽出された文字が数値かどうかを判定する。
isnumber(値(左(a2,1)))
- ISNUMBERの結果(TRUEまたはFALSE)に基づき、IF関数はそれぞれ "Number "または "Letter "を返す。
A2の文字列をテストすると仮定すると、完全な式は次のような形になります。
=IF(ISNUMBER(VALUE(LEFT(A2, 1))), "Number", "Letter")
または
=IF(ISNUMBER(--LEFT(A2, 1)), "Number", "Letter")
ISNUMBER関数は、次のような場合にも便利です。 かずおとし 以下は、文字列の任意の位置から数値を取得する例です。
値が数値でないことを確認する
Microsoft Excelには、セルの値がテキストでないかどうかを判断するISNONTEXTという特殊な関数があるが、数値に対する同様の関数はない。
ISNUMBERがTRUEを返したら、NOTがFALSEに変換し、その逆を返すというように、ISNUMBERと論理値の逆を返すNOTを組み合わせて使うと簡単に解決する。
その様子を見るには、次の計算式の結果を観察してください。
=not(isnumber(a2))である。
もう一つの方法は、IF関数とISNUMBER関数を併用する方法です。
=IF(ISNUMBER(A2), "", "Not number")
A2が数値の場合、数式は何も返しません(空文字列)。 A2が数値でない場合、数式は前もって「数値ではありません」と表示します。
数字を使った計算をしたい場合は、方程式などの計算式を value_if_true 例えば、以下の式は、数字に 10 を掛け、数字以外の値には "Not number" を出力します。
=IF(ISNUMBER(A2), A2*10, "番号ではない")
範囲が任意の数値を含むかどうかをチェックする
全範囲の数値を調べたい場合は、ISNUMBER関数とSUMPRODUCTを組み合わせて、次のように使います。
sumproduct(--isnumber()です。 レンジ ))>0 SUMPRODUCT(ISNUMBER()。 レンジ )*1)>0となります。例えば、範囲A2:A5に何らかの数値が含まれているかどうかを調べるには、以下のような数式を使用します。
=SUMPRODUCT(--ISNUMBER(A2:A5))>0
=SUMPRODUCT(ISNUMBER(A2:A5)*1)>0
TRUEとFALSEの代わりに「YES」と「NO」を出力したい場合は、上記の数式の「ラッパー」としてIF文を利用します。 例えば、以下のような感じです。
=IF(SUMPRODUCT(--ISNUMBER(A2:A5))>0, "はい", "いいえ")
この式の仕組み
ISNUMBER関数は、指定した範囲(B2:B5)の各セルを評価し、数値の場合はTRUE、それ以外の場合はFALSEを返します。 範囲には4つのセルが含まれているので、配列には4つの要素が含まれます。
{true;false;false;false} です。
乗算演算や二重単項演算(--)は,TRUEとFALSEをそれぞれ1と0に強制的に変換する。
{1;0;0;0}
SUMPRODUCT関数は、配列の要素を足し合わせます。 結果が0より大きければ、その範囲に少なくとも1つの数値があることを意味します。 そこで、最終的にTRUEまたはFALSEの結果を得るために、「>0」を使用するのです。
条件付き書式のISNUMBERで、特定のテキストを含むセルを強調表示する
特定のテキストを含むセルや行全体を強調したい場合は、ISNUMBER SEARCH(大文字小文字を区別しない)またはISNUMBER FIND(大文字小文字を区別する)式に基づく条件付き書式ルールを作成します。
この例では、A列の値に基づいて行をハイライトすることにします。 より正確には、「赤」という文字を含む項目をハイライトすることになります。 その方法は次のとおりです。
- すべてのデータ行(この例ではA2:C6)またはセルを強調表示したい列のみを選択します。
- について ホーム タブで スタイル グループをクリックします。 新ルール > 数式を使用して、どのセルをフォーマットするかを決定する .
- での この式が真である場合の値のフォーマット ボックスに、以下の数式を入力します(列の座標が$記号でロックされていることに注意してください)。
=ISNUMBER(SEARCH("red", $A2))
- をクリックします。 フォーマット ボタンをクリックし、必要な形式を選択します。
- OKを2回クリックします。
Excelの条件付き書式設定の経験が少ない方は、こちらのチュートリアル「数式ベースの条件付き書式ルールを作成する方法」で、スクリーンショット付きの詳しい手順をご覧ください。
その結果、赤色の項目はすべてハイライト表示されます。
条件付き書式規則に色を「ハードコード」する代わりに、あらかじめ定義されたセル、たとえばE2に色を入力し、数式でそのセルを参照します(絶対セル参照$E$2に注意してください)。 さらに、入力セルが空ではないかどうかをチェックする必要があります。
=and(isnumber(search($e$2, $a2)), $e$2"")
その結果、E2での入力に基づき行をハイライトする、より柔軟なルールを得ることができます。
以上、エクセルでISNUMBER関数を使う方法でした。 読んでいただきありがとうございました!来週のブログでお会いできるのを楽しみにしています。
ダウンロード可能なもの
Excel ISNUMBER 計算式の例