2−6 文字列操作

ここでは、文字列に関係する関数や操作、それに数値と文字の取り扱い方法について解説します。ある値を表示したとき、単位も同じセル内に表示させたいな、と考えたことはないでしょうか。このような処理は文字列操作を理解することで可能になります。

 

 

■数字と文字の組み合わせ

前項で表示形式を使った数値に単位を付ける方法を解説しましたが、この方法だと値の後部(前部でも可能)にしか付加できません。たとえば、図Aのように使用年数の年と月を図Bのようにする場合には表示形式による設定では実現できません。図Bのようにするには、文字列の結合操作が必要になります。

 

図A

 EX4C188Z

 

図B

 EX4C187Z

 

 

1.関数と文字の結合

 数値に単位を付けて入力すると文字として入力されてしまう、ということは既に承知していることと思います。以下の図(セルG6)のように入力しているものと仮定すると、これは数値と文字の結合というより、単なる文字列入力ですね。入力する人が1200は数値で、gが文字だな、と勝手に思い込んでいるだけです。

線吹き出し 3:  「1200 g」を入力

 


 EX4C189Z

 

これから操作することは、最初に図Bで示したように年数と文字「年」を結合して「1年」のようにすることです。期間の年数はDATEDIF関数を使って求めます(この関数はP___で解説しています)。求めた結果に「年」を付け足すつもりで、以下のようにしても正しくありません。

 

        =DATEDIF(E7,NOW(),”Y”)年

 

関数に文字列を付け足す場合、文字列の結合記号(結合演算子)&と文字列自体をダブルクォーテイションで囲むことが必要です。このことを施すと以下のようになります。

 

        =DATEDIF(E7,NOW(),”Y”)&”年”

 

              1             年

 

たとえば、期間の年数1が求められたとすると、関数の返す「1」と「年」を結合して「1年」が表示されます。次の操作で試してみましょう。期間として製造日(セルE7)と現在の日付(NOW関数)で求めるのですが、期間のシュミレーション行えるように現在の日付を入力するセル(ここではセルG3を使う)を決めて、そのセルを期間の終了日に利用することにします。数式は次のように書き改められます。

 

        =DATEDIF(E7,$G$3,”Y”)&”年”

 

r>操作

@期間の終了日「H11.4.29」をセルG3に入力する

◆日付の入力は西暦表示が自動設定される。登録年月日との対応を分かりやすくするために表示形式を日付のH9.3.4に設定する

 

 EX4C181Z

 

r>操作

@セルI6に数式を入力する

[A]結果が表示される

 

結果は文字列であることを示す左揃えで表示されます。ただし、文字配置を変更している場合は、その位置に表示されます。関数の返す値は数値ですが、文字「年」を結合したため文字列として扱われます。

 

線吹き出し 3: [A]
線吹き出し 3: @

 


 

EX4C182Z                   EX4C183Z

 

 

●月数を付け足す

目的は何年何ヶ月を表示することなので、残りの月数表示を付け足しましょう。月数は次のように求められます。

        =DATEDIF(H6,$J$3,”YM”)&”ヶ月”

 

これを先の年数を求める数式に結合すれば以下のようになります。DATEDIF関数は数値を出力(返す)しますが、文字を結合することにより、数値は数字として扱われることになるので、それぞれの結合は文字結合記号の&で繋ぎます。

 

        =DATEDIF(H6,$J$3,"Y")&""&DATEDIF(H6,$J$3,"YM")&"ヶ月"

 

r>操作

@セルI6の数式を書き替える

[A]結果が表示される

 

この結果は4つの文字列を結合したデータになります。このように接続記号「&」を使うと複数のデータを1に結合することができます。データの中に数値が入っていれば、その数値は自動的に文字(数字)として取り扱われます。後は、この数式を下へ続くセルにドラッグアンドドロップ操作で複写すれば、冒頭の図Bになります。図Bでは文字配置を右揃えに設定しています。

 

 EX4C184Z

 

 EX4C185Z

 

【操作のまとめ】

●関数の出力と文字列を結合するときは接続記号「&」を使う

●関数が数値を出力する場合、自動的に文字として取り扱われる

 

 EX4C186Z

=====・コラム・コラム・コラム・コラム・コラム・コラム・コラム・=====

゜゜数値に単位を付ける゜゜

セルに入力した数値に単位を付け足す方法の1つに表示形式を変更する方法があります。関数を使って実現するには複雑な数式になってしまうようなとき、表示形式で処理すれば簡単に実現できる場合もある、ということを知っておいてください。

 

●数値に影響しない付け方

図のような一覧表を作成しました。数量の値に重さの単位「g」を付け足すにはどのようにしますか。[A]のように項目名に単位を付け足す、あるいは[B]のように単位の列を作って単位を入力する、どちらの方法を使っても数値を入力しているセルには触れていないので影響するようなことはありません。

 

図 車両管理の一覧表

 

 

 

 

 

 

 

 

EX4C186Z  下EX4C196Z

 

==============================================

 

 


●同じセル内で表示する

値と単位を同じセル内に入力すれば、値と単位を1つのセル内で表示することはできますが、数値は数字として、つまり、数学的な計算のできる値ではなく文字として扱われるようになってしまいます。

 

r>操作

@セルG6に入力している値「1200」を「1200 g」に書き替える

[A]文字として表示される

 

文字として入力された印として左揃えで表示され、3桁ごとのカンマ付き数値表示が施されなくなっています。ただし文字配置は、[左揃え][中央揃え][右揃え]を設定していない場合です。設定していると設定位置に表示されます。

 

 EX4C194Z

 

 EX4C195Z

 

このように入力すると、セルG6は数値の対象にできない、ということになります。このように、数値として入力した値に単位などの文字を付け加えると、セルに入力している内容が文字になってしまいます。以下に示すように先頭が数値で単位の部分だけが文字、といった都合のいい状態にはなりません。

 

                1200 g

          ↑  ↑

  数値であってほしい  文字列

 

●表示形式で単位を付け足す

1つのセル内で数値に単位を付け足して入力すると文字になってしまいます。値を計算の対象にしたい場合は、入力内容に単位を付けるのではなく、表示形式として単位表示を設定します。設定する表示形式は以下のようになります。正数部分に文字列「 g」を付け加えています。

 

#,##0” g”;[赤]−#,##0

      ↑

     付加表示する文字列

 

正数部分に付け足しているので、セルに入力された値が正数のときだけ文字列「 g」が付加表示されます。次に操作方法を載せておくので参考にしてください。

 

r>操作

@表示形式を設定するセルを右クリックしてショートカットメニューを表示する

A[セルの書式設定]を選択する

[A]セルの書式設定ダイアログボックスが開く

B[表示形式]タブをクリックする

C分類の[ユーザー定義]を選択する

D種類の[#,##0;[赤]−#,##0]を選択する

E表示形式を[#,##0” g”;[赤]−#,##0]に書き替える

F[OK]をクリックする

[B]単位付きで表示される

 

前のように文字に変わることなく、数値として値と単位が表示されています。単位が付け足されて表示されていますが、このセルG7を参照すれば、数値である1200が返されます。gは入力内容ではないので返されません。

 

 EX4C190Z

 


 

EX4C191Z                 EX4C193Z

 

 EX4C192Z

 

【操作のまとめ】

●数値に単位などを付け足すときは、セルの表示形式で設定する

●数値に単位などを付け足してセルに入力すると文字データになる

●表示形式の複写はツールバー[書式のコピー/張り付け]ボタンを使う

■数値を数字に変換したときのゼロ表示

さまざまな場面でゼロ(0)表示を消す処理を施す場合があります。関数が出力する値に単位を付けて表示するときでも、ゼロ表示を消したくなる場合もあることでしょう。文字列の接続記号「&」を使って処理するとき、関数が出力(返す)するゼロを空白に変える方法を紹介します。

 

 

1.使用例

図Aのような一覧表があります。積載量を1000g以下で四捨五入した値でH列「5t車」のように表示する方法を考えてみましょう。このとき、最下行の空白欄のように値のないとき、「0t車」ではなく「t車」だけを表示するように工夫します。

 

[A]データの未入力欄は「t車」で表示する

 

図A

 EX4C216Z

 

2.値の四捨五入

まず、値(積載量)を1000g以下ので四捨五入することを考えてみましょう。四捨五入はROUND関数を使って次のようになりますね。(ROUND関数の詳細はP___を参考)

 

        =ROUND(D7,−3)

 

1000kg以下で四捨五入するので、正数の3桁目、つまり−3の位置で四捨五入するので桁数指定は−3にしています。これを実際に試してみると、次のような結果になってしまいます。

 

r>操作

@セルE7に数式を入力する

[A]結果が表示される

線吹き出し 3: [A]
線吹き出し 3: @

 


  

 EX4C197Z                  EX4C198Z

 

表示された結果に「g」が付くのは、セルD7を参照したために自動的にセルD7に設定されている表示形式がセルE7に複写されたためです。表示形式を通常に戻すためには、セルポインタをセルE7に合わせてツールバー[桁区切りスタイル]ボタンをクリックします。この方法が最も簡単な方法です。

 

r>操作

@セルポインタをE7に合わせる

A[桁区切りスタイル]ボタンをクリックする

[A]通常の桁区切りスタイルで表示される

線吹き出し 3: @ 線吹き出し 3: A

 

 


 EX4C199Z

 

たしかに、1000g以下で四捨五入された値が表示されましたが、目的は単位をキログラム(Kg)に変換した値で表示することなので、これではダメですね。値を1/1000にしなければなりません。方法としては、四捨五入する前に1/1000にする、四捨五入した後で1/1000にする、のどちらでも可能ですが、四捨五入の方法が次のように少し変わります。

 

四捨五入する前に1/1000にする   =ROUND(D7/1000,

四捨五入した後で1/1000にする   =ROUND(D7,−3)/1000

 

桁数指定に0,−3の違いが出ます。結果は同じなので、どちらでもかまわないのですが、ここでは前者の方法を使って次のようにします。

 

        =ROUND(D7/1000,0)

 

r>操作

@セルE7にセルポインタを合わせ[f・2]キーを押して編集状態にする

A数式を書き替えて[Enter]キーを押す

[A]結果が表示される

線吹き出し 3: A
線吹き出し 3: [A]

 

 


  

EX4C200Z                      EX4C201Z

 

 

3.単位を付け足す

これまでに行った関数に文字列を結合する方法で単位「Kg」の表示を付け足してみましょう。入力内容は以下のようになります。セルH6に入力している数式を以下の数式に書き替えて、下へ続くセルに複写します。

 

        =ROUND(D7/1000,0)&”Kg”

 

r>操作

@セルH6の数式を書き替える(入力する)

[A]結果が表示される

 

  

EX4C202Z                   EX4C203Z

 

●数式を複写する

 セルE7に入力した数式を下へ続くセルにドラッグアンドドロップ操作で複写します。その前に、セルE7の文字割付を右揃えに設定しておきます。

 

r>操作

@セルE7にセルポインタを合わせる

A[右揃え]ボタンをクリックする

[A]右詰めで表示される

BセルE7の右下角をドラッグアンドドロップで複写範囲を指定する

[B]ドラッグ範囲に数式が複写される

 

最後の行にはデータが未入力なので四捨五入の計算結果として0が求められ、「0Kg」が表示されています。次にこのゼロ表示を消してみます。

 

 

 EX4C204Z

 

 

 

 

 

 


 EX4C205Z  EX4C206Z

 

※罫線も同時に複写れるので複写の結果、線種が違う場合は罫線を引き直します。

 

 

4.ゼロ表示を消す

計算結果などのゼロ(0)表示が目障りな場合は何かの方法で消すことになります。セルに表示される0を消すには、表示形式で消す方法と処理内容を選択するIF関数などで消す方法があります。どちらの方法で行ってもいいのですが、双方の欠点を上げると次のようになります。

 表示形式でゼロ(0)表示を消す欠点は、表示形式を設定しなければならない、ということです。当然の操作なので欠点ではないように思えますが、セルに対して、数式の入力と表示形式の設定の2つの操作を行うことになる、という操作が多くなることが欠点です。数式を入力して表示形式の設定を忘れることもあることでしょう。IF関数を使った処理選択の数式を使うと、数式自体が長くなる、という欠点があります。どちらを使うのかは、その場の状況で判断しなければなりませんが、IF関数を使った数式がそれほど長くない(入力操作が苦にならない程度)なら数式だけでゼロ(0)表示を消す方がいいでしょう。

 次に数式を使って0表示を消す方法を2つ紹介します。

 

●IF関数を使った方法

対象とするセルの入力状態を検査して、未入力なら「t車」、入力されていれば(未入力でなければ)計算結果を表示「5t車」するようにします。IF関数については他のところでも解説していますが、次のように2つの処理を使い分ける働きをします。

 

        =IF(条件式,条件成立時の処理,条件不成立時の処理)

 

条件式の位置に、対象とするセルが空なのかを検査する条件式を入力します。セルH16に入力する数式を例にすれば、入力状態を検査するセルはG16なので、G16=””になります。ダブルクォーテイションを2つ続けると空白を意味するので、セルG16が空白、という意味の条件式です。

 

        =IF(G16=””,条件成立時の処理,条件不成立時の処理)

 

条件が成立したとき、つまりセルG16が空白のとき「条件成立時の処理」に処理内容を記述します。空白のときは、「t車」を表示するので、ダブルクォーテイションで囲んだ文字列「t車」を入力します。ダブルクォーテイションで囲んだ文字列を入力すれば、その文字列をセルに表示する働きをします。

 

        =IF(G16=””,”t車”,条件不成立時の処理)

 

条件不成立時の処理は、値を四捨五入して「t車」を付けることなので、先の数式をそのまま入力して以下のようになります。

 

        =IF(G16=””,”t車”,ROUND(G6/1000,0)&”t車”)

 

では、この数式をセルH16に入力してみましょう。セルG16にはデータが入力されていないので、「Kg」だけが表示されるようになります。

 

r>操作

@セルH16の数式を書き替える

[A]結果が表示される

 

 EX4C209Z

 EX4C210Z

 

 

●表示形式を関数内で使う

表示形式に使う数値を表す記号「#」を使うと、値が空白のとき結果を出力しない、という特徴があります。ここでの処理は、関数に文字列を結合する、という方法で行っているので、セルの表示形式を変更することはできません。そこで、表示形式の指定できる関数を使って「#」記号を利用してみることにしましょう。

 使用する関数は、TEXT関数です。この関数は、数値を文字(数字)に変換する働きをします。書き方は次のようになります。(TEXT関数はP___で解説しているので参考にしてください)

 

        =TEXT(値,表示形式)

          ↑  ↑

     変換する数値  変換後の表示形式

 

変換する数値のところに、先の四捨五入する関数を入力して、表示形式に”#”を入力して以下のようにします。

 

        =TEXT(ROUND(G6/1000,0),”#”)

 

変換後の表示形式にはセルの書式設定ダイアログボックスの[表示形式]タブで一覧表示される「ユーザー定義」に登録されている、あるいは登録できる表示形式を設定することができます。以上の関数に単位の文字列「t車」を付け足すと以下のようになります。

 

        =TEXT(ROUND(G6/1000,0),”#”)&” Kg”

 

TEXT関数は値を文字に変換するとき、値を四捨五入するので上記のようにROUND関数を併用するのは無駄があります。TEXT関数が四捨五入する桁位置は、指定する表示形式によります。上記のように#記号だけを指定した場合は、小数点以下が四捨五入されます。基本的には、表示形式で指定する桁数以下、たとえば小数点以下2桁を表示する「#.00」を指定すれば小数点以下3桁目で四捨五入されます。ここでの場合、ROUND関数を省いて次のようにしても同じ結果が得られます。

 

        =TEXT(G6/1000,”#”)&” Kg”

 

次の操作では、ROUND関数を省いた数式を入力していますが、ROUND関数を併用した数式も入力してみてください。

 

r>操作

@セルH16の数式を書き替える

[A]結果が求められる

 

先のIF関数を使った方法よりも、短い数式で同じ結果が求められました。後は、この数式を上に続くセルにドラッグアンドドロップで複写して完成させます。

 

    

EX4C211Z                     EX4C212Z

 

以上2つの方法で処理しましたが、いかがでしょうか。IF関数を使う、TEXT関数で”#”を使う、どちらの方法で処理しても間違いではありません。結果が正しく求められればいいのです。2つの違いは、入力内容(入力する文字数)に大きな違いがあるだけです。関数に少し詳しくなればIF関数で処理する方法すぐに思いつくことでしょう。そこで満足せずに、もっと効率のいい方法はないか、を考えるようにしてください。

 

ポイント

TEXT関数は値を四捨五入しますが、切り捨てや切り上げを使いたい場合、目的の関数を使って値を入力すれば可能になります。

例 切り上げ

        TEXT(ROUNDUP(100.5,0),”#,##”)

 

この方法は、TEXT関数が四捨五入を止めたわけではなく、切り上げした値を四捨五入しても同じ値が得られる、ということを利用しているだけなので、切り上げる桁位置と四捨五入の桁位置を同じにしておくことが必要です。

 

【操作のまとめ】

●セルに直接、表示形式を設定できないときは、TEXT関数を応用する

●TEXT関数は数値を四捨五入する、四捨五入の桁位置は指定する表示形式の桁数に依存する

 


■ふりがな

セルに漢字(全角文字)を入力するとき、ひらがなの読みを入力して変換します。たとえば、「北村」を入力するときひらがなで「きたむら」を入力して変換して「北村」にしますね。この変換する前の読みはセルに記録されているので、必要なときに抜き出すことができます。

 

 

1.フリガナの抽出

セルに記録されているフリガナは、PHONETIC関数で抜き出すことができます。

 

●PHONETIC関数

セルに記録されているふりがなの文字列を取り出します。

 

書式     PHONETIC(セル番地)

 

セル番地 ふりがなを抽出するセル番地を指定する

 

セル番地に複数のセルを指定した場合は、セル範囲の左上隅のセルが対象になる。セル範囲に隣接しない複数のセル範囲を指定した場合は、エラーが発生します。ふりがなは全角のカタカナで抽出されます。

 

使用例

次の例は、名簿の一覧表を作成するときにフリガナの入力を省くために、PHONETIC関数を使ってフリガナを表示しています。数式は以下のようになります。

 

        =PHONETIC(C3)

               ↑

              フリガナを抽出するセル番地

r>操作

@セルD3に数式を入力する

[A]フリガナが抽出される

A数式を下へ続くセルに複写する

 

 

EX4B609Z                  EX4B610Z

 

 

EX4B611Z

 

抽出されるフリガナは漢字を決定したときに入力していた読みになります。たとえば、「恵三」を「けいぞう」ではなく、「けい」と「さん」で漢字に変換している場合、フリガナは「けいさん」が抽出されます。抽出するフリガナは全角文字ですが、ASC関数と組み合わせて半角文字のフリガナに変換することができます。以下に数式と変更後の結果を載せておくので参考にしてください。なお、ASC関数はP___を参考にしてください。

 

{入力している数式}

セルD3 =ASC(PHONETIC(C3))

セルD4 =ASC(PHONETIC(C4))

セルD5 =ASC(PHONETIC(C5))

セルD6 =ASC(PHONETIC(C6))

セルD7 =ASC(PHONETIC(C7))

セルD8 =ASC(PHONETIC(C8))

セルD9 =ASC(PHONETIC(C9))

セルD10 =ASC(PHONETIC(C10))

 

 EX4B612Z

 

 

【まとめ】

●セルに全角文字を変換入力するときに入力した読みはセルに記録されているのでPHONETIC関数で抜き出すことができる

●PHONETIC関数は全角カタカナでフリガナを返す。

●PHONETIC関数は半角文字が入力されていても、全角に変換した文字が返される

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


=====・コラム・コラム・コラム・コラム・コラム・コラム・コラム・=====

゜゜数値に単位を付ける゜゜

セルに入力した数値に単位を付け足す方法の1つに表示形式を変更する方法があります。関数を使って実現するには複雑な数式になってしまうようなとき、表示形式で処理すれば簡単に実現できる場合もある、ということを知っておいてください。

 

●数値に影響しない付け方

図のような車両管理の一覧表を作成しました。積載量の値に重さの単位「kg」を付け足すにはどのようにしますか。[A]のように項目名に単位を付け足しす、あるいは[B]のように単位の列を作って単位を入力する、どちらの方法を使っても数値を入力しているセルには触れていないので影響するようなことはありません。

 

図 車両管理の一覧表

 

 

 

 

 

 

 

 

EX4B328Z  下EX4B327Z

 

 

●同じセル内で表示する

値と単位を同じセル内に入力すれば、値と単位を1つのセル内で表示することはできますが、数値は数字として、つまり、数学的な計算のできる値ではなく文字として扱われるようになってしまいます。

 

r>操作

@セルG6に入力している値「4880」を「4880 kg」に書き替える

[A]文字として表示される

 

文字として入力された印として左揃えで表示され、3桁ごとのカンマ付き数値表示が施されなくなっています。ただし文字配置は、[左揃え][中央揃え][右揃え]を設定していない場合です。設定していると設定位置に表示されます。

 

 

 EX4B330Z

 

 EX4B331Z

 

このように入力すると、セルG6は数値の対象にできない、ということになります。このように、数値として入力した値に単位などの文字を付け加えると、セルに入力している内容が文字になってしまいます。以下に示すように先頭が数値で単位の部分だけが文字、といった都合のいい状態にはなりません。

 

                4880 kg

          ↑  ↑

  数値であってほしい  文字列

 

 

●表示形式で単位を付け足す

1つのセル内で数値に単位を付け足して入力すると文字になってしまいます。値を計算の対象にしたい場合は、入力内容に単位を付けるのではなく、表示形式として単位表示を設定します。設定する表示形式は以下のようになります。正数部分に文字列「 kg」を付け加えています。

 

#,##0” kg”;[赤]−#,##0

      ↑

     付加表示する文字列

 

正数部分に付け足しているので、セルに入力された値が正数のときだけ文字列「 kg」が付加表示されます。次に操作方法を載せておくので参考にしてください。

 

r>操作

@表示形式を設定するセルを右クリックしてショートカットメニューを表示する

A[セルの書式設定]を選択する

[A]セルの書式設定ダイアログボックスが開く

B[表示形式]タブをクリックする

C分類の[ユーザー定義]を選択する

D種類の[#,##0;[赤]−#,##0]を選択する

E表示形式を[#,##0” kg”;[赤]−#,##0]に書き替える

F[OK]をクリックする

[B]単位付きで表示される

 

前のように文字に変わることなく、数値として値と単位が表示されています。単位が付け足されて表示されていますが、このセルG7を参照すれば、数値である10650が返されます。kgは入力内容ではないので返されません。

 

 EX4B613Z

 


 

EX4B335Z                 EX4B336Z

 

 EX4B614Z

 

【操作のまとめ】

●数値に単位などを付け足すときは、セルの表示形式で設定する

●数値に単位などを付け足してセルに入力すると文字データになる

●表示形式の複写はツールバー[書式のコピー/張り付け]ボタンを使う

=====・コラム・コラム・コラム・コラム・コラム・コラム・コラム・=====

 

 

 


 

 

作成手順

 さて、どこから書き始めればいいのでしょう。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

線吹き出し 3: F線吹き出し 3: E線吹き出し 3: D線吹き出し 3: C線吹き出し 3: [A]線吹き出し 3: A線吹き出し 3: @線吹き出し 3: [B]線吹き出し 3: [B]線吹き出し 3: @線吹き出し 3: [A]線吹き出し 3: F線吹き出し 3: E線吹き出し 3: [A]線吹き出し 3: D線吹き出し 3: A線吹き出し 3: C線吹き出し 3: @線吹き出し 3: @線吹き出し 3: [A]線吹き出し 3: A線吹き出し 3: [A]線吹き出し 3: [A]線吹き出し 3: [B]線吹き出し 3: [A]線吹き出し 3: [A]線吹き出し 3: [A]線吹き出し 3: @線吹き出し 3: [A]線吹き出し 3: A線吹き出し 3: @線吹き出し 3: [B]線吹き出し 3: [A]線吹き出し 3: [B]線吹き出し 3: @線吹き出し 3: @線吹き出し 3: @線吹き出し 3: @線吹き出し 3: [B]線吹き出し 3: @線吹き出し 3: [A]線吹き出し 3: @線吹き出し 3: [A]