【問題2】下記の住所からそれぞれ都道府県名を取り除いてください。
【解答1例】
都:東京都 道:北海道 府:大阪府、京都府 県:4文字(鹿児島県、和歌山県、神奈川県)と3文字(宮崎県、熊本県など)の2パターン
これらのことから4文字目に"県"が含まれるものと3文字で表示されるものの2パターンがあることになりますので
4文字目が「県」である時は5文字目以降を、それ以外は4文字目以降を取り出せばよいことになります。
ここではMID(B3,5,LEN(B3)-4) と住所の文字数を数えて都道府県の文字数4(または3)を引いて取り出す文字数を計算しています。
MID関数では取り出す文字数が指定した文字列の数より多くてもエラーとなりませんので、
MID(B3,5,LEN(B3)) としても同じ結果が得られます。
よって、=IF(MID(B3,4,1)="県",MID(B3,5,LEN(B3)),MID(B3,4,LEN(B3))) とか
住所の文字数が100を超えることがないなら、=IF(MID(B3,4,1)="県",MID(B3,5,100),MID(B3,4,100)) とすることもできます。
(Step-Up3)都府県名から右の1文字を削除するにはどうすればよいでしょうか?
ナンバーストリング
=NUMBERSTRING(数値,表示形式)
(注)他の表計算アプリケーションとの互換を保つために用意された関数のため、ヘルプおよび関数ウィザードには表示されません。
また、日本語版 Excel でのみ追加されたものです。
【問題】下記の数字をそれぞれの表示形式に変更しなさい。
【別の方法】 セルの表示形式のユーザー定義を使うこともできます。
入力値は「123456」で、書式→セルの表示形式タブでユーザ定義に以下の表示形式を設定します。
(注)Excel2002以降では日本のロケールIDの[$-411]を指定しないと、保存後に開くと[$-FFFF]が設定される不具合があるようです。
文字列から、指定した位置の文字を取り出します topへ
レフト
=LEFT(文字列,[文字数]) :文字列の左端から指定した文字数だけ取り出す。
文字数を省略すると1を指定したことになります(1の時は省略できる)。
ライト
=RIGHT(文字列,[文字数]) :文字列の右端から指定した文字数だけ取り出す。
文字数を省略すると1を指定したことになります(1の時は省略できる)。
ミッド
=MID (文字列,開始位置,文字数) :文字列の指定した位置から指定した文字数だけ取り出す。
【問題】C2~C5セルに入力されている半角文字は全角文字に、全角文字は半角文字に変換してE列に表示しなさい。
なお、(半角カタカナ)部分はご自分でExcelへ半角カタカナの文字列を入力してください。
【解答例】
アルファベットの大文字/小文字の変更を行う topへ
アッパー
=UPPER(文字列) :小文字を大文字に変換します。
ロウワー
=LOWER(文字列) :大文字を小文字に変換します。
プロパー
=PROPER(文字列) :1文字目を大文字に、2文字目以降を小文字に変換します。
(注) カタカナやひらがなには、大文字/小文字の区別はありませんので、何も変化しません。
【例】ASC関数との組み合わせもできます。
文字列を取出す関数の使い分け方
取出す文字列の位置が決まっている場合
左から何文字・・・LEFT関数
右から何文字・・・RIGHT関数
何文字目から何文字まで・・・MID関数
決まった文字を基準にする場合
大文字と小文字を区別する・・・FIND関数と上記「A」の関数を組み合わせる
大文字と小文字を区別しない・・・SEARCH関数と上記「A」の関数を組み合わせる
半角/全角の文字に変換します topへ
アスキー
=ASC(文字列) :全角の文字列(英数字、カタカナ)を半角の文字に変換します。
ジス
=JIS(文字列) :半角の文字列(英数字、カタカナ)を全角の文字に変換します。
(注)ひらがな、漢字は全角文字ですので、半角文字には変換されません。
【ステップアップ】時間を単位時間で切り捨てる
30分単位で切り捨てて計算する場合には =FLOOR(値,"0:30") とします。
しかし、時間は24時間を1としたシリアル値で換算されていますので、小数部で誤差が出ることがあります。
FLOOR関数でうまくいかない場合もありますので、そういった場合には、
(キーボードからの入力ではほとんど問題ないですが、オートフィルなどで連続データを入力した時などにこの問題を生じます。)
=FLOOR((TIMEVALUE(TEXT(D5,"hh:mm"))),"0:30")*24*D3
のようにTIMEVALUE関数を使う方法があります。
文字列で表された時刻を小数(シリアル値)に変換します topへ
タイムバリュー
=TIMEVALUE(時刻文字列)
時刻のシリアル値:0~0.99999999 の値で、0:00:00(午前0時)~23:59:59 (午後11時59分59秒) までの時刻を返します。
文字データを時刻データ(0~1の小数、シリアル値)に変換します。
TIMEVALUE関数は24時までのシリアル値になります。24:00以上を扱う時はVALUE関数を使うことができます。
【問題】
文字列の時刻データがB2~B5に入力されています。
それぞれの時刻をシリアル値に変換して、C列、D列に表示しなさい。
24:00以上を表示するにはセルの表示形式をユーザー定義で「[h]:mm」とします。
文字列として時刻を表示するには「'6:00」のように「'」(アポストロフィ)を頭に付けます。
または、=TEXT("6:00","h:mm") のようにTEXT関数で変換します。