• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ある文字から改行まで抽出+横方向セル参照で下フィル)

セルの抽出方法とオートフィルについての質問

このQ&Aのポイント
  • ある文字から改行まで抽出する方法を教えてください。
  • セルの参照が横方向に伸びる場合のオートフィルの方法を教えてください。
  • 関数を使用してテキストの整形やVBAを介さずに問題を解決したいです。

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

  • ベストアンサー
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.6

◆一つのセルに、国・都市・収容のデータが入力されているのですね ◆Sheet2のA1 A1=TRIM(MID(SUBSTITUTE(SUBSTITUTE(INDEX(Sheet1!$A$1:$C$1,ROW(A1)),CHAR(10),"="),"=",REPT(" ",100)),COLUMN(A1)*200-100,100)) ★右と下にコピー

cheersock
質問者

お礼

ありがとうございます! 希望とおりのことができました。 こんなにも早く解決できるとは。。。すごいです。 本当に感謝です!m__m

その他の回答 (5)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.5

◆MID、SEARCH関数にこだわらなければ、 ◆Sheet2の式 A1=SUBSTITUTE(INDEX(Sheet1!$A$1:$C$3,COLUMN(A1),ROW(A1)),CHOOSE(COLUMN(A1),"●国=","●都市=","●収容="),) ★A1の式を右と下にコピー

cheersock
質問者

お礼

ご回答ありがとうございます。 特定の関数には全くこだわりはありません。 お答えいただいた式で試したのですが A1= アメリカ ●都市=ニューヨーク ●収容=2000人 となり、右と下方向にコピーしても同様な内容となりうまくいきませんでした。 解決してしまったのですが引き続き検証してみます!

回答No.4

Sheet1の1行目:A1から横にスキャン(MAX255個?)し、 Sheet2のA列に、 「ctrl+Enter」(これがCHAR(10)らしい)を「,」に置換した文字列を並べ、後で「,」でセルに分割する。 A1に、 =SUBSTITUTE(OFFSET(Sheet1!$A$1,0,ROW()-1),CHAR(10),",") 以下、コピー

cheersock
質問者

お礼

ご回答ありがとうございます! 試したところ A1、A2、A3セルそれぞれ、 ●国=アメリカ,●都市=ニューヨーク,●収容=2000人 と同じ内容となりました。 解決してしまったので問題点がわかりませんが、 お答えいただき大変ありがとうございました。

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.3

こんにちは。  関数で処理するとかなりややこしいです。   (A1の式)=MID(Sheet1!A1,SEARCH("●国=",Sheet1!A1)+3,SEARCH(CHAR(10),Sheet1!A1)-4)   (A2の式)=MID(Sheet1!A1,SEARCH("都市=",Sheet1!A1)+3,SEARCH(CHAR(10),Sheet1!A1,SEARCH(CHAR(10),Sheet1!A1)+1)-4-LEN(A$2)-5)   (A3の式)=MID(Sheet1!A1,SEARCH("収容=",Sheet1!A1)+3,99)  行と列の入れ替えは表をコピーして「形式を選択して貼り付け」の「行と列を入れ替える」で行ってください。 では。

cheersock
質問者

お礼

ご回答ありがとうございます! 試したところ都市にあたる結果セルが「ニューヨーク●」となったり「東京●」となってしまいます。 それ以外の部分は大丈夫でした。 解決してしまったので問題点がわかりませんが、お教えいただいた関数を引き続き検証してみます!

  • shintaro-2
  • ベストアンサー率36% (2266/6245)
回答No.2

>=MID(Sheet1!A1,SEARCH("●国=",Sheet1!A1)+3,4) 関数で処理する場合は、 midで切り出す時の文字数を、findで国名以降の●を見つけた位置基準で決めれば済むと思いますが find("●",sheet1!a1,2)-3かな、-3は怪しいですが 如何? >あともう一点、上記問題解決後、A1からC1まで選択してオートフィルで下方向にドラッグして日本、カナダの行も埋まるようにするしたいのですが可能でしょうか(Sheet1の対象セルがA1、B1…と横方向に伸びていくので。。。) 下方にドラッグしたら、A1がA2,3,4,5となっていくのだ駄目です。 sheet1のデータを、行列入れ替えでコピーするか、sheet2で列方向に一旦データを作成した後、行列入れ替えしてください。

cheersock
質問者

お礼

ご回答ありがとうございます -3の部分は抽出文字数によっては-4にしたりと調整が必要でした。 FINDの使い方、勉強になりました。 ありがとうございました!

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

まず文字数は、きっちり数える必要は全くありません。 =MID(Sheet1!A1,3,99) 縦と横を入れ替えるには、INDEX関数とかOFFSET関数とかを使います。 シート2のA1に =MID(INDEX(Sheet1!$A$1:$C$3,COLUMN(A1),ROW(A1)),SEARCH("=",INDEX(Sheet1!$A$1:$C$3,COLUMN(A1),ROW(A1)))+1,99) #参考 A列の式は3文字目から B列の式は4文字目から それぞれ取り出せばよいと判っているのですから、わざわざSEARCH関数など組み込んで無駄に数式を伸ばす必要は全くありません。

cheersock
質問者

お礼

早速のご回答ありがとうございます。 >まず文字数は、きっちり数える必要は全くありません。 実はこの項目の文字数も一定ではなく「●国=」だったり「●国名=」となってたりでばらばらなんです。 なのでお教えいただいた関数もやはり自分の思っていたとおりにはなりませんでした。 貴重なお時間をさいてお答えいただいたのに説明不足で申し訳ありません。 お手数をおかけしましたm__m

関連するQ&A