2014年5月12日月曜日

Excelの関数実用例

最近、Excelを使ったデータの編集作業を支援していたりするのですが、
一部では「最強のフロントエンドツール」なんていわれるくらいのExcelですので、
いろんなことができる事に改めて気づかされました。

今回は、その際に活用したExcelの実用例などを載せておきます。


●[E2]の値が変更対象シートに該当するデータであれば、"0"、
 そうでない場合には台帳よりデータを取得して結果を表示する
 (VLOOKUP)


=IF(E2="","",IF(ISNA(VLOOKUP(E2,変更対象シート!C$8:C$375,1,FALSE))=FALSE,"0",VLOOKUP(E2,台帳'!$B$13:$D$9587,3,FALSE)))

・VLOOKUP関数は、あいまい検索を許容しない事をお勧めします。
・この例では参照先の指定が絶対値ですが、きっちりやるならテーブル化をお勧めします。


●列数が異なる複数のシート間で、値参照を利用してデータを表示する


 1つのデータが、複数行にまたがる。なんてことはあると思います。
 システム観点では1データは1行である必要がある。

 そんなときにもExcelではよきに計らってくれる方法があります。

 詳しくまとめようとするとそれだけで1記事になってしまいそうなので
 キーワードだけまとめ。
 OFFSET , ROW()
 この関数を使う事で、対処できます。

=OFFSET(参照先シートのデータ参照起点(絶対値),(ROW()-このシートの開始行位置)*このシートのデータ1行あたりのExcel行数,参照起点からの列移動数)

OFFSETを活用すると、複数行のデータを1行に纏める。ってことも関数だけで実現できます。


●データ参照の基本

 =IF(A2="","",A2))
 完璧な処置ではないですが、これを入れるか入れないかで参照の完成度が違います。
 ⇒入れないと、ゼロがセットされてしまう事が多いですね。
 完璧ではない。といったのは、条件として=""としてますが、これが、
 実体はEmptyだったりすること、実体Emptyだったとしたときに""をセットしてしまうこと。
 この両方が対応できてないので「完璧ではない」

 そこまで対応すると計算式が増え、ファイルサイズも増え、自動計算も遅くなり、と
 色々でメリットも出てくるので、殆どのケースではこれでいいのではと思います。


●参照されるデータの基本

  Excelでは、「数値」と「文字」は別物なので、見た目が一緒に見えるのに
  VLOOKUPで比較しても一致しない事があります。
  そんなとき活用するのがTRIM
  =TRIM(A2)
  とするだけで、文字認識されます。




まとまりきらないのでこのへんで。

まだ随時公開していきたいと思います。

0 件のコメント: