• ベストアンサー

今日最後の質問!MID関数について・・・

今日はいっぱい質問させ頂きましたが あともう一度MID関数について教えて頂きたいです MID関数で引っ張ってきた数字を まったく違う文字を表示させる方法は有るでしょうか?(32個種類があります) たとえばですが MID関数で引っ張って来た文字をこの時はこの文字と言う形です 1の時は A1 2の時はA2 3の時はB6 と言う風にです これさえ分かれば仕事がはかどるのですが・・・・ 宜しくお願い致します あと関数に対する勉強方法・良い本 などがありましたら教えてください 宜しくお願い致しますm( __)m

質問者が選んだベストアンサー

  • ベストアンサー
  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.2

いよいよ佳境に入ってきましたね。 32種類を順番に並べた文字列をA1セルに あいうえおかきくけこ・・・・ VALUE(MID(xx,xx,xx))で引っ張ってきた数値を使って更にMIDに組み込みます。 =MID(A1,VALUE(MID(xx,xx,xx)),1) です。 例をみると、1の時はA1とありますので、2文字を返すんですね。 A1セルがA1A2B6・・・・だとすると =MID(A1,VALUE(MID(xx,xx,xx))*2,2) で良いでしょう。 ご検討をお祈りします。

mmopp
質問者

お礼

今日は一日有難うございました。m(__)m ほんと馬鹿だと苦労します(^^) まだそれぞれの回答で実験していませんが 今まだ会社ですので帰ったら試してみようと思ってます なんどもよい知恵を頂きありがとうございました

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

問題の意味を充分捉えていませんが、下記の例ではどうですか。F1セルに'A1aA2B6('は値を文字列にするため)といれる。表の役目を持たせます。F1は空いたところどのセルでも良い。 A1セルに'312と文字列数字が入っているとする。 B1セルに式 =MID(F1,2*(VALUE(MID(A1,1,1))-1)+1,2) & MID(F1,2*(VALUE(MID(A1,2,1))-1)+1,2) & MID(F1,2*(VALUE(MID(A1,3,1))-1)+1,2) と入れる。 B1はB6A1A2になります。 文字数が多い時には数式バー上で&から&までをコピー貼りつけして、一部を修正すれば良い。しかし文字数がおおいと式の全体文字数が多くなって、実用的ではなくなるかも。 >1の時は A1 2の時はA2 3の時はB6 と言う風にです この1、2、3は(A)同一セルの文字列の中に入っている(現われる)のですか。それとも(B)1セルには1数字文字だけ現われるのですか。あるセルには2、あるセルには3とか。 本回答は(A)で回答。

mmopp
質問者

お礼

丁寧で長い回答有難うございました。 みなさん色々な考え方があるのですねー どうやったらその様に考える事ができるのだろ? といつも関心させられます 有難うございました

  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.5

訂正です。 >CHOOSE関数だと0~29までしか対応してない CHOOSE関数だと1~29までしか対応してない です。 VLOOKUP関数についてはこちらをどうぞ。 http://career.mycom.co.jp/skillup/excel/4_vol6_1.cfm http://www3.wind.ne.jp/web/excel/vlookup.html

mmopp
質問者

お礼

今日一日有難うございました 訂正が有るくらいでしたのでもしかして 一度実験して頂いたのでしょうねー ほんと今日一日有難うございましたm(__)m

  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.4

No#3です。 補足です。 =CHOOSE(●,A1,A2,B6) ●が1のとき A1  2→ A2  3→B6 となります。 ●にMID関数のその式を代入すればよいでしょう。 CHOOSEを組み合わせてIFで分岐させれば30以上でも可能でした。 =IF(A1<=29,CHOOSE(A1,"1","2","3",,,,,,,,,,,,,,,,,,,,,,,,,,"29"),CHOOSE(A1-29,"30","31","32")) A1が1のとき1 ・・・29のとき29。30のとき30となります。

  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.3

別表をつくってVLOOKUP関数で取り出すか、 CHOOSE関数でそのセル内で完結させるか。 CHOOSE関数だと0~29までしか対応してないのでVLOOKUPのほうがよいかな。 関数に関する・・・・については 下記サイトの 便利テクニック 虎の穴(←一部読者制限有り) などがよいでしょう http://pc21.nikkeibp.co.jp/pc21/ あと、前回の質問の補足に対する答えですが、 (かいてたら締め切られてしまった >_<) 2つ以上の関数をつかうときは、 一つ一つうまく動くことを確認して、 最後に組み合わせて一つにするという方法がよいとおもいます。一方の式に代入する(置き換える)という具合に。

参考URL:
http://pc21.nikkeibp.co.jp/pc21/
  • yang_yang
  • ベストアンサー率31% (117/367)
回答No.1

変換したい文字列の組み合わせが何パターンあるのか、またその組み合わせが不変なのかで使うべき関数は変わってくるとおもいますが、一番簡単そうなところで、if文を組み合わせてはどうでしょう。 =if(mid(*,*,*)=1,"A1",if(mid(*,*,*)=2,"A2",if(mid(*,*,*)=3,"B6","",))) この場合「mid(*,*,*)」で取り出した数が1のときA1、2のときA2、3のときB6、それ以外は何も表示しないと思います

関連するQ&A