Kato Ryo Official Site

抽象度とエネルギーを上げる

【工事中】Excelの配列の使い方①

2017/05/26
 
この記事を書いている人 - WRITER -
Pocket

【配列】

  • 複数のデータを一つの塊として扱ったもの。例えば、セルA1~E5に数値が入っていて、それを一塊のデータとして扱いたい、というようなケースをイメージすればよい。
  • また、Excelで配列を使った数式を配列数式(英語ではarray formulas or CSE formulas)という。

 

【配列数列を利用することによるメリット】

  • 作業用のセルを使用しなくても、複雑な計算が行える
  • 普通の数式では長くなってしまう計算を簡潔に記述できる
  • 一般的な数式ではできない処理を行える(可能性がある)

 

【配列を利用することによるデメリット】

  • 多用するとPCに余計な負荷がかかる
  • 配列数式を理解している人は少ないので、保守・管理ができる人員が限られてしまう

 

【配列数式(array formulas)の入力の仕方】
通常の数式では、数式を入力後、Enterキーを押してその内容を確定するが、配列数式の場合は、Ctrl+Shift+Enterを同時に押すことで、数式を確定する。
そうすると {=SUM(A1:A5,B1:B5)} という風に、通常見られない波括弧 { } 付きで、数式が、数式バーに表示される。この波括弧は、配列数式を表すためのものとして、自動で入力されるので、自分で入力する必要はない(というか、自分では入力できない)。

 

【行番号を返すROWという関数を使った配列数式の例】
ROW関数は引数に指定した範囲の行番号を返す関数だ。書式は=ROW(範囲)。例えば、あるセルに =ROW(A1) と入力すると、A1セルの行番号を返すので 1 と表示される。

ここでROW関数を配列数式として使用した場合の例を示す。

例えばセルA11に、配列数式ではなく、通常の数式として =ROW(A1:A10) と入力した場合、A1セルの行番号が関数の戻り値となるので、1と表示される。

次にセルA11に、配列数式として {=ROW(A1:A10)} と入力した場合、A1セルの行番号だけでなく、A1セル~A10セル、計10個のセルの行番号(={1,2,3,4,5,6,7,8,9,10})が配列として返されるのだが、配列数式を入力したセルが1つしかないため、この場合は、配列の中の一番最初の要素である 1 がセルに表示される。(つまり、通常の数式を入力した場合と見た目は同じ。)

これでは配列数式のありがたみがないので、{=SUM(ROW(A1:A10))}と入力してみる。すると、55と表示される。これはどういうことかというと、ROW(A1:A10)を配列数式として入力することで、1,2 …,9,10という数値が配列として返され、さらにそれを合計するという意味になる。つまり、=1+2+3+4+5+6+7+8+9+10 という計算が行われるので、セルに55と表示されるわけだ。

 

次に、その発展版。
1.セルA11~A20を選択する。
2.F2キーを押す。そうするとセルA11~A20を選択したまま、A11のセルに式を入力できるようになる。
3. 配列数式として {=ROW(A1:A10)} と入力する(…前述の通り、波括弧 {} は入力してはいけない)

するとどうだろう、セルA11~A20に1,2,3,…,9,10と表示されるではないか。また、各セルの式を見てみると、全て {=ROW(A1:A10)} となっている。
これはA1~A10に対応するセルとしてA11~A20のセルを使い、各セルに =ROW(A1:A10) の結果を表示する、という動作になっている。
もう少し詳しく説明すると、セルA11ではセルA1の行番号、セルA12ではセルA2の行番号、…、セルA20ではセルA10の行番号を表示している。

今回の例では、何のためにわざわざ配列数列を使ったのか?という感じだが、おいおい、実務に役に立つ例を書いていくつもり。

この記事を書いている人 - WRITER -

- Comments -

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Copyright© 抽象度とエネルギーを上げる , 2017 All Rights Reserved.