• ベストアンサー

Excelで、セル内の特定の文字を移動する方法を教えてください。

Excelで年表を作成しています。 年代と本文を分けたいのですが、どのようにやればよいかわかりません。 例えば、B1のセルに1945年太平洋戦争終結。という文字列が入っています。この中の1945年をA1のセルに移動して、B1のセルには太平洋戦争終結をスペースなしで残したいのですが、Excelでは出来るのでしょうか。 MID関数で移動させる手も考えましたが、手間かかりデータを間違えそうで。 なにか良い方法がありましたら、是非、お教え下さい。 よろしくお願い致します。 過去ログも調べたのですが、見落としていたら申し訳ありません。

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

  • ベストアンサー
  • NNAQ
  • ベストアンサー率56% (104/184)
回答No.6

まだ締め切られてないようですので・・・ 区切るべき文字を全てピックアップして、何文字目に区切ればいいかをとりあえず数値にする。 C1 =IF(ISNUMBER(FIND("年",B1)),FIND("年",B1),0) D1 =IF(ISNUMBER(FIND("世紀",B1)),FIND("世紀",B1)+1,0) 「+1」は"世紀"が2文字だから その他にも区切るべき文字があれば、E1,F1・・・同じように         G1 =LEFT(B1,MAX(C1:H1)) 区切るべき文字に"○○年代"とか"○○世紀頃"とかが混ざってると上記の式では失敗。 それから英数混じりでは、Excelの並べ替え機能を使っても、ちゃんと年代順にならないのでは? 結局、手作業・目で確認作業が必要で、数式作って一発で完了とは、いかないのではないでしょうか。

Fortuna21
質問者

お礼

ありがとうございました。 ヒントを頂きました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

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

年と事件を分けるルールは何ですか。どうも質問者のケースではないようです。であればできません。表面的なルールでなくても、深いところのルールでも良いが、ルールがないものは関数にしろVBAにしろC言語でも処理できません。 西暦1-4桁+年が圧倒的に多ければ、まず年が固定桁の場合はMID関数、浮動の場合FIND関数で年を探し、それを実行後、別のルールを考えては。 A19の14年ああああ に対し B19は=LEFT(A19,FIND("年",A19)) C19は=RIGHT(A19,LEN(A19)-FIND("年",A19)) のように。

Fortuna21
質問者

お礼

確かに明確なルールがないと成り立ちません。 数値だけ取り出して処理します。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.4

たとえば下記のようなマクロを作成し ツール→マクロ→マクロでオプションを選択 (たとえば)aをいれてOK→キャンセルで ショートカットを登録します。 これで分割したいセルを選択した状態で Ctrl+aで文字列が分割できます。 --- Sub m() Dim a As Range Set a = ActiveCell Cells(a.Row, 1) = Left$(a.Value, InStr(1, a.Value, "年")) Cells(a.Row, 2) = Mid$(a.Value, InStr(1, a.Value, "年") + 1) End Sub

Fortuna21
質問者

お礼

スマートなやり方ですね。ありがとうございます。 ただ、マクロを使うと失敗したとき“元に戻す”効かないのでは? 一つのSheetに3000近いデータがあるので、マクロは怖いです。 というか、マクロの知識がなかったりして...。

全文を見る
すると、全ての回答が全文表示されます。
  • cockerel
  • ベストアンサー率46% (253/548)
回答No.3

「1945年太平洋戦争終結」 のように必ず年号が4桁かつ先頭に現れるのであればあまりにも単純すぎるので、いろいろなパターンがあってのご質問と見受けられます。もうすこし例を示していただけませんでしょうか?

Fortuna21
質問者

補足

ありがとうございます。 確かに4桁ばかりではなく、B.C.やA.D.が先頭に付く数(例B.C.4世紀)や75000などのような5桁の数字もあります。 作業は、歴史資料を集めては、分類せずExcelのセルに貼り付けています。最後に、バラバラな年代(+本文)を年代別にExcelの“並び替え”で整えます。その為に、数字の抽出が必要になります。原則として、年代は必ず本文の前方に置く事としています。よろしくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.2

A1: =LEFT(B1,FIND("年",B1)) C1: =SUBSTITUTE(B1,A1,"") A1:C1 を[コピー]→[値の貼り付け]を実行した後で、B列削除

Fortuna21
質問者

お礼

なるほどいろいろな方法があるのですね。 参考になりました。 ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

次の方法は如何でしょうか。 1.データ→区切り位置 2.「スペースによって区切り・・・」を選択→次へ 3.データプレビュー画面の年とイベントの間をクリック→完了

Fortuna21
質問者

お礼

早速のご回答ありがとうございます。 こんな方法もあるのですね。 関数を使わず、簡単な方法で出来ることを教わりました。 ただ、No3.のcockerelさんの欄にあるように数値が、まちまちなのでこの方法は、揃ったデータで使ってみます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXcelでセルを移動

    EXCELでセルを移動させるにはどうすればいいでしょうか。教えてください。(A1のセルをB2へ移動させる) 例) A1セル 5678  A2セル 1234  ⇒ A2セル  B2セル              1234 5678 移動したいセルの量がかなり多いので単純に移動したいセルを指定してドラッグして移すのが大変なんです。 よろしくお願いします。

  • エクセル2007 セルの移動に関して 2つの移動方法の共存はできますか?

    エクセル2007 セルの移動に関して 2つの移動方法の共存はできますか? 同一シートに2つの移動方法を共存させたいのですが・・・ ※入力するセルはロックをはずしてのシートの保護をしています。 ■移動 → が 以下 B2→ D2→ F2→ H2 B4→ D4→ F4→ H4 ■移動 ↓ が以下 B6  D6 ↓  ↓ B8  D8 ↓  ↓ B10  D10 TAB と Enter での移動変化だけだとうまくいかないもので いい方法が ございましたら ご教授 おねがい いたします。

  • Excel 入力セル移動方法

    Excel 入力セル移動方法の質問です。 セルA5からA10まで入力した後、Enterキーだけで、セルB5まで移動させる設定方法はありますか? (行5から10をA・B・Cと移動したい) 入力範囲をドラッグする方法以外の方法がありましたら、教えて下さい。

  • エクセル セル内のスペースで区切られた文字列を下のセルへ貼り付ける

    質問があります。 エクセルのセル内にスペースで区切られた文字列があります。 これをスペースで区切られた文字ごとに下のセルへ移動させたいのですが、 関数または、マクロでできるでしょうか? よろしくおね害します。

  • エクセルでセル移動について

    エクセルのA1からD10の表に縦に数値を入力します。 各列によって空白のセルがあります。 A列の入力が終わればB1に、B列の入力が終わればC1に セル移動するにはどうすればいいでしょうか? (空白セルがあるため、Ctlキー+↑キーでは上手くいきません。) 教えて下さい。よろしくお願いします。  

  • Excelのセルのデータの移動について教えてくださ

    Excelの文書名(A)の「シート見出し3」のセルA1のデータを、デスクトップのExcelの文書名(B)のセルA1移動できるでしょうか。 もし、できる場合、文書名(B)に既に6行分のデータが存在しているときはセルA7に移動あるいは、既に7行分のデータが存在しているときはセルA8に移動できるでしょうか。 お教え頂けたら幸いです。よろしくお願いいたします。

  • エクセルのセル移動方向

    エクセルのセル移動方向を各シートに指定したい。 セルはEnterキーを押すたびに右か下に移動しますが 移動方向を各シート別に固定したい。 ツール・オプション・編集で切り替えしていますが 向きが変わるたびに行なっていると、手間がかかるので良い方法を教えて下さい。初心者なので詳しく 丁寧に教えて頂いたら有りがたいのですが。 よろしくお願い致します。

  • エクセルで数字入力をすると特定セルへ移動入力されてしまう。

    エクセル2002、ウィンドウズXPを使用しています。 エクセルで数字入力を行うと、同列の25000番目のセルへ数字が移動入力されてしまいます。 (例えばA1へ入力しようとするとA25000へ移動入力、A3→A25000、B1→B25000、B4→B25000へ移動入力されてしまいます。) 数字以外は、通常通り入力セルに表示されます。 コンピュータの再起動を行っても同じ現象が起きてしまいます。  この症状を回避する方法がありましたら、どうか教えてください。よろしくおねが

  • エクセルでのセルの移動規制について

    エクセルで、A1,A2,A3,B1,B2,B3と、永遠に3行だけセルの移動をさせるにはどの様にしたらいいのでしょうか?お知恵をお貸し下さい。お願いいたします。

  • エクセル セルの中の文字列を二つのセルに分ける方法

    エクセルで一つのセルの中に以下のデータ(日時)があります。 このデータを日と時間に分ける(一括で日と時間を別のセルに移動させる)にはどうすればいいでしょうか? ※データの日と時間の間には、スペースが一つあります。 2009/1/13 15:25

専門家に質問してみよう