人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルで”文字列内の半角(数字)の位置を求める関数”を捜しています。目的ですが、当方が作成しているエクセルでの住所一覧で、一つのセル内に”三田3-4-5”とある場合に、三田という住所のふりがなだけをphonetic関数で拾って、並べ替えるために必要としています。日経BPのエクセルテクニックのサイト、http://arena.nikkeibp.co.jp/tec/excel/ で探してもなく、当サイトでキーワードを”エクセル 半角”で検索してもありませんでした。エクセルの教則本、超図解エクセル2000の関数編にて、”文字列操作”関数あたりを見ますと、”find関数”を使うのかなー、というレベルまでの当たりはついたのですが・・・ それとも関数だけでは完結できず、VBEでなければ実現できないのでしょうか。以上皆様のお力をお借りできるようお願いします。

●質問者: aryata
●カテゴリ:コンピュータ
✍キーワード:VBE とある ふりがな エクセル キーワード
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● maq
●18ポイント

http://www.yahoo.com/

Yahoo!

URLはダミーです。

関数だけでは、姑息な手段を使うしかないような気がします。Excelは詳しくないので可能かも知れませんが…。

姑息な手段としては、たとえば以下のような式。

=1+IF(CODE(MID(A1,1,1))>256,1,0)+IF(CODE(MID(A1,2,1))>256,1,0)+IF(CODE(MID(A1,3,1))>256,1,0)+IF(CODE(MID(A1,4,1))>256,1,0)+IF(CODE(MID(A1,5,1))>256,1,0)+IF(CODE(MID(A1,6,1))>256,1,0)+IF(CODE(MID(A1,7,1))>256,1,0)

これで、A1セルにある半角の先頭位置が返ります。

ただし、以下の制約があります。

制約1:半角以降に再び全角文字がでてこないこと

制約2:7文字以上の文字列には対応できない

制約3:7文字以下の文字列には対応できない

制約2の対応文字数は、+IF(…)を増やすことである程度可能です。

制約3の対応文字数は、もともとのセル(例ではA1)の文字数をCONCATINATEとREPT関数あたりを利用して半角スペースでも追加して埋める必要があります。(例:=CONCATENATE(”三田3-4-5”,REPT(” ”,10))

トンデモ系の回答なので、ポイントは不要です(^^;。

◎質問者からの返答

>トンデモ系の回答なので・・・→いえいえ。ありがとうございました。


2 ● splizer
●18ポイント

http://www.hatena.ne.jp/1079244362#

エクセルで”文字列内の半角(数字)の位置を求める関数”を捜しています。目的ですが、当方が作成しているエクセルでの住所一覧で、一つのセル内に”三田3-4-5”とある場.. - 人力検索はてな

数字の位置を求める方法で考えてみました。ちょっと姑息な手段です。

対象のセルをFINDで0から9まで探し、それらの最小値を求めます。とりあえず数字がなければ、99を返すことにしています。

=MIN((IF(ISERROR(FIND(”0”,A1,1)),99,FIND(”0”,A1,1))), (IF(ISERROR(FIND(”1”,A1,1)),99,FIND(”1”,A1,1))), (IF(ISERROR(FIND(”2”,A1,1)),99,FIND(”2”,A1,1))), (IF(ISERROR(FIND(”3”,A1,1)),99,FIND(”3”,A1,1))), (IF(ISERROR(FIND(”4”,A1,1)),99,FIND(”4”,A1,1))))

とりあえず長くなるので0から4までです。

◎質問者からの返答

なるほど。工夫すればできるもんですね。私の知恵の浅さを痛感です・・・ ありがとうございました。


3 ● akasyoubin
●18ポイント

http://www2.moug.net/app/bbs/message.php?cat=exopr&id=20040304-0...

Excel VBA を学ぶなら moug モーグ

文字列の中から全角だけを取り出して、ふりがなをつける方法はどうでしょうか。

お役に立てなかったら、ポイント不要です。

◎質問者からの返答

なるほど。ありがとうございました。


4 ● Einstein
●18ポイント

http://www.hatena.ne.jp/

はてな

考え方を変えて、「位置を返す」のではなくて「3-4-5を除いた値を返す」という方式でもできそうですね。

例えば、=SUBSTITUE(SUBSTITUTE(A1,”0”,””),”1”,””) … という具合に、数字とハイフンを除いた値を取り出しで、それをphoneticの引数として与えるとか。

◎質問者からの返答

なるほど。皆さんお知恵がありますね。本当にありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ