- 締切済み
セルの一部のみを抜き出したい
501,rabbit,ウサギ,0,50,,70,,, 503,dog,犬,5,500,38,5, と言うようにA列にデータが並んでいます B列に2つめの,と3つめの,の間を表示させたいのですが MIDとSEARCHを使って関数をいれたところ 3つめの,より前が全部表示されてしまいました。 どなたかわかる方お教え願えませんか? よろしくおねがいします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- mu2011
- ベストアンサー率38% (1910/4994)
長い数式になりますが次の方法は如何でしょうか。 =MID($A1,FIND(",",$A1,FIND(",",$A1)+1)+1,FIND(",",$A1,FIND(",",$A1,FIND(",",$A1)+1)+1)-FIND(",",$A1,FIND(",",$A1)+1)-1)
- Cupper
- ベストアンサー率32% (2123/6444)
Excelの話でしょうか。 関数で回答を得たい場合はどのように関数を使ったのか、関数式を書きこむと それに対してアドバイスをいただけると思います。 ご質問の内容からは何を間違っているのかをアドバイスすることができません。 本来 Excel ではセル内にカンマで区切ったデータを置くような使い方はしません。 そのようなデータの場合、 データ ⇒ 区切り位置 ⇒ カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ ⇒ 次へ ⇒ カンマ ⇒ 次へ ⇒ (区切られた列の書式を設定) ⇒ 完了 で、カンマで区切られたデータをセルに展開することができます。 このようにすると、のちのデータ処理を確実/簡素に行うことができます。
- kusa_mochi
- ベストアンサー率76% (1597/2087)
ちょっと意味が分からないので、確認させてもらうが ・A1のセルに "501,rabbit,ウサギ,0,50,,70,,," ・A2のセルに "503,dog,犬,5,500,38,5," という風にデータが入っているという事かな? そしてそのデータの中から、「ウサギ」とか「犬」いう3番目の文字列を取り出したいという事で間違いない? 上記で間違いないのなら、私ならば ・C1のセルに1番目に出てくる","の位置を取り出す式をセット =SEARCH(",",A1,1) ・D1のセルに2番目に出てくる","の位置を取り出す式をセット =SEARCH(",",A1,C1+1) ・E1のセルに3番目に出てくる","の位置を取り出す式をセット =SEARCH(",",A1,D1+1) ・B1のセルにD1及びE1のセルにある値を使い3番目の文字列を取り出す式をセット =MID(A1,D1+1,E1-D1-1) する事で目的を達成すると思う。 あと、老婆心ながら付け加えておくと、一つのセルの中にカンマで区切って複数の文字列を入れるのはExcelの想定していない使用方法なので出来るだけ止めた方が良いと思う。 Excelが想定している使い方は、A1のセルに501,A2のセルにrabbit,A3のセルにウサギ,・・・というデータの保持方法だと思うから。 (だから文字列取り出そうとして、今回のケースの様に難儀するのだと個人的には思っている)