ID非公開

2021/12/4 17:06

44回答

エクセルで、縦書きの表(項目)を見出し毎にソートするような方法はありませんか? 例えば、 1月 ○○○○ ×××× 3月 ☆☆☆☆ ※※※※ 2月 △△△△ □□□□

ベストアンサー

0
画像

ThanksImg質問者からのお礼コメント

皆様回答ありがとうございました。 簡単で理解しやすかったこちらの方をBAに。

お礼日時:2021/12/4 19:50

その他の回答(3件)

0

添付図参照(Excel 2019) セル B1 に式 =LEFT(A1,LEN(A1)-1)+ROW()/1000 を入力⇒ 式 =IFERROR(LEFT(A2,LEN(A2)-1)+ROW()/1000,B1+ROW()/1000) を入力したセル B2 のフィルハンドルを「エイヤッ!」とダブルクリック(添付図左)⇒列範囲 A:B を選択⇒Tabキーをツン(セル B1 がアクティブになる)⇒ 昇順に並べ替え(添付図右)

画像
0

例えば、 1月 ○○○○ ×××× 3月 ☆☆☆☆ ※※※※ 2月 △△△△ □□□□ のような表の作り方をしてはいけない、とあちこちのサイトに書いてありますよね。一つのデータの塊に3個のデータですから、まともなデータベースなら3列の表です。 A~Cのデータベース型の表に対し、 E2セルに =IFERROR(INDEX(A:C,ROW(A4)/4+1,MOD(ROW(A4),4)+1),"")&"" と数式をいれて下にコピーしておきます。 これがデータベースのあるべき姿です。E列を並べ替えるのではなく、A~C列のデータベースのA列を並べ替えるのが本筋、というものです。 他にも売り上げなどの集計やデータの抽出にデータベース型の表は力を発揮しますよ。

画像
0

例えばA2セルから下方にそのようなデータが有るとします。 B1セルには次の式を入力して下方にドラッグコピーします。 =IF(ISNUMBER(SUBSTITUTE(A2,"月","")*1),A2,IF(B1="","",B1)) その後にB列を重点にして並び替えをすればよいでしょう。 作業後はB列を削除してもよいでしょう。