『同じ文字を含んだセルごとに並べ替えたい』(あああ) AとBのセル上にセルが並んでいます。Bのセルには○○○-D,○○○-F,○○○-Gとランダムで並んでいるセルがあります。このBに並んでいるセルを-Dとつくものは-Dごとに-Fとつくものは-Fごとに上から詰めて並べ替えたいのです。 この並べ替えるときにはAのセルもBのセルと一緒に動くようにしたいです。 稚拙な文章で分かりにくいかと思いますがどうぞよろしくお願いします。 < 使用 Excel:Excel2013、使用 OS:Windows7 > ---- 2行目からデータが並んていると仮定して C2のセルに下記数式を貼り付けて、下方向にオートフィル =MID(B2,SEARCH("-",B2),LEN(B2)-SEARCH("-",B2)+1) その後、C列の値を使って並び替えをすれば良いかと。 (名無し) 2018/06/22(金) 11:55 ---- C列等にRIGHT関数で右2文字を取り出すだけでも良いかもですね。 (???) 2018/06/22(金) 12:00 ---- 回答ありがとうございます。すみませんこれだと○○○-Dの-Dの部分しか取り出せませんでした。あと、○○○-Dや○○○-Fの○○○の中の文字は全て違うものになります。 言葉足らずで申し訳ありませんでした。 (あああ) 2018/06/22(金) 13:00 ---- 名無しさんや???さんの仰るようにして、C列に "-D","F","-G" と表示させて、A列〜C列を並び替えの対象に選択して、C列でソートすることで解決するのでは? (りょぽりょぽ) 2018/06/22(金) 13:05 ---- -Dだけでなく○○○の部分も入れて抽出できないでしょうか? あとできれば関数だけで自動で並べ替えを行いたいのですが・・・ (あああ) 2018/06/22(金) 13:21 ---- >Dだけでなく○○○の部分も入れて抽出できないでしょうか? ソートする条件として、B列の末尾2文字を使う旨の仕様であると解釈してますが違うのですか? >あとできれば関数だけで自動で並べ替えを行いたいのですが・・・ 現在データが入力されているセルとは別のエリアに並び替えた結果を表示させるなら関数でもできそうですがとても重くなりますのでお勧めしません。 あとはマクロを使う手がありますが、こちらは別の方にお願いしたいと思います。 (りょぽりょぽ) 2018/06/22(金) 13:38 ---- ハイフンの手前までを抽出 C2=LEFT(B2,SEARCH("-",B2)-1) ハイフン以降を抽出 D2=RIGHT(B2,LEN(B2)-SEARCH("-",B2)+1) 並び替え 自動記録したまんまですがこんな感じ Sub Macro1() Range("A2:D10").Select ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("D2"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").Sort .SetRange Range("A2:D10") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub (名無し) 2018/06/22(金) 14:22