Y 文字列抽出・変換
関数名 |
関 数 の 機 能 |
文字列抽出 | |
LEFT | 文字列の先頭(左端)から指定された数の文字を抽出 |
LEFTB | 文字列の先頭(左端)から指定されたバイト数の文字を抽出 |
MID | 文字列の任意の位置から指定された数の文字を抽出 |
MIDB | 文字列の任意の位置から指定されたバイト数の文字を抽出 |
RIGHT | 文字列の末尾(右端)から指定された数の文字を抽出 |
RIGHTB | 文字列の末尾(右端)から指定されたバイト数の文字を抽出 |
LEN | 文字列に含まれる文字数を算出 |
LENB | 文字列に含まれる文字数をバイト数で算出 |
PHONETIC | ふりがなの文字列を取り出す |
CHOOSE | 値のリストから指定したものを抽出 |
文字列変換 | |
TEXT | 数値を書式設定した文字列に変換 |
VALUE | 文字列として入力されている数字を数値に変換 |
UPPER | 文字列に含まれる英字をすべて大文字に変換 |
LOWER | 文字列に含まれる英字をすべて小文字に変換 |
JIS | 文字列内の半角の英数カナ文字を、全角文字に変換 |
ASC | 文字列内の全角の英数カナ文字を、半角文字に変換 |
SUBSTITUTE | 文字列中の指定された文字を別の文字に置換 |
REPLACE | 文字列中の指定された数の文字を別の文字に置換 |
REPLACEB | 文字列中の指定されたバイト数の文字を別の文字に置換 |
CONCATENATE | 複数の文字列を結合して1つの文字列にまとめる |
TRIM | 文字列から余分なスペースを削除 |
REPT | 文字列を指定された回数だけ繰り返し表示 |
機 能 | LEFT関数 文字列の先頭(左端)から指定された数の文字を抽出。半角と全角の区別なく 1 文字を 1 として処理する。 LEFTB関数 文字列の先頭(左端)から指定されたバイト数の文字を抽出。バイト数 (半角単位) で処理する。 |
書 式 | LEFT(文字列,文字数) LEFTB(文字列,バイト数) |
説 明 | 文字列
取り出す文字を含む文字列を指定する。目的の文字列が入力されたセル参照を指定することもできる。 文字数 取り出す文字数 (文字列 の先頭からの文字数) を指定する。 バイト数 取り出すバイト数 (文字列 の先頭からのバイト数) を指定する。 |
[実例1]:文字列の先頭から指定した文字数又はバイト数の文字を抽出する。
[セルD2の式]
=LEFT(B2,2)
[式の意味]
文字列の左端から2文字分を抽出する。
B2 文字列
2 文字数
[セルD6の式]
=LEFTB(B6,2)
[式の意味]
文字列の左端から2バイト分を抽出する。
B6 文字列
2 バイト数
LEFT関数は、文字列が全角・半角に関わりなく、指定した文字数を抽出する。
LEFTB関数は、バイト単位で文字を抽出するため文字列が半角の場合は、指定バイト分の文字を抽出するが、全角文字列のときに奇数バイトを指定すると、最後の1バイト分は半角のスペースが挿入される。(D7
の式では3バイトを指定したため、「2」が表示されていない。)
したがって、全角文字列に対するLEFTB関数のバイト数は偶数でないと正確に表示されない。
Y−2 MID関数、MIDB関数
機 能 | MID関数 文字列の任意の位置から指定された数の文字を抽出。半角と全角の区別なく 1 文字を 1 として処理する。 MIDB関数 文字列の任意の位置から指定されたバイト数の文字を抽出。バイト数 (半角単位) で処理する。 |
書 式 | MID(文字列,開始位置,文字数) MIDB(文字列,開始位置,バイト数) |
説 明 | 文字列 取り出す文字を含む文字列を指定する。目的の文字列が入力されたセル参照を指定することもできる。 開始位置 文字列 から取り出す先頭文字の位置 (文字番号) を数値で指定する。文字列 の先頭文字の位置が 1 になる。 MIDBの場合は、文字の位置(文字番号)をバイト単位で指定する。 文字数 取り出す文字数を指定する。 バイト数 取り出すバイト数を指定する。 |
[実例1]:文字列の任意の位置から指定した文字数又はバイト数の文字を抽出する。
[セルE3の式]
=MID(B3,3,2)
[式の意味]
文字列の左端から3文字目から2文字分を抽出する。
B3 文字列
3 開始位置(文字単位)
2 文字数
[セルE6の式]
=MODB(B6,2,4)
[式の意味]
文字列の左端から2バイト目から4バイト分の文字を抽出する。
B6 文字列
2 開始位置(バイト単位)
4 バイト数
MID関数は、文字列が全角・半角に関わりなく、指定した文字数を抽出する。
MIDB関数は、バイト単位で開始位置を数え、文字を抽出するため文字列が半角の場合、指定開始位置から指定バイト分の文字を抽出する。
全角文字列のときに、開始位置に偶数バイトを指定すると最初の1文字はスペースが挿入される。また、抽出文字数に奇数バイトを指定すると、最後の1バイト分は半角のスペースが挿入される。
E6 の式では開始位置に2バイト、バイト数に4を指定したものである。この意味は、「名古屋市」の「名」の2分の1文字の位置から「屋」の2分の1文字までを抽出するということになり、結果として「名」「屋」それぞれが半角のスペースになってしまうため、「古」しか表示されないことになる(半角スペース+「古」+半角スペース)。
したがって、全角文字列に対するMIDB関数の開始位置は奇数、バイト数は偶数でないと正確に表示されない。
機 能 | RIGHT関数 文字列の末尾(右端)から指定された数の文字を抽出。半角と全角の区別なく 1 文字を 1 として処理する。 RIGHTB関数 文字列の末尾(右端)から指定されたバイト数の文字を抽出。バイト数 (半角単位) で処理する。 |
書 式 | RIGHT(文字列,文字数) RIGHTB(文字列,バイト数) |
説 明 | 文字列 取り出す文字を含む文字列を指定する。目的の文字列が入力されたセル参照を指定することもできる。 文字数 取り出す文字数 (文字列 の末尾からの文字数) を指定する。 バイト数 取り出すバイト数 (文字列 の末尾からのバイト数) を指定する。 |
[実例1]:文字列の末尾(右端)から指定した文字数又はバイト数の文字を抽出する。
[セルD3の式]
=RIGHT(B3,3)
[式の意味]
文字列の右端から3文字分を抽出する。
B3 文字列
3 文字数
[セルD8の式]
=RIGHTB(B8,4)
[式の意味]
文字列の右端から4バイト分を抽出する。
B8 文字列
4 バイト数
RIGHT関数は、文字列が全角・半角に関わりなく、指定した文字数を抽出する。
RIGHTB関数は、バイト単位で文字を抽出するため文字列が半角の場合は、指定バイト分の文字を抽出するが、全角文字列のときに奇数バイトを指定すると、最初の1バイト分は半角のスペースが挿入される。(D7
の式では3バイトを指定したため、「5」が表示されていない。)
したがって、全角文字列に対するRIGHTB関数のバイト数は偶数でないと正確に表示されない。
機 能 | LEN関数 文字列に含まれる文字数を算出。半角と全角の区別なく 1 文字を 1 として処理する。 LENB関数 文字列に含まれる文字数をバイト数で算出。バイト数 (半角単位) で処理する。 |
書 式 | LEN(文字列) LENB(文字列) |
説 明 | 文字列 文字数またはバイト数を調べる文字列を指定する。文字、スペース、句読点、数字はすべて文字として処理される。 |
[実例1]:文字列の文字数又はバイト数を抽出する。
[セルC4の式]
=LEN(B4)
[式の意味]
文字列の数を全角・半角の区別なく数える。
B4 文字列
[セルC5の式]
=LENB(B5)
[式の意味]
文字列の数をバイト単位で数える。
B5 文字列
機 能 | ふりがなの文字列を取り出す。 |
書 式 | PHONETIC(範囲) |
説 明 | 範囲 ふりがなの文字列を含む 1 つまたは複数のセルの参照を指定する。 範囲 に複数のセルを指定した場合は、セル範囲の左上隅に指定されているふりがなが返される。 「ふりがな」の書式設定 「ふりがな」の文字の種類には、ひらがな、全角カタカナ、半角カタカナがある。設定方法は、メニューバーの「書式」→「ふりがな」→「設定」で行う。 「ふりがな」の文字の修正は、メニューバーの「書式」→「ふりがな」→「編集」で行う。 PHONETIC関数を実行した結果得られる「ふれがな」は上記で指定した内容となる。 |
[実例1]:文字列から「ふりがな」を抽出する。
[セルC2の式]
=PHONETIC(A2)
[式の意味]
文字列に振られた「かな」を取り出す。
A2 文字列
機 能 | 値のリストから指定したものを抽出。 |
書 式 | CHOOSE(インデックス,値1,値2,..) |
説 明 | インデックス
1 〜 29 までの数値、または 1 〜 29 までの数値を返す数式またはセル参照を指定する。 インデックス が 1 より小さいか、引数リストの値の個数よりも多い場合、エラー値 #VALUE! が返される。 値1、値2、... インデックス に基づいて選択される値または動作を 1 〜 29 個まで引数リストの形で指定できる。これらの引数には、数値、セル参照、名前、数式、関数または文字列を指定する。 CHOOSE 関数に指定する 値 として、1 つの値だけでなく、セル範囲の参照を使うこともできる。 |
[実例1]:数値を入力して、それに対応する指定文字列を求める。
[セルB2の式]
=IF(ISBLANK(A2),"未入力",CHOOSE(A2,"関西本部","中部本部","関東本部"))
[式の意味]
セルA2が空白ならば「未入力」の文字を表示し、空白でなければCHOOSE関数を実行する。
IF関数の式
ISBLANK(A2) 論理式
"未入力"
真の場合
CHOOSE(A2,"関西本部","中部本部","関東本部") 偽の場合
ISBLANK関数の式
A2 テストの対象
(ISBLANK関数は、対象となる値が空白かどうかを調べ、該当したときはTRUEを返す。)
CHOOSE関数の式
A2 インデックス
"関西本部","中部本部","関東本部" 値(1〜3)
インデックスで指定する数値は、検索する値の左からの位置番号である。
インデックスと値の関係 1=関西本部,2=中部本部,3=関東本部
実例では、インデックス値が2であるので、文字列"中部本部"が値として得られる。
結果的には=IF(ISBLANK(A2),"未入力","中部本部")の式と同じことになり、偽の場合の文字列「中部本部」が得られることとなる。
[実例2]:数値を入力して、それに対応する範囲の合計を求める。
[セルB6の式]
=IF(ISBLANK(A6),"未入力",SUM(CHOOSE(A6,B2:B4,C2:C4,D2:D4,E2:E4)))
[式の意味]
セルA6が空白ならば「未入力」の文字を表示し、空白でなければSUM(CHOOSE関数によって得られた範囲)を実行する。
IF関数の式
ISBLANK(A2) 論理式
"未入力"
真の場合
SUM(CHOOSE(A6,B2:B4,C2:C4,D2:D4,E2:E4)) 偽の場合
ISBLANK関数の式
A2 テストの対象
(ISBLANK関数は、対象となる値が空白かどうかを調べ、該当したときはTRUEを返す。)
SUM関数の式
CHOOSE(A6,B2:B4,C2:C4,D2:D4,E2:E4) 計算範囲
CHOOSE関数の式
A6 インデックス
B2:B4,C2:C4,D2:D4,E2:E4 値
インデックスと値の関係 1=B2:B4,2=C2:C4,3=D2:D4,4=E2:E4
この場合は、インデックスが2なので「C2:C4」)が値となる。
結果的には、IF(ISBLANK(A6),"未入力",SUM(C2:C4))の式となり、IF関数の「偽」の場合の処理、セルC2:C4の合計500が得られることとなる。
[実例3]:数値を入力して、それに対応する範囲のセルを参照する。
[セルB7の式]
=CHOOSE(A7,B2,B3,B4)
[式の意味]
A7の番号に対応する値の文字列を表示する。
A7 インデックス
B2,B3,B4 値
インデックスと値の関係 1=B2,2=B3,3=B4
インデックスが2なので、セルB3を参照する。この結果、「東京都」が表示される。
機 能 | TEXT関数→数値を書式設定した文字列に変換。 VALUE関数→文字列として入力されている数字を数値に変換。 |
書 式 | TEXT(値,表示形式) VALUE(文字列) |
説 明 | 値 数値、数値を含むセルの参照、または戻り値が数値となる数式を指定する。 表示形式 [分類] ボックス ([書式] - [セル] コマンドの [表示形式] タブ) に表示される数値書式を、半角のダブル クォーテーション(") で囲んで指定する。表示形式 にアスタリスク (*) を使用すること、および色を指定することはできない。 また、書式に "G/標準"を指定することはできない。[表示形式] タブ ([書式] - [セル]) のオプションを使用し、数値を含むセルに数値書式を設定しても、表示が変わるだけで、文字列には変換されない。 TEXT 関数を使用すると、数値は書式設定された文字列に変換され、その計算結果は数値として計算に利用できなくなる。 文字列 数値を表す文字列を指定する。 |
[実例1]:日付・曜日を書式設定した文字列に変換
[セルB3の式]
=TEXT($C$1,"yyyy年mm月dd日")
[式の意味]
年月日を西暦表示で、年は4桁、月、日が1桁の場合は先頭にOを付けて表示。
$C$1 値、数値
"yyyy年mm月dd日" 表示形式
[実例2]:時刻を書式設定した文字列に変換
[セルB4の式]
=TEXT(A4,"hh:mm am/pm")
[式の意味]
時刻を12時間表示で変換。
A4
値、数値
"hh:mm am/pm" 表示形式
[実例3]:数値を書式設定した文字列に変換
[セルB2の式]
=TEXT(A2,"#,##0")
[式の意味]
数値にカンマを付けて表示。
A2
値、数値
"#,##0" 表示形式
[実例4]:数値を表す文字列を数値に変換
[セルB2の式]
=VALUE(A2)
[式の意味]
文字列としての数字を数値に変換。
A2
文字列
機 能 | UPPER関数 文字列に含まれる英字をすべて大文字に変換。 LOWER関数 文字列に含まれる英字をすべて小文字に変換。 |
書 式 | UPPER(文字列) LOWER(文字列) |
説 明 | 文字列 大文字又は小文字、全角又は半角に変換する文字列を指定する。それ以外の文字は変換されない。 |
[実例1]:英字の文字列を大文字・小文字に変換。
[セルC2の式]
=UPPER(B2)
[式の意味]
abcを大文字のABCにする
B2
文字列
[セルC3の式]
=LOWER(B2)
[式の意味]
ABCを小文字のabcにする
B3
文字列
機 能 | JIS関数 文字列内の半角の英数カナ文字を、全角文字に変換。 ASC関数 文字列内の全角の英数カナ文字を、半角文字に変換。 |
書 式 | JIS(文字列) ASC(文字列) |
説 明 | 文字列 大文字又は小文字、全角又は半角に変換する文字列を指定する。それ以外の文字は変換されない。 |
[実例1]:文字列を全角・半角に変換。
[セルC2の式]
=JIS(B2)
[式の意味]
アイウエオを全角のアイウエオにする
B2
文字列
[セルC3の式]
=ASC(B3)
[式の意味]
アイウエオを半角のアイウエオにする
B2
文字列
機 能 | 文字列中の指定された文字を別の文字に置換。 |
書 式 | SUBSTITUTE(文字列,検索文字列,置換文字列,置換対象) |
説 明 | 文字列中の任意の位置にある文字を他の文字に置き換えるときは、REPLACE 関数を使用する。 文字列 置き換える文字を含む文字列を指定する。目的の文字列が入力されたセル参照を指定することもできる。 検索文字列 置き換える文字列を指定する。 置換文字列 検索文字列 と置き換える文字列を指定する。 置換対象 文字列 に含まれるどの 検索文字列 を 置換文字列 と置き換えるかを指定する。置換対象 を指定した場合、文字列中の 置換対象 番目の 検索文字列 だけが置き換えられる。省略した場合は、文字列中のすべての 検索文字列が置き換えの対象となる。 |
[実例1]:文字列中の指定した文字を指定した文字列に置換する。
[セルB2の式]
=SUBSTITUTE(A2,"中","中村")
[式の意味]
「中」を「中村」の文字と入れ替える。
A2 文字列
"中" 検索文字列
"中村" 置換文字列
置換対象を省略
SUBSTITUTE関数は、検索文字列を"
"(スペース)、置換文字列を""(Null)にすることにより、文字列中のスペースを取り除くことができる。また文字列の前後のスペースと文字列中の単語間のスペースを1つだけ残してスペースを除去するときは、TRIM関数を使用する。
[実例2]:文字列中に置換しようとする文字と同じ文字がいくつかある場合に、何番目の文字を置換するか位置を指定して置換。
[セルB3の式]
=SUBSTITUTE(A3,"1","2",2)
[式の意味]
文字列の中の2番目にある「1」を「2」の文字と入れ替える。
A2 文字列
"1" 検索文字列
"2" 置換文字列
2
置換対象
機 能 | REPLACE関数→文字列中の指定された数の文字を別の文字に置換。半角と全角の区別なく 1 文字を 1 として処理が行われる。 REPLACEB関数→文字列中の指定されたバイト数の文字を別の文字に置換。バイト数 (半角単位) で処理が行われる。 |
書 式 | REPLACE(文字列,開始位置,文字数,置換文字列) REPLACEB(文字列,開始位置,バイト数,置換文字列) |
説 明 | 文字列 その一部を置き換える文字列を指定する。 開始位置 置換文字列 と置き換える先頭文字の位置 (文字番号) を数値で指定する。文字列 の先頭文字の位置が 1 になる。 文字数 置換文字列 と置き換える 文字列 の中の文字数を指定する。 バイト数 置換文字列 と置き換える 文字列 の中のバイト数を指定する。 置換文字列 文字列 の一部と置き換える文字列を指定する。 |
[実例1]:文字列中の指定した位置から指定した文字数分を異なる文字列に置換する。
[セルB2の式]
=REPLACE(A2,2,1,"川")
[式の意味]
文字列の中の左から2番目にある1文字分を「川」の文字と入れ替える。
A2
文字列
2 開始位置
1 文字数
"川"
置換文字列
[セルB3の式]
=REPLACEB(A3,2,1,"")
[式の意味]
文字列の中の左から2番目にある1文字分を""(NUL)と入れ替える。
A2 文字列
2
開始位置
1
バイト数
"" 置換文字列
機 能 | 複数の文字列を結合して1つの文字列にまとめる。 |
書 式 | CONCATENATE(文字列1,文字列2,...) |
説 明 | 文字列1, 文字列2,... 1 つにまとめる文字列を指定する。引数は 1 〜 30 個まで指定できる。また、文字列だけでなく、数値やセル参照も指定できる。 |
[実例1]:複数の文字列を結合する。
[セルB2の式]
=CONCATENATE(A2,B2)
[式の意味]
セルA2の文字列とセルB2の文字列を結合する。
A2
文字列1
B2
文字列2
この処理と同じことが演算子の「&(アンパサンド)」によっても行うことができる。
[セルB4の式]
=A4&B4)
[式の意味]
セルA4の文字列とセルB4の文字列を結合する。
A4
文字列1
B4
文字列2
Y−13 TRIM関数
機 能 | 文字列から余分なスペースを削除 |
書 式 | TRIM(文字列) |
説 明 | 文字列 に複数のスペースが連続して含まれている場合、単語間のスペースを 1 つずつ残して、不要なスペースをすべて削除する。 TRIM 関数は、他のアプリケーションから読み込んだテキストに不要なスペースが含まれているときなどに使用する。 |
[実例1]:単語間のスペースを 1 つ残して不要なスペースを削除する。
[セルB3の式]
=TRIM(A3)
[式の意味]
セルA3の文字列の前後のスペースの除去と単語間のスペースのうち1つを残して除去。
A3 文字列
すべてのスペースを完全に除去するには、TRIM関数ではなく、SUBSTITUTE関数を使用する。
Y−14 REPT関数
機 能 | 文字列を指定された回数だけ繰り返し表示。 |
書 式 | REPT(文字列,繰り返し回数) |
説 明 | 文字列 繰り返す文字列を指定する。 繰り返し回数 文字列 を繰り返す回数を、正の数値で指定する。繰り返し回数 に 0(ゼロ) を指定すると、空白文字列 ("") が返される。 繰り返し回数 が整数以外の場合は、小数点以下が切り捨てられる。REPT 関数で作成される文字列は、32,000 文字まで。 |
[実例1]:文字列で得点グラフを作る
[セルD2の式]
=REPT("*",QUOTIENT(C2,5))
[式の意味]
QUOTIENT関数で得られた結果の数分、文字列「*」を繰り返して表示する。
* 文字列
QUOTIENT関数 繰り返し回数
C2 分子
5 分母
C2の得点は95であるから、95/5=19・・・繰り返し回数
Home |
---|