トップ > スキル : アプリケーション > Excel(エクセル) > 基礎編(関数:黄金の組み合わせ術)

Excel

関数:黄金の組み合わせ術

時間を操る組み合わせ術

日付と同様に、さまざまな表のデータとして扱うものに「時間」があります。時間に関する関数も日付と合わせて覚えておくと便利です。

◆ 時間関数

時間に関する関数には、HOUR、MINUTE、SECOND関数があります。また、これら3つを使って、「時」「分」「秒」を別々に取り出して、TIME関数で時刻データに戻す方法があります。

HOUR =HOUR(シリアル値) 時刻データ(シリアル値)から「時」だけを取り出す
MINUTE =MINUTE(シリアル値) 時刻データ(シリアル値)から「分」だけを取り出す
SECOND =SECOND(シリアル値) 時刻データ(シリアル値)から「秒」だけを取り出す
TIME =TIME(時、分、秒) 数値で指定した「時」「分」「秒」に対応する時刻データ(シリアル値)を作る

時間の分単位を端数処理する(Sheet:時間)

「駅伝マラソンの所要時間」の計測値の分単位を端数処理してみましょう。
分単位を切り捨てする場合と切り上げする場合の2つを求めます。E列とF列を『作業セル』として利用し、まず次の数式をセル【E4】に入力しましょう。

=TIME(HOUR(B4),MINUTE(B4),0)

次にセル【F4】に次の数式を入力しましょう。

=TIME(HOUR(B4),MINUTE(B4)+1,0)

秒単位を切り捨てるには、時と分はそのままで秒だけを「0」にします。切り上げるには、分に「1」を足して秒を0にします。

セル【C4】には、計測した時刻の30秒未満は切り捨て、30秒以上は切り上げて「分単位」を処理します。
IF関数を使って、次の計算式を入力しましょう。

=IF(SECOND(B4)<30,E4,F4)

※この表はあらかじめ時刻表示がされるように設定されています。

Point:

時間の関数を作成すると、結果は「時:分:秒」という表示形式になりません。「セルの書式設定」ダイアログボックス「表示形式」タブで「分類」は「時刻」を選択し、「種類」を「13:30:55」を設定します。(下図参照)

文字列を操る組み合わせ術

Excelでは、数値を計算する以外にも、文字列を操作できる関数も用意されています。文字列の指定した文字だけを別のセルに抜き出したり、文字列の特定の部分を修正した結果をセルに表示させるなど、さまざまな文字列操作ができます。

◆ 文字列関数

文字列を切り出し分割に使う代表的な関数に、LEFT、MID、RIGHT関数があります。

LEFT =LEFT(文字列、文字数) 文字列の左端から、文字数で指定した数の文字を取り出す
MID =MID(文字列、開始位置、文字数) 文字列内の指定した位置から、文字数で指定した数の文字を取り出す
RIGHT =RIGHT(文字列、文字数) 文字列の右端から、文字数で指定した数の文字を取り出す

住所欄から「東京都」と「区名以降」を分割する(Sheet:文字列操作)

住所から「東京都」だけを取り出すには、住所の左端から「3」文字を取り出すことになります。また、区名以降は住所の「4」文字目以降を取り出すことになります。

セル【B2】に次の数式を入力し、数式をセル【B6】までコピーしましょう。

=LEFT(A2,3)

次に、セル【C2】に次の数式を入力し、「区名以降」の文字列を取り出し【C6】までコピーしましょう。
この場合、区名以降の文字数はそれぞれ異なりますので、末尾まで表示されるように多めの数値を入れておきます。ここでは、「30」とします。

=MID(A2,4,30)

別のセルに分割された住所を1つのセルにまとめる( Sheet:文字列操作(2) )

別々のセルに分割されている住所を1つのデータとしてまとめる場合は、「&」を使います。「&」は、文字列を結合する演算子です。
セル【C2】には次の数式を入力して、セル【A2】と【B2】の文字列を結合しましょう。

=A2&B2

Point:

&(アンバサンド):別々のセルの内容を結合して表示する場合に利用します。また、直接文字を追加することもできます。ただし、文字列は必ず "(ダブルクォーテーション)で囲みます。

例) =A1&"様"

文字数の区切りが異なる場合( Sheet:文字列操作(3) )

県名で区切る場合、「県」の左側に来る文字数は異なります。このような場合、県の左側に何文字あるかを調べる必要があります。

文字の位置を調べる関数を使いましょう。

◆ ある文字列の中で指定した文字の位置を調べる関数(FIND)

「県」という文字が何文字目にあるかを調べて、それを区切り位置と指定します。FIND関数を利用します。

=FIND(検索文字列,対象,開始位置)

第2引数「対象」で指定した文字列内で「検索文字列」を探し、先頭から何文字目かを調べます。「開始位置」を数値で指定すると、その位置以降の文字だけを検索します。この「開始位置」は必要でなければ省略できます。

B列に「県」の文字が左から何番目にあるかを求める『作業セル』を用意しています。セル【B2】に次の数式を入力し数式をセル【B6】までコピーしましょう。

=FIND("県",A2)

Point:

「検索文字列」の「県」の文字は「“」で囲みます。「対象」の引数は、取り出したい文字列があるセルを指定します。

次に【C2】に次の数式を入力し、数式をセル【C6】までコピーしましょう。

=LEFT(A2,B2)

次にセル【D2】に次の数式を入力し、数式をセル【D6】までコピーしましょう。

=MID(A2,B2+1,30)

文字列の区切りが異なる場合2( Sheet:文字列操作(4) )

全国の住所から都道府県を取り出すことを考えてみると、境目となる「都」「道」「府」「県」の4種類あります。FIND関数では、このような複数の「検索文字列」を同時に指定することはできません。
実際、都道府県名の文字数を調べて見ると、ほとんどが3文字であり、例外は4文字の「神奈川県」「和歌山県」「鹿児島県」の3県だけです。よって、住所の4文字目が「県」なら、神奈川県、和歌山県、鹿児島県のいずれかとなり、それ以外の都道府県はすべて3文字だけ取り出せばよいことになります。

表の「住所」から都道府県と市名以降の文字を分割してみましょう。
セル【B2】に次の数式を入力し、数式をセル【B6】までコピーしましょう。

=IF(MID(A2,4,1)="県",4,3)

IF関数を用います。MID関数の引数「開始位置」を「4」、「文字数」を「1」と指定すると、4文字目の1字だけを切り出せます。4文字目の文字が「県」であれば、「4」と表示し、違えば「3」と表示する数式となります。

次にセル【C2】に次の数式を入力し、数式をセル【C6】までコピーしましょう。

=LEFT(A2,B2)

同様に、セル【D2】に次の数式を入力し、数式をセル【D6】までコピーしましょう。

=MID(A2,B2+1,30)

▶ その他の文字列の操作に使われる関数

ASC =ASC(文字列) 文字列内の全角文字を半角に変換する
JIS =JIS(文字列) 文字列内の半角文字を全角に変換する
UPPER =UPPER(文字列) 文字列内の小文字を大文字に変換する
LOWER =LEFT(文字列、文字数) 文字列内の大文字を小文字に変換する
PROPER =PROPER(文字列) 文字列内の頭文字だけを大文字に変換する
PHONETIC =PHONETIC(範囲) 範囲内の文字のフリガナを取り出す

文字列を置換する( Sheet:文字列操作(5) )

文字列のある特定の文字の表記を修正しましょう。表の「商品型番」は「NO~」と表示されています。
この「NO」を「ID」と修正します。

◆ 文字列の一部を置換する(SUBSTITUTE)

この関数は、文字列の一部を置換します。文字列に含まれる置換対象の文字のうち、何番目だけを置換するのかを指定もできます。

=SUBSTITUTE(文字列,検索文字列,置換文字列,置換対象)

第1引数「文字列」内で「検索文字列」を探し、「置換文字列」で置き換えます。該当する文字が複数含まれている場合、何番目を置き換えるかを「置換対象」に数値で指定することもできますが、必要なければ省略可能です。

A列とB列の間に置換された商品型番を表示するために1つ列を挿入しましょう。
B列を選択して、右クリックし一覧から[挿入]をクリックします。

列が挿入されます。
セル【B2】に「商品型番」と入力します。

セル【B3】に次の数式を入力し、数式をセル【B7】までコピーしましょう。

=SUBSTITUTE(A3,"NO","ID")

「ID」の右側に半角の空白を入れて数字との距離を少しとります。

商品型番の「NO」が「ID」に修正されます。

また、次のような数式をセル【B3】に入力すると、3番目の「0」を「1」に置換することができます。

=SUBSTITUTE(A3,0,1,3)