内部に形式(****)で西暦を記載したデータがあります。
西暦に位置は不規則ですが前後に半角の()があります。
例 :
山本薩夫監督による『忍びの者』(1962年)は作品 (以下省略)
続・忍びの者』(ぞく しのびのもの)は、(1963年)公開の日本映画 (以下省略)
吸血鬼ドラキュラは(1958年)のイギリスのハマー・フィルム・プロダクション
このようなデータが約300行あります。
(これからも増えます)
このデータから年号のみを比較して一部加工(西暦抜き出し)して
年代別にソートしたいのですがどうすれば良いでしょうか?
excel上で処理を行いたいので方法を伝授下さい。
上記の例で加工したとしたら、
年代(A列) データ(B列) の順番で下記のようになるようにしたいです。
1958 吸血鬼ドラキュラは(1958年)のイギリスのハマー・フィルム・プロダクション
1962 山本薩夫監督による『忍びの者』(1962年)は作品
1963 続・忍びの者』(ぞく しのびのもの)は、(1963年)公開の日本映画
宜しくお願いします。
No.1
- 回答日時:
他に「 ( 」がなければ
=Mid(「セル参照」,Find(")",「セル参照」.1)+1,3)
で西暦の4ケタの数字を抽出することができますので、オリジナルデータが入力された列の一つ前の列に西暦を抜き出した数字を並べ、その列とオリジナルの列のデータがある範囲を選択してユーザー設定のソート(キーを「西暦の数字として」をかければご希望のようになると思います。
みなさま、レスありがとうございます。
補足ですが”(”(半角)及び”)”(半角)は1行のデータ内には
西暦の前後以外には、存在しません。
それと、こちらで、データーを改ざんしてデータの形式を変更してしまいました。
(色々、データを修正してるうちに、誤って最初のデータを削除してしまいました。
修正前のデータは別のPCに残っているのですが....手元にありません。)
誠にすいませんが、下記で検討お願いします。
西暦は、必ず最後になります。
例:
山本薩夫監督による『忍びの者』(1962)
となります。
(”年”の文字は、データから削除しました。)
”(”の後に4桁の西暦番号で最後に”)”です。
勝手なお願いですが、フォローお願いします。
No.2
- 回答日時:
西暦4桁限定での抽出なら、下記の数式で可能です。
A2=MID(B2,FIND("年)",B2)-4,4)*1
みなさま、レスありがとうございます。
補足ですが”(”(半角)及び”)”(半角)は1行のデータ内には
西暦の前後以外には、存在しません。
それと、こちらで、データーを改ざんしてデータの形式を変更してしまいました。
(色々、データを修正してるうちに、誤って最初のデータを削除してしまいました。
修正前のデータは別のPCに残っているのですが....手元にありません。)
誠にすいませんが、下記で検討お願いします。
西暦は、必ず最後になります。
例:
山本薩夫監督による『忍びの者』(1962)
となります。
(”年”の文字は、データから削除しました。)
”(”の後に4桁の西暦番号で最後に”)”です。
勝手なお願いですが、フォローお願いします。
No.3
- 回答日時:
「山本薩夫監督による『忍びの者』(1962年)は作品」
などのデータが入力されている列の前が空いていれば、
(下記例はB1からデータが入力されている場合です)
1.
その空いている前の列(例はA1)に
=MID(B1,FIND("年",B1)-4,4)
と入れて、下にフィルドラッグする。
2.
A列とB列を選択して、「並べ替え」をすればいい。
列が空いていなければ、列を挿入する。
みなさま、レスありがとうございます。
補足ですが”(”(半角)及び”)”(半角)は1行のデータ内には
西暦の前後以外には、存在しません。
それと、こちらで、データーを改ざんしてデータの形式を変更してしまいました。
(色々、データを修正してるうちに、誤って最初のデータを削除してしまいました。
修正前のデータは別のPCに残っているのですが....手元にありません。)
誠にすいませんが、下記で検討お願いします。
西暦は、必ず最後になります。
例:
山本薩夫監督による『忍びの者』(1962)
となります。
(”年”の文字は、データから削除しました。)
”(”の後に4桁の西暦番号で最後に”)”です。
勝手なお願いですが、フォローお願いします。
No.4
- 回答日時:
いろいろなやり方があるとは思いますが、
たとえばB列にデータがあるとして、
必ず「年」という文字の前に西暦が4桁で入っているのですから、
他に「年」という文字がないという前提がつきますが、
=mid(b1,(find("年",b1)-4),4) -4で良いのかどうかちょっと怪しいですがそこは調整してください。
で年を切り出せないでしょうか?
みなさま、レスありがとうございます。
補足ですが”(”(半角)及び”)”(半角)は1行のデータ内には
西暦の前後以外には、存在しません。
それと、こちらで、データーを改ざんしてデータの形式を変更してしまいました。
(色々、データを修正してるうちに、誤って最初のデータを削除してしまいました。
修正前のデータは別のPCに残っているのですが....手元にありません。)
誠にすいませんが、下記で検討お願いします。
西暦は、必ず最後になります。
例:
山本薩夫監督による『忍びの者』(1962)
となります。
(”年”の文字は、データから削除しました。)
”(”の後に4桁の西暦番号で最後に”)”です。
勝手なお願いですが、フォローお願いします。
No.5
- 回答日時:
こんばんは!
VBAでの一例です。
Sheet1のデータはA列に入っていて、1行目からデータがあるとします。
Sheet2に表示するようにしてみました。
画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub test() 'この行から
Dim i, k As Long
Dim str1, str2 As String
Dim ws As Worksheet
Set ws = Worksheets(2)
ws.Cells.ClearContents
Application.ScreenUpdating = False
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
For k = 1 To Len(Cells(i, 1))
str1 = StrConv(Mid(Cells(i, 1), k, 7), vbNarrow)
str2 = Mid(str1, 2, 4)
If IsNumeric(str2) And Mid(str1, 6, 2) = "年)" Then
With ws.Cells(Rows.Count, 1).End(xlUp).Offset(1)
.Value = str2
.Offset(, 1) = Cells(i, 1)
End With
End If
Next k
Next i
Application.ScreenUpdating = True
ws.Columns("A:B").Sort key1:=ws.Cells(1, 1), order1:=xlAscending
ws.Columns.AutoFit
End Sub 'この行まで
※ 今後もデータが増えるというコトですので、Sheet1のデータ変更があるたびにマクロを実行してみてください。
参考になれば良いのですが・・・m(_ _)m
みなさま、レスありがとうございます。
補足ですが”(”(半角)及び”)”(半角)は1行のデータ内には
西暦の前後以外には、存在しません。
それと、こちらで、データーを改ざんしてデータの形式を変更してしまいました。
(色々、データを修正してるうちに、誤って最初のデータを削除してしまいました。
修正前のデータは別のPCに残っているのですが....手元にありません。)
誠にすいませんが、下記で検討お願いします。
西暦は、必ず最後になります。
例:
山本薩夫監督による『忍びの者』(1962)
となります。
(”年”の文字は、データから削除しました。)
”(”の後に4桁の西暦番号で最後に”)”です。
勝手なお願いですが、フォローお願いします。
-----------
返事を書いている間に回答をいただきました。
VBAを試してみたいと思います。
検証に時間を戴けると幸いです。
データを改ざんしてしまったの提示頂いたでマクロで不具合があればフォローお願いします。
(VBAも一応、操作できますが”マクロ使い”でないので詳しい内容になると??です。)
No.6
- 回答日時:
No.5です!
西暦は(1962)のようになっているというコトですので・・・
前回のコードの少し手を加えてみました。
(括弧や数値は全角でも半角でも対応できます)
もう一度手を加えたコードを載せておきます。
Sub test() 'この行から
Dim i, k As Long
Dim str1, str2 As String
Dim ws As Worksheet
Set ws = Worksheets(2)
ws.Cells.ClearContents
Application.ScreenUpdating = False
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
For k = 1 To Len(Cells(i, 1))
str1 = StrConv(Mid(Cells(i, 1), k, 6), vbNarrow)
str2 = Mid(str1, 2, 4)
If IsNumeric(str2) And Right(str1, 1) = ")" Then
With ws.Cells(Rows.Count, 1).End(xlUp).Offset(1)
.Value = str2
.Offset(, 1) = Cells(i, 1)
End With
End If
Next k
Next i
Application.ScreenUpdating = True
ws.Columns("A:B").Sort key1:=ws.Cells(1, 1), order1:=xlAscending
ws.Columns.AutoFit
End Sub 'この行まで
こんな感じではどうでしょうか?m(_ _)m
No.8
- 回答日時:
添付図参照
Sheet1!B2: =MID(A2,FIND("年)",A2)-4,4)+ROW()/1000
Sheet2 の範囲 A2:C2 を選択(アクティブセルは A2)して、次の[条件付き書式]を設定
数式が =ISERROR(A2)
フォント色 白
Sheet2!C2: =SMALL(Sheet1!B:B,ROW(A1))
Sheet2!A2: =INT(C2)
Sheet2!B2: =INDEX(Sheet1!A:A,MATCH(C2,Sheet1!B:B,0))
範囲 A2:C2 を下方にズズーッとドラッグ&ペースト
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで並び替え後にア行...
-
エクセルで行の高さ及び列幅の...
-
急ぎ!色のついたセルを非表示...
-
Excel2017 フィルタ昇順並びがA...
-
オートフィルタ後のデータから...
-
エクセル 複数行ある同一商品...
-
文字列を比較し、相違するフォ...
-
マクロの修正をお願いします
-
プルダウンに【なし、平均、デ...
-
特定の行を選択して別のシート...
-
EXCELで日付を比べ3か月以内の...
-
VBA 複数行の検索及び抽出
-
列と行の名前(重複あり)が交...
-
エクセル関数のSUMPRODUCTにつ...
-
エクセル VBA 行間隔を飛ばした...
-
EXCELの関数で大なり記号を複数...
-
基準日以前のデータを範囲を指...
-
エクセルの時刻のカウントが出...
-
エクセルで円グラフに引き出し...
-
エクセルで文字が白くなる
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
基準日以前のデータを範囲を指...
-
エクセルで行の高さ及び列幅の...
-
オートフィルタ後のデータから...
-
Excelで並び替え後にア行...
-
急ぎ!色のついたセルを非表示...
-
エクセルの時刻のカウントが出...
-
【Excel VBA】指定した行の最大...
-
時間の重複チェック
-
エクセル関数について
-
プルダウンに【なし、平均、デ...
-
エクセル VBA 行間隔を飛ばした...
-
Excel 最小二乗法 二次関数
-
文字列を比較し、相違するフォ...
-
EXCEL 最終行のデータを他のセ...
-
EXCELで日付を比べ3か月以内の...
-
マクロで行の高さを設定したい
-
エクセル 複数行ある同一商品...
-
VBA 複数行の検索及び抽出
-
エクセル関数のSUMPRODUCTにつ...
おすすめ情報