このページには広告が含まれる場合があります。
前回に引き続き、いつの間にかシリーズ化しているExcel入社テストの実践編第3回目です。
前回までは以下からどうぞ。
さて、今回の問題は文字列を操作する関数のようです。
TEXT関数による文字列操作
問題のファイルを真似て作ってみました。必要な方はこちらからダウンロードしてください。
ここでは、「TEXT」関数を使って、どのように変換するかをそれぞれのパターンに応じて指定します。
「TEXT(文字列,”表示形式”)」ですね。
「表示形式」に指定するのは、「ホーム」タブの「セルの書式設定」の「表示形式」タブの「分類」で指定する文字列と同じになります。
TEXT関数を実際に使ってみましょう。
例えば、最初の問題の「0埋め8桁」は「”00000000″」と2番目の引数に0の8桁を入力します。
0の8桁を認識してくれない場合は、ダブルクォーテーションも忘れずに入力してみましょう。
3番目の問題は、パーセンテージを求める問題ですが、特に比較する数値が見当たらない上、「割り算を使わない」と指定されているので、「基データをそのまま小数点第2位まで表示する%への変換」と考えて良いと思います。
この「TEXT」関数と似た動作として、「セルの書式設定」があります。
「表示形式」タブの「分類」から「ユーザー定義」を選んで自分で表示形式を入力します。
例えば、0の8桁なら、ユーザー定義の「種類」のテキスト入力枠に「00000000」と入力するのです。
さて、この「TEXT」関数を使うやり方と「セルの書式設定」で指定するやり方では、返される結果に違いが生じます。
それは何だか分かりますか?
実は「TEXT」関数で返される結果は、「値」が返されます。
つまり、最初の問題であれば、関数の結果を表示する「セルD6」が持つ値は「00000001」になります。
対して「セルの書式設定」は、「元々の値の画面上での見え方を変えているだけ」となります。
基データの「セルB6」を選択して、一連のセルの書式設定を行った場合、「セルB6」には「00000001」と表示されるかもしれませんが、「セルB6」の本当の値は「1」のままなのです。
実務だと以下のような流れがあるかもしれません。
元々「1」とか「2」などと入力されているデータを「00000001」や「00000002」というデータに改めて登録し直したい、という場合は、
この問題のようにまず「TEXT関数」で「セルD6」から「セルD26」に「00000001」の形の値を求めておいて、セル全部を「コピー」します。
そして、「セルB6」を選択して、「貼り付け」から「形式を選択して貼り付け」で「値」を選択すれば、一瞬でセルが生まれ変わります(笑)
まずは、TEXT関数で値を取得し、全部のセルをコピーします。
「セルB6」を選択し、「貼り付け」から「形式を選択して貼り付け」で「値」を選びます。
「セルB26」までオートフィルでコピーします。
B列の値がきちんと「00000001」と変更されました。
D列は、変換するための関数列なので、ここまできたら削除してしまっても問題ありません。
実務であれば、関数列は削除することになると思います。
ここだけの話・・他の関数でやってみる
ここからは、オマケです。
1番目と2番目だけ別の文字列関数を使ってやってみます。
使う関数は「RIGHT」、「YEAR」、「MONTH」関数です。
■1番目
「RIGHT(100000000+B6),8」
■2番目
「YEAR(F6)&RIGHT(100+MONTH(F6),2)」
「RIGHT」関数は、指定した文字列の右側から指定数分を抜き取る関数です。
そして、ここがミソなのですが、「文字列」を指定する最初の引数に「数字の足し算」を入れると
「足し算した結果を文字列として認識」
してくれるのです。
頭に必要な桁数の0を取るためにこのような足し算をさせて、必要な数の文字列を取れば同じように処理できます。
文字列を操作する関数は便利な関数が多いので、少しでも多く使えるようになると、実務が楽になるかもしれませんね。
長くなったので、続きはまた次回