エクセルとの付き合いは〇十年のパート事務員が僭越ながら開催しています、エクセル塾です。
前回はいろいろ使えるフィルターでした。
【Excel/初心者】エクセル塾:フィルター②いろいろ使えるフィルター
今回は、番外編マニアックネタ。表をシマシマにすると見やすいですよね。
テーブルでもシマシマのスタイルが多いですよね。
上記の表で、シマシマなのはいいんだけど、1行おきじゃなくてID毎のまとまりで色が変わったらここからここまでが同じIDだな、とわかりやすいですよね。でもテーブルだと、1行おきにシマシマにしてくれるけどID毎など不規則な行数だとシマシマにしてくれない。それをフィルターを使ってやってみたいと思います。
1.フィルターを使って表をブロックごとにシマシマにする方法
①ID毎の連番を振る
余白部分のE列に毎の連番を振っていきます。
セルE2に以下の式を入力し、最終行までコピーします。
=IF(B2=B1,E1,E1+1)
B列のIDが前の行のIDと同じなら同じ番号を、違ったら前の番号+1を入力する、という式です。
②ID毎の連番を2で割った余りを入力する
F列にE列に入力したID毎の連番を2で割った余りを表示する式を入力します。
ID毎連番が奇数の場合は1,偶数の場合は0が表示されます。
セルF2に以下の式を入力し、最終行までコピーします。
=MOD(E2, 2)
MODは対象を指定した数値で割った余りを返す関数です。MOD(対象、割る数)と指定します。
③フィルタでF列(ID毎連番を2で除算したあまりの列)で絞り込みし、セルの書式を設定する
フィルタの適用範囲をF列まで伸ばします。
F列を「0」で絞り込みし、セル範囲を指定して書式設定で薄い黄色で塗りつぶしします。
④フィルタを解除すると、ID毎にシマシマになっています
2.フィルターを使わないで表をブロックごとにシマシマにする方法
表の行数が大きい場合、上記のフィルターを使った方法だとエクセルに負荷がかかるようで、応答なしになってしまう、またはえらく時間がかかってしまう可能性があります。そんな時はF列の0/1で並べ替えして0(または1)のまとまりで書式設定して、そのあともともとの並びに戻す方法が早くて確実です。
1)前述1の①~③を行いF列に0または1を表示させます。
2)E列F列の式をコピー、値貼り付けして値に変換します
並べ替えをすると式がおかしくなってしまうのを防ぐためです
3)IDに関係なく、通し番号を振ります。並べ替えした後に元に戻すための通し番号です。
今回はA列に通し番号がありますが、せっかくなのでG列に通し番号を振っておきます。
セルG2に「=G1+1」などと入力して最終行までコピーする。(最後に値貼り付けして値にしておくことを忘れずに)
または、セルG2に1、セルG3に2と入力しセルG2~G3を範囲選択、右下の部分をダブルクリックすると、最後まで通し番号が振られます。
4)F列の0/1で並べ替えする
5)並べ替え後、0のまとまりだけを書式設定(薄い水色)する
表が大きくて0の最後、つまり最初の1がどこにあるかわからないよぅというときはF列を選択してCtrl+Fで検索、「1」を検索して探してそこに飛びます。
6)G列の通し番号で並べ替えして元に戻す
今回は以上です。およみいただきありがとうございました。途中からフィルタは関係なくなりました。
わたしはいつもこの方法で〇〇毎に色分けをやっていますが、もっといい方法があるよ!という場合はコメントなどで教えていただけると助かります。
次回はフィルターを使った行の削除です。
エクセル塾:フィルターシリーズ
エクセル塾シリーズ
コメント