大量のデータが入力されている表を見る場合に、1行ずつ交互に背景色が付いていると、データが見やすくなります。
この記事では簡単に「しましま模様」にする方法を説明します。
これ意外と、めんどくさいねん
そういう人には、うってつけの内容だよ
「オートフィル」で「しましま」に
しましまにする範囲の1行だけ、背景色を変更します。
選択範囲を1行増やして、色が付いた範囲と、色が付いていない範囲を選択状態にします。(Shift+↓を押すと楽です。)
その状態で、マウスカーソルを選択範囲の右下に持っていくと、カーソルが「+」マークに変わりますので、ダブルクリックします。
ダブルクリックすると「オートフィル」機能が働き、データが最終行までコピーされます。
2行毎にコピーされるので、背景がしましまに変わります。
この性質を利用するために、先程選択範囲を1行増やした訳です。
ただし、このままではセルの値も変わってしまうので、右下の「オートフィルオプション」ボタンで「書式のみコピー(フィル)」を選択します。
「書式のみ」をコピーすることにより、値はそのままで1行おきに背景色が違う「しましま」模様の表が完成です。
2行をコピーして、しましま にしたい範囲を選択後、[右クリック]➔[貼り付けのオプション]➔[書式設定]でも同様の結果になります。
注意
「オートフィル」や「書式の貼り付け」で設定したしましま模様は、行の追加削除時にずれてしまうので、しましま模様が崩れます。
以降に説明する「テーブル」と「条件付き書式」の場合は行を削除しても、しましま模様は崩れません。
「テーブルに変換」で「しましま」に
から追加された「テーブル」機能を使います。
表をテーブルに変換すると自動で「しましま模様」に装飾されるので、これを利用します。
表をテーブルにする方法は以下の3通りあります。
- [ホーム(タブ)]➔[テーブルとして書式設定]から任意のテーブルスタイル(見た目)を選択
- [挿入(タブ)]➔[テーブル]をクリック
- 「ショートカットキー」のCtrl+Tでテーブルの作成
テーブル作成のダイアログが表示されますので、テーブルに変換するデータ範囲を指定します。
このとき、アクティブセルが表内にあると、Excelがデータ範囲を自動判別して、自動で入力してくれます。
OKを押すと、表がテーブルに変換され、しましま模様になります。
[テーブルデザイン]➔[テーブルスタイルのオプション]から、しましま模様を「行」ではなく「列」にすることも可能です。
テーブルの背景色だけでなく、他に「見出し行」「フィルターボタン」を消したり、「最初の列」「最初の行」を太字にできるので、お好みで変更してください。
表からテーブルに変換された事で、特に問題は無いどころか、表より利便性が上がるのですが、「テーブルは嫌だ」、「テーブルだと不都合が生じてしまう」といった方のために、テーブルを元の表に戻す方法があります。
[テーブルデザイン]➔[範囲に変換]をクリックすると、しましま模様の状態を維持したまま、テーブルが表に戻ります。
ポイント
「テーブルデザイン」タブが表示されない場合、テーブル内のセルを選択するとタブが表示されます。
「条件付き書式」で「しましま」に
少々難易度が上がりますが、「条件付き書式」とExcel関数を使って「しましま模様」を設定します。
Excel関数は以下の2つを使用します。
Excel関数 | 簡易説明 |
---|---|
=ROW([参照]) ([参照]は省略可) | 参照に指定されたセルの行番号を返します。 省略した場合は、入力されているセルの行番号を返します。 例1)=ROW(B5) は「5」と表示 例2)「C3」セルに=ROW()と入力した場合は「3」と表示 |
=MOD(数値,除数) | 数値を除数で割ったときの「余り」を返します。 例)=MOD(7,2) は、7÷2=3 余り1 なので「1」と表示 |
=ROW() 関数を設定したセルは、行番号が表示されます。
上図では「G2」セルに設定したExcel関数「=ROW()」 は「2」を、「G17」セルに設定した「=ROW() 」は「17」が表示されています。
=MOD() 関数は「数値」と「除数」の引数2つが必要です。
7÷2=3 余り1 となりますが、MOD関数はこの余りの「1」が欲しい場合に使う関数です。
1÷2=0 余り1
2÷2=1 余り0
3÷2=1 余り1
4÷2=1 余り0
と、連番に対して「2」で割ると余りが「1、0、1、0・・・」とループして続いていくのがわかるかと思います。
=ROW() 関数の値を見てみると、2~17までの連番になっています。
この2つの性質を利用して、=ROW() 関数で求めた連番を、MOD() 関数を使って「2」で割った余りを出し、その数が1なら背景色を変えるという条件にすれば「しましま模様」ができそうです。
しましま模様にする範囲を選択後に、[ホーム(タブ)]➔[条件付き書式]➔[新しいルール]をクリックします。
条件付き書式のダイアログボックスが表示されますので、「数式を使用して、書式設定するセルを決定」を選択して、「次の数式を満たす場合に値を書式設定」の入力欄に「=MOD(ROW(),2)=1 」と入力してください。
次に、「書式」ボタンをクリックし、[塗りつぶし(タブ)]➔[背景色]から任意の色を選択後、OKボタンをクリックします。
しましま模様が設定できました。
しましま模様の位置を1行ずらす場合は、条件付き書式の入力欄で
「=MOD(ROW(),2)=0 」に変更してください。
また、しましま模様を3行おきにする場合は、条件付き書式の入力欄で
「=MOD(ROW(),3)=1 」に変更すれば可能です。
行ではなく、列にする場合は、「=MOD(COLUMN(),2)=1 」に(「ROW」を「COLUMN」に)変更してください。
ポイント
7 ÷ 2 の「商」である「3」はMOD関数では求められません。
7 ÷ 2 の商を求める場合は
- =QUOTIENT(7,2)
- =INT(7/2)
- =FLOOR(7/2,1)
等があります。
まとめ
日常生活で余りを求める事は稀かと思いますが、プログラムの世界では周期性のある値を求める時に、余りを利用する事がよくあります。
例えば、身近にある周期性のあるものといえば、「曜日」等がそれに当てはまります。
「10000日後は何曜日か?」という問題があった場合、余りを考えると簡単に解くことができます。
10000 ÷ 7 =1428 余り 4 となるので、4日後と同じ曜日である、が答えになります。
実際に今日が2023/01/01(日曜日)だとすると、10000日後は2050/5/19(木曜日)となり、4日後と同じ曜日になっています。(ちなみにExcelで本日から10000日後の曜日を出す場合の数式は「=TEXT(TODAY()+10000,"aaa")」です。 )
話が脱線してしまいましたが、「しましま模様」にするには、テーブル化するのが一番簡単で便利です。
シマシマにしてシマウマになってみたんやけど、どや?。
車に轢かれたようにしか見えない・・・