ITのえんぴつ

Google Blockly開発者ツールやIT・プログラミングを研究して発信するブログ

Excel練習問題6:1桁目が数値以外の場合は空白に変換して表示する関数

問題

Excelを使用して、1桁目が数値以外の場合は空白に変換して表示する関数を作成してください。以下が入力例です。

<入力>

A1
13
ああ

<出力>

1
13
あ

ヒント

この変換を行うために、次の手順で関数を作成します。

  1. 左から1桁目を取り出す:LEFT(セル, 1)
  2. 1桁目が数値でない場合、空白にする:IFERROR( LEFT(セル, 1) * 1, "")
    LEFT関数の値に対してISNUMBERを使用するとうまく機能しないため、IFERROR*1を組み合わせて数値の判定を行っています。
  3. 左から2桁目を取り出す:MID(セル, 2, 1)
  4. 1桁目の処理結果と2桁目を結合する:=CONCAT(1桁目, 2桁目)

練習用の表

実際にExcelを使用して、1桁目が数値以外の場合は空白に変換して表示する関数を作成してみましょう。

関数の作成方法には、2つの方法があります。

  • 複数の関数に分ける場合は、「作業セル1」〜「作業セル4」をご利用ください。
  • 1つの関数にまとめる場合は、「関数」のセルをご利用ください。

💡 POINT

関数が複雑になる場合は、関数を分割して考えると理解しやすくなります。この方法は作業セルとして知られています。 

入力 期待値 作業セル1 作業セル2 作業セル3 作業セル4 関数 結果
A1 1            
13 13            
ああ            

🔗(閲覧専用)練習用のEXCELはこちら ← ダウンロードできます

答え

それでは、Excelを使用して確認してみましょう。

入力 期待値 作業セル1 作業セル2 作業セル3 作業セル4 関数 結果
A1 1 =LEFT(A2,1) =IFERROR(C2*1, "") =MID(A2,2,1) =CONCAT(D2,E2) =CONCAT(IFERROR(LEFT(A2,1)*1, ""),MID(A2,2,1)) =IF(B2=G2, "OK", "NG")
13 13 =LEFT(A3,1) =IFERROR(C3*1, "") =MID(A3,2,1) =CONCAT(D3,E3) =CONCAT(IFERROR(LEFT(A3,1)*1, ""),MID(A3,2,1)) =IF(B3=G3, "OK", "NG")
ああ =LEFT(A4,1) =IFERROR(C4*1, "") =MID(A4,2,1) =CONCAT(D4,E4) =CONCAT(IFERROR(LEFT(A4,1)*1, ""),MID(A4,2,1)) =IF(B4=G4, "OK", "NG")

実際のExcelでの具体的な数値は、以下の通りです。

入力 期待値 作業セル1 作業セル2 作業セル3 作業セル4 関数 結果
A1 1 A   1 1 1 OK
13 13 1 1 3 13 13 OK
ああ   OK