エクセルの勉強部屋のホ−ムへ関数の説明へ操作実習へ楽らくエクセルへ操作説明へ質問と回答へ自習へVBAマクロへエクセルで使えるソフト質問はこちらへ
「MIDX」ユーザー定義関数の説明
「MIDX」ユーザー定義関数
【機能】
 「MIDX」ユーザー定義関数は、文字列の右より指定した位置から指定された数の文字を取り出します。

通常の組み込み関数と同じようにワークシート上で使用できる関数です。

書式 =MIDX(文字列、右からの開始位置,文字数)
   MIDX 関数では、半角と全角の区別なく 1 文字を 1 として処理が行われます。

文字列       取り出す文字を含む文字列またはセルへの参照を指定します。

右からの開始位置
              文字列から取り出す右からの先頭文字の位置 (文字番号) を数値で指定します。
             文字列の 右の先頭文字の位置が 1 になります。

文字数       取り出す文字数を指定します。
                2以上を指定すると右からの開始位置から左側の文字列を 取り出します。

  • 右からの開始位置が文字列の文字数 より多い場合、エラー値 #VALUE! が返されます。

 

 
 
 

文字数に負の数を指定すると、エラー値 #VALUE! が返されます。

A1セルに数値
12345678
が入力されている場合
=midx(A1,1,1)
   8
右から1文字目の1文字が返ります。
=midx(A1,1,2)
   78
右から1文字目からの2文字が返ります。

応用としてセルに入力した数値を、右端の数値から1桁ずつ取り出す場合
(下の例では、A列の文字列に対して、J列を1桁目の起点としています。)

セルJ1には、
=IF(LEN($A1)<COLUMN($J1)-COLUMN()+1,"",midx($A1,COLUMN($J1)-COLUMN()+1,1))
と入力します。
数式で、セル参照の列を絶対参照することがポイントです。

数式の意味
IF(LEN($A1)<COLUMN($J1)-COLUMN()+1,"",
もしセル$A1の文字列の長さが、セル$J1の列番号(この場合10)から数式入力セルの列番号(この場合10)+1(この場合10-10+1で1)より 小さい場合何も表示しません。
midx($A1,COLUMN($J1)-COLUMN()+1,1)
セルA1の文字列の、セル$J1の列番号(この場合10)から数式入力セルの列番号(この場合10)+1(この場合10-10+1で1)文字目を開始位置 として、1文字を返します。

【使用方法】
セルに直接関数 =midx(
と入力するか

関数を入力するセルで関数貼付ボタン「fx」を押します。

「関数の挿入」ダイアログボックスが表示されますので、関数の分類で「ユーザー定義」を選択します。

関数名「midx」を選択します。

数式パレットが表示されますので、それぞれの引数を入力します。
 

通常の組み込み関数と同じように、数式の結果も表示されます。
この関数のヘルプはありません。

 



【ソフトのダウンロード】はこちら
midx.exe
79.0kB
2009/01/31

解凍されるファイル
midxadd.xls
23.5kB
2007/2/8

midx.xla
21.0kB
2007/12/29

midxの説明.txt
8.61kB
2008.2.6


アドインソフトです。EXE形式のファイルは自動インストールされます。

注意:このソフトを使用する場合は、「アドインソフト使用上の注意」を必ずお読みください。
ここに掲載されているエクセルのブックは「マクロ」が記述されています。
このファイルをインストールする前に、「マク ロを有効にする」をチェツクしてください。

このソフトは「マイクロソフト エクセル97/2000/xp/2003/2007」で動作確認しています。
このソフトはフリーソフトです。
本ソフトの使用によって発生した問題について、作者は一切の責任を負わないものとします。