• ベストアンサー

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

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

  • mmopp
  • お礼率62% (59/94)

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

  • ベストアンサー
  • 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/17068)
回答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

  • MID関数について

    先ほど質問した内容の応用編なのですが・・・・ 一つのセルにMID関数を何個か入れる事は出来るのでしょうか? なおかつ半角の-を間に入れたいのですがどのようにすれば宜しいのでしょうか? 次の様にしたいのですが・・・・ (MID関数で持ってきた数字*-MID関数で持ってきた数字*-MID関数で持ってきた数字*) (*-*-*) ってな風にです もう一個、MID関数とは関係無いとは思いますが・・・ 0401 とMID関数でもって来た数字を 4/1と表示させる事は出来ないでしょうか? 仕事上どうしてもやらなければいけないので質問しまくっています 質問の内容もわかりにくいかも知れませんが・・・・ どうぞ 回答宜しくお願い致しますm(__)m

  • エクセル MID関数

    MID関数で表示した文字列が、数字として認識されません。 MID関数で表示された数字が10とします。セルはA1とします。 その後、IF式で =if(A1<5,10,0) とすると、結果は0になるはずなのに、常に真の値、10になってしまいます。 原因は、MID関数で表示された数字が文字列として認識しているからと考えられますが、対象方法をご存知の方がおりましたら教えてください。 よろしくお願いします。

  • EXCEL MID関数の文字数について!

    セルA1 12×1240×2280 セルA2 3×1240×2280 セルA3 5.5×1240×2280 ↑こんな風にセルの中に数字が入っているのでMID関数で セルA1 =MID(A1,1,2)→12 セルA2 =MID(A2,1,1)→3 セルA3 =MID(A3,1,3)→5.5 と答えが出ます。でもA列の桁数によりMID関数の文字数を変えなければなりません。 一気に出せる方法はないでしょうか?? おわかりの方教えてくださーい!

  • MID関数について

    一桁から八桁までの任意の数字を1セルごとに分けたいのですが、MID関数では左から取り出すため桁数が変化すると使えません。 一桁目にMID(A1,1,1)から八桁目にMID(A1、8,1)を入れると1234が4321と逆になってしまいます。 12でも12345678と桁が違っても1セルごとにわけることはできないでしょうか

  • エクセルで、MID関数で抽出した文字を独立させたい

    エクセル初心者のため、お見苦しい文章で申し訳ありません。 WORDに入力されたアンケート結果をEXCELに移した際に、 例えば1つのセルにある「A:50% B:25% C:25%」という文字列を、 MID関数を使ってそれぞれ別のセルに抽出しました。 (それぞれ、"=MID(A2,3,3)"、"=MID(A2,10,3)"、 "=MID(A2,17,3)"という感じです) 設問がいくつもあるので、 その関数を十字でコピーしたほうが楽かと思いまして・・・ ところがそもそもグラフを作りたくてエクセルに移したのですが、 「50%」というのはただの関数の結果であって、 数字どおりのグラフが作れないと気づきました。 これを、「50%」という文字列だと 認識させてグラフを作る方法は何かあるでしょうか? それともやっぱりめんどくさがらずに、 1から打ち込んだほうが早いのでしょうか・・。 わかりづらい質問で申し訳ありません。 よろしくお願いいたします。

  • MID関数で・・

    エクセルのA1のセルに入力されている文字列の、 頭から3文字目までは表示しないで、4文字目以降を すべて表示したいと思います。 セル内の全文字数は、セルごとに違うのですが、 その場合は、下記の○の部分の設定はどうすれば よいのでしょうか? 適当に、1000など大きな数字を入れておく他、 ないのでしょうか? =MID(A1,4,○) 何か、他の方法があれば、ぜひ教えて下さい。

  • EXCEL 2010 VBAまたは関数について

    こんにちは 初投稿です。 早速ですが、VBAまたは関数について質問させて頂きたいのですが・・・ 一つのセルに複数の数字と文字列がセルのE1混ざっている場合, (12345abc678cdef9ghijk)と入っている場合 にこの例で行くとセルのA1に12345セルB1に678セルC1に9というように数字で表示させたいのです が、最初関数で A1=VALUE(MID(E1,1,5)) B1=VALUE(MID(E1,9,3)) C1=VALUE(MID(E1,16,1)) と言う形で数字だけ抜き出していたのですが これだと数字の桁数が違ってくる(※正し文字列の長さは一緒 数字だけが桁が違ってきます) と表示されなくなってしまうため、 出来れば関数をいじらなくても表示されるようにしたいのです。 VBAもしくは関数でこの問題を解決出来る方がいらっしゃるなら どうぞよろしくお願い致します。 長文失礼致しました。 | A | B | C | D | E | ------------------------------------------------ 1 | 12345 | 678 | 9 | | 12345abc678cdef9ghijk | 2 | | | | | |

  • MID関数で、「0」を一文字目として認識させたい

    Excel2002で、住所録から封筒を印刷するファイルを作りました。 住所録シートの7桁の郵便番号セルから一文字ずつ取出して 印刷シートの各セルに収めるよう下記の関数を入れています。 =MID(VALUE(VLOOKUP("●",住所録データ範囲,5,TRUE)),1,1) 通常は問題無いのですが、「0」から始まる郵便番号の時は MID関数が「0」を1文字目と認識してくれず、2文字目が 1番先頭のセルに入ってしまいます。 (住所録シートに入っている郵便番号は「'」で文字列認識させています) 何か良い解決方法はありますでしょうか? 宜しくお願い致します。

  • =mid

    元帳の、あるセルの数字、12,345を =mid(c3,1,6) と入力してそのセルの数字は、別のエクセルの表のセルに入力されるのですが 。12345と入力され、12,345とカンマが入力されません 関数を入力していない所は、カンマが入るのですが。 どうにかなりませんでしょうか? 教えてください。 もう一つ、A3、A4,A5の数字を、 A1のセルに合計を出すため、 =sum(A3.A5) と関数を入れても合計が出ません。 初心者のため、出来るだけ詳しく教えてください。 お願いします。

  • mid関数/find関数:一つのセルに同一の値がある場合

    mid関数、find関数について教えてください。 1つのセルに同一の値が入っていて、2個目の値から、何文字もしくは2個目の値を探したい場合どのようにしたら良いのでしょうか。 例)1つのセルに、1-A0001-A0002 と値が入っていて、"A0002"だけを別のセルに表記させたい場合、開始位置を9文字目と指定し、解を求めることができますが、2つ目の"A"から5桁というような指定の方法ができるのでしょうか。 RIGHT関数という方法もありますが、セルによっては、1-A0001-A0002○○○というように別の文字が続いているため、上記のような設定で解を求めたいと考えます。 アドバイスを宜しくお願いいたします。

専門家に質問してみよう