上図のセルC3に、「=LEFT(REPT("★",B3)&REPT("☆",5),5)」と入力すると、黒星が1個と
白星が4個表示された。
これは、「REPT(★",B3)」でB3の値分の黒星を書き、「REPT("☆",5)」でその右に白星を
5個書く、そして、「LEFT(_,5)」で左から5個の文字を取り出している。



上図のセルD3に、「=REPT("★",B3)」と入力すると、黒星1個が表示される。
REPT関数の引数は、「=REPT(繰り返し挿入する文字,繰り返し回数)」となり、繰り返し回数
に、その回数が書いてある、セル番地を指定することも可能である。

167.LEFT関数とREPT関数で、数値の5段階評価を「★」で表示する。


上図のセルB2に、「=REPT("−",10)」と入力すれば、セルB2に「−」が10個セルの中心に、
引かれた。REPT関数の引数は、「=REPT(文字列,繰り返し回数)」である。



上図のセルB3に、「=REPT("−",CELL("width",B3))」と入力すれば、セルB3のほぼ幅に
「−」が引かれた。



上図のセルB5に、「=CELL( 」と入力すると、CELL関数の「検査の種類」一覧が表示される。
ここでは、「width」なので選択して[Tab]キーを押す。



「"width」が入力されたので、「B5]を入力して「)」を閉じる。


上図の様にセルに、「9」と表示された。実際にはセル幅は「9.25」である。
「=REPT("−",CELL("width",B3))」によって、「−」が9個引かれたのである。



上図のセルB4に、「=REPT("−",CELL("width",B4)+CELL("width",C4))」と入力すると、
B4とC4の結合されたセルに「−」が18個引かれた。B4セルが9個、C4セルが9個である。
尚、CELL関数でセル幅を測定して引いている場合は、セル幅を変更してもそのセル幅に対応
して「−」の個数が変更される。自動ではないので、再計算は、[F9]キーを押せばよい。

166.REPT関数とCELL関数で、文字を繰り返して表示する。


日付入力で「2024/01/10」のように、月や日の1桁は「01」の様に「0」を付けて表示する
のが基本だが、「01」と入力すると「0」が消えて「1」になってしまうので、桁数が変わり
見づらくなる。
上図のセルC14に、「=TEXT(B14,"yyyy/mm/dd")」と入力すると、月も日も「01」と表示
された。



又、「0」ではなく「半角空白」で揃えたい場合は、上図の様に、
「=SUBSTITUTE(TEXT(C14,"yyyy,mm,dd"),"/0","/")」と半角スペースを入力すれば
よい。



又、上図のC列のように和暦で桁揃えする場合は、「=TEXT(B20,"gggee年mm月dd日")」と
入力すれば、月と日の「1」が「01」と表示された。又、年と月日の前に「半角空白」が挿入された。



上図のセルD20に「SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXT(B20,"gggee年mm月
dd日"),"0","#")"",""),"#","")」と入力すれば、一桁の年や月日の前に「0」ではなく、
「空白半角」が挿入された。
尚、は半角スペースを分かりやすく表示しています。



上図のセルC28の様に、「=TEXT(B28,"ggge年m月d日")」は関数内の「半角空白」を取り除き、
月の「mm」を「m」に、日の「dd」を「d」にすると、一桁表示になる。

165.SUBSTITUTE関数とTEXT関数で、日付の桁が1桁になるものを揃える。


上図のセルC9に「=TEXT(B9,"[DBNum1]G/標準円")」と入力すると、漢数字で
金額が表示された。漢数字の種類は[DBNum1]から[DBNum3]まであり、それぞれ
表示形式が異なる。最後の「円」は付記する文字で、「[DBNum1]G/標準」で数値が
変換される。セルC9〜C11は[DBNum1]〜[DBNum3]の表示例である。

164.TEXT関数で、金額を漢数字で表示する。


上図のセルC3に、「=ASC(PHONETIC(B3))」と入力すると、フリガナが表示された。
それぞれの漢字の文字数によって、ふりがなの文字数も変わる。



上図のセルD3に、「=LEFT(ASC(PHONETIC(B3))&REPT("",12),12)」と入力すると、
文字数が12文字に統一された。REPT関数で半角スペースを指定しているので、文字数の
不足分は半角スペースが追加される。



E列でD列それぞれの文字数を数えてみると、12文字になっていることが分かる。
PHONETIC関数でふりがなを取り出し、ASC関数で半角に指定し、REPT関数で半角スペース
を12文字追加し、LEFT関数で左から12文字を取り出している。

163.LEFT関数、ASC関数、PHONETIC関数とREPT関数で、カタカナ半角の
   フリガナの文字数を統一する。


エクセルで入力すると、先頭のゼロが消えることがある。この場合上図のようにゼロを挿入して
桁数を揃えるやり方がある。
上図のセルC20に「=RIGHT(REPT("0",7)&B20,7)」と入力すると、7桁に統一できた。
これは、7桁に満たない分、先頭をゼロで埋めるというものである。
この方法は、REPT関数であらかじめ先頭に7個の「0」を付け加えて、RIGHT関数で右から7文字
取り出すと言うものである。
REPT関数は、第一引数で指定した文字を、第二引数の数だけ記入すると言うものである。

162.RIGHT関数とREPT関数で、番号を7桁に揃える。


郵便番号など、入力時にハイフンなしで入力したものに、ハイフンを挿入するには、
上図のセルC8に、「=REPLACE(B8,4,0,"−")」と入力すると、指定した桁にハイフンを
挿入できる。
REPLACE関数の引数は、「=REPLACE(対象文字列,開始位置,文字数,置換文字列)」で、
C8セルの場合「対象文字列」はB8で、「開始位置」は4文字目、「文字数」を「0」に
指定すると「開始位置」に置換文字を挿入することができる。
尚、郵便番号などは、表示形式で「文字列」に設定して置かないと先頭のゼロが欠落する。



上図のB14が、先頭のゼロが欠落したものである。
この場合、セルC14に「=REPLACE(RIGHT("00"&B14,7),4,0,"−")」と入力すれば
先頭にゼロを挿入して、指定の位置にハイフンを挿入できる。
但し、この場合は、全体の桁数が7桁と決まっているから出来るのである。



上図のセルE14の、「=RIGHT("00"&B14,7)」を見ると「0010011」と、7桁に合わせて
いるのが分かる。RIGHT関数の引数は、第一引数に元の文字列、第二引数に取り出したい文字数
を「7」と指定すれば、右から7桁の文字数を取り出してくれる。だから挿入する「0」を多い目に
設定しても、取り出したい文字数で7桁にするから、セルB15の場合でも対応できる。

161.REPLACE関数で、ハイフン付きの番号に変換する。


セル内に数値を連続して入力するには、二つのセルに連続した数値を入力して、その二つのセル
を選択して、フィルハンドルを入力したい最後のセルまで移動すれば入力できる。
だが、アルファベット文字はそのやり方ではできない。
上図のセルI5に、「=CHAR(CODE(H5)+1)」と入力して、セル右下のオートフィルハンドルを
最終位置までドラッグすれば、連続したアルファベット文字が入力できる。
これは、CODE関数でH5セルの「A」の文字コードを計算して、それに「1」を加えた次のコード
の文字を表示するようにしている。それをCHAR関数で返している。
それを、フィルハンドルをドラッグして数式をコピーすることで、アルファベット文字が入力でき
る。



あとは、[コピー][形式を選択して貼り付け]で[値]に変換しておくとよい。
尚、@、A文字などの連続入力も同じ手順でできる。
160.CHAR関数とCODE関数で、A〜Zを連続して入力する。


上図の様に、B列とC列に分かれている文字列を、一つのセルに上下2段に分けて表示するには、
セルE3に、「=C3&CHAR(10)&B3」と入力するとできる。
CHAR関数は、引数に文字コードを指定することで、対応する文字を返す事ができる関数で、
制御文字も指定できる。「CHAR(10)」が改行コードの挿入である。



159.「&」演算子とCHAR関数で、文字列を改行コードで2段表示にする。


上図のセルB14の文字列を、D14セルのように、分けて2段に表示したい場合がある。



その場合、セルD14のようにコピーして転記し、数式バーの「No.00001」の区切りたい
位置にカーソルを置いて、[Alt]を押しながら[Enter]キーを押す。



どこかの空白セルを選択すると、行幅が広がり2段に表示される。



その2段表示を元に戻す場合に使用するのがCLEAN関数である。
上図のセルF14に、「=CLEAN(D14)」と入力すると、1段表示に変更された。
上図のセルH14には、「LEN(D14)」と入力されていて、セルD14の文字数を
数えたもので、文字数が8文字なのに「9」と表示されている。これは、2段に
するために「制御文字」が含まれているので9文字になっている。
CLEAN関数は、この「制御文字」を取り除く関数である。

158.CLEAN関数で、文字列中の改行コードを取り除く。


上図のセルD9に「=B9&" "&C9」と入力すると、名字と名前の間にスペースを挿入して、
文字列を結合することができる。

157.「&」演算子で名字と名前を結合する。


上図のセルD3に「="No."&B3」と入力すると、管理番号に「No.」が結合された。
このように、「&」演算子は直接、引数に文字列や数値を指定することによって、
結合することができる。

156.「&」演算子で文字を結合する。


上図のセルG21に「=COUNTIF(F21,"* *")>0」と入力すると、「TRUE]と全角であることが
証明できた。COUNTIF関数の条件値に、「" "」全角スペースを指定し、全角スペースがあるか
チェックすると、スペースが全角であることが分かる。



上図のセルH21に「=COUNTIF(F21," "* *")>0」と入力すると、「FALSE」と全角でないこと
が証明できた。COUNTIF関数の条件値に、「""」半角スペースを指定することが必要である。
155.COUNTIF関数で、文字列内のスペースが「全角」か「半角」を調べる。


上図のセルC21に「=ASC(TRIM(B21))」と入力すると、B21セルの氏名の文字列内の、余分な
スペースが削除されて、既定のスペースが「半角」になります。



上図のセルE21に「=JIS(TRIM(B21))」と入力すると、B21セルの氏名の文字列内の、
余分なスペースが削除されて、既定のスペースが「全角」になる。

154.JIS関数、ASC関数とTRIM関数で、文字列内のスペースの全角、半角を
   統一する。


上図のセルC16に、「=TRIM(B16)」と入力すると、氏名の前にあったスペースが削除された。
TRIM関数は、文字列の前後にあるスペースを削除し、文字の途中に含まれるスペースを1つだけ
残してその他を取り除くものである。

153.TRIM関数で、文字列内のスペース文字を取り除く。


上図のセルC11に、「=SUBSTITUTE(SUBSTITUTE(B11," ",””)," ","")」と入力すると、氏名の
半角と全角のスペースが削除された。
これは、SUBSTITUTE関数の第二引数に、半角と全角のスペースを指定し、第三引数の置換文字に
「""」を指定すれば、スペースが削除される。
この例は、SUBSTITUTE関数をネスト構造にすることによつて、半角と全角のスペースを同時に
削除している。
SUBSTITUTE関数の引数は、「=SUBSTITUTE(対象文字列,検索文字,置換文字)」である。

152.SUBSTITUTE関数で、文字列の全角と半角のスペースを取り除く。


通常2つの文字列の判定比較は、上図のように「=」を使って行うが、「=」での比較は、
英字の大文字と小文字は区別されないで、D列のように同一と判定される。



上図のセルE5に、「=EXACT($C$2,B5)」と入力すると、「FALSE」と同一でないと判定された。
EXACT関数は、大文字と小文字を区別して比較判定できる。
151.EXACT関数で、英文字の大文字と小文字を区別して、2つの文字の同一を
   比較判定する。


上図のセルF25に、「=PROPER(D25)」と入力すると、文字列の区切り両側の先頭文字を
大文字にし、他は小文字にする。

150.PROPER関数で、英単語の先頭文字を大文字にする。


上図のセルF18に、「=LOWER(D18)」と入力すると、大文字の英文字が、小文字に変換される。

149.LOWER関数で、英文字をすべて小文字にする。


上図のセルD18に、「=UPPER(B18)」と入力すると、小文字の英文字が、大文字に変換される。

148.UPPER関数で、英文字をすべて大文字にする。


上図のセルD11に、「=PHONETIC(B11)」と入力すると、カタカナの文字に変換される。

147.PHONETIC関数で、ひらがなをカタカナに変換する。


上図のセルF4に、「=ASC(D4)」と入力すると、指定した文字列が半角文字になります。

146.ASC関数で、文字列を半角文字に変換する。


上図のセルD4に、「=JIS(B4)」と入力すると、指定した文字列が全角文字になります。

145.JIS関数で、文字列を全角文字に変換する。


上図のセルB17は、ネットからコピーした文字である。セルC17に「=PHONETIC(B17)」と
入力しても漢字のままである。これは、フリガナが付いていない文字である。
この文字に「ふりがな」を付けるには、セルB17を選択して、[Alt]と[Shift]と[↑]を同時に押す。



[ふりがな編集]が表示されるので、編集し、編集後[Enter]を押す。



PHONETIC関数で、セルC17にふりがなが表示された。

144.PHONETIC関数で、ふりがなの無い漢字にフリガナを付ける。


上図のセルC13に、「=PHONETIC(B13)」と入力すると、フリガナが表示された。



尚、フリガナを修正するには、氏名部の名前をクリックした後、上部のフリガナ表示「V」を
押す。


[ふりがなの編集]が表示されるのでクリックする。



表示されたフリガナの文字を修正し、[Enter]を押す。



修正したフリガナが表示された。

143.PHONETIC関数でフリガナを取り出す。


上図のセルC8に、「=LEFT(B8,FIND(" ",B8)−1)」と入力すると、「山田」と名字だけが
取り出された。これは、LEFT関数の引数に、FIND関数を使ってB8セルの文字列の中の
スペースの位置を取り出し、その位置の「マイナス1」の位置まで、LEFT関数で文字を取り出す
ものである。E8セルで「FIND(" ",B8)」の式を確かめてみると、空白位置は「3」となる。
「3−1=2」までがLEFT関数で取り出す文字数になる。
FIND関数の引数は、「=FIND(検索文字,対象文字列,開始位置)」となり、「開始位置」は省略
が可能だから、このような使い方もできる。
尚、「" "」で指定するスペースは、全角、半角の区別が必要である。

142.LEFT関数とFIND関数で、氏名から名字を取り出す。


上図のセルC10に、「=MID(B10,3,2)」と入力すると、「CD」と表示された。
MID関数の引数は、「=MID(文字列,取り出したい文字の初めの位置,取り出す文字数)」となる。

141.MID関数で、文字列の途中から文字を取り出す。


上図のセルC8に、「=RIGHT(B8,2)」と入力すると、「EF」と表示された。
RIGHT関数の引数は、「=RIGHT(文字列,右から取り出したい文字数)」となり、指定した文字数の
文字が取り出される。

140.RIGHT関数で、文字列の右から文字を取り出す。


上図のセルC6に、「=LEFT(B6),2」と入力すると、「AB」と表示された。
LEFT関数の引数は、「=LEFT(文字列,左から取り出したい文字数)」となり、指定した文字数の
文字が取り出される。

139.LEFT関数で、文字列の左から文字を取り出す。


上図のセルC3に、「=LEN(B3)−LEN(SUBSTITUTE(B3,"●",""))」と入力すると、「4」と
表示された。これは、B3セルの丸の中の「黒丸」を数えたものである。
セルD3には、「=LEN(B3)−LEN(SUBSTITUTE(B3,"〇",""))」と入力してあり、「1」と表示
されている。これは、B3セルの丸の中の「白丸」を数えたものである。
セルF3には、「SUBSTITUTE(B3,"●","")」と入力されていて、「〇」と表示されている。
SUBSTITUTE関数の引数は、「=SUBSTITUTE(指定セル,置換する文字,置換後の文字)」となり、
置換後の文字列を「""」とすると「黒丸」は削除されてしまう。
これを利用すると、セルの文字数は「5」だから、そこから置換する文字「黒丸」を削除した後の
「白丸」の文字数「1」を引けば、5−1=4となる。

138.LEN関数とSUBSTITUTE関数で、文字列中の特定文字を数える。


上図のセルC3に、「=LEN(B3)−LEN(TRIM(B3))+1」と入力すると、「2」と表示された。
これは、セルB3の文字列中にある、スペース文字数を数えたものである。
TRIM関数は、文字列中にスペースが何個あっても、1個だけ残して余分なスペースはすべて削除
する関数である。
だから、「=TRIM(B3)」とすると、「山田□太一」となり、「山田」と「太一」の間のスペース
は1つになる。これを利用すれば、元の文字数を数えて、TRIMした文字数を差し引けば、余分の
スペース文字数が分かるので、それにTRIMが付ける文字1個をプラスすれば、現在のスペースの
文字数が分かる。
137.LEN関数とTRIM関数で、文字列中のスペース文字を数える。


上図のセルD21に、「=IF(LEN(B21)*2=LENB(B21),"OK","ER")」と入力すると、「ER」と
表示された。これは、セルB21に入力された文字列に、半角文字が存在することが判明したもの
である。LENB関数で文字数を数え、それを2倍にしたものが、バイト数と同じでないと、半角
文字が存在することが分かる。

136.IF関数、LEN関数とLENB関数で、文字入力のエラーを判別する。


LENB関数は、文字数をバイト数で数えるときに使用する。全角文字は「2」バイトとして、
半角文字は「1」バイトとして返す。
入力文字列が全角か半角かを、判別するときなどに使用できる。
135.LENB関数で、文字数をバイト数で数える。


LEN関数は、セルに入力されているデータの、文字数を数える関数である。
文字種に関係なく、入力されている文字数を数える。

134.LEN関数で、データの文字数を数える。
\.文字列操作
 この章では、文字列に関する様々の処理のための、関数の使い方を
 解説します。
 
関数の実用事例と引数の解説
文字列操作に使用する関数の解説


実際に使っているシステムの内容で解説
  EXCEL VBA 講座