エクセル初心者へ

 エクセルを学ぶ時はどこで学ぶでしょうか?おそらく大学で少しかじって現場だったりで本格的にという人が多いのではないかなぁと思います。
 そのため基本を学んでないで、いわゆる「ネ申エクセル」や「方眼紙エクセル」が当たり前の状態で実務経験を積み継承されているのが現状なのではないかなぁと思います。

ネ申エクセル・方眼紙エクセルとは
 ネ申エクセルとは、紙へ印刷することを前提に、セルの結合や罫線(けいせん)機能などをフルに使い、見栄えを優先して作ったExcelファイル(紙エクセル→神エクセル→ネ申エクセル)のこと。
 方眼紙のようにセルを正方形に整えて、レイアウト調整をする方法をさす。
 よく議論になる「ネ申エクセル」「方眼紙」エクセルですが、私の場合は、必要に応じて良しとしています。
 民間企業だろうがなんだろうか、決算なり何なりは基本、紙で提出することになります。
 そして、受け取った方は、手で入力するか、OCRで読みとるかで、結局は紙ベースなわけです。
  データで送付したいのはわかりますが、マルウェアの危険性を考えたら、紙ベースは妥当かなぁと思ったりしてます。
 ちょっと話はそれましたが、紙ベースで提出する必要があったりするものについて、これはエクセルの正しい使い方じゃないと目くじら立てる必要性はないですし、エクセルしか使えない環境も当然あると思います。
 なので、エクセルをイラストレーターのようにドロー系ソフトとして使うのもアリですし、紙ベースの様式として使うのもアリと思います。

そもそもエクセルは表計算ソフト
 文書系の様式をエクセルで統一したいというのはわかります。私個人もそれでいいと思います。
・だってシートで分けれるから統一様式の場合、様式をシートごとにすればいいから
・方眼紙みたいな使い方は基本やめたほうがいいと思うけど、関数使うならアリでしょ

と思うからです。
 ところが、
・シートが複数あって同じことを何度も入力する必要がある
・項目に図形で○をつけさせる
・1セル1文字のような方眼用紙のようにつかう
・入っている数式が=A1+B1+C1と関数を使っていない
・やたらとセルを結合したがる

というケースが散見するのが現状です。
 思うに、「みんなエクセルが表計算ソフトだって認識していないんじゃないか」ただ、与えられた環境で使い続けているだけなんじゃないか?と思ったしだいです。

表計算ソフトって何をするの?
表計算ソフトの正しい使い方としては、数学的な使用方法、例えば
・グラフの作成
・データ分析
・商品管理、会計業務
・シミュレーション

が、まず基本になります。本来はこのような能力に、文書作成機能が備わり、進化したのがエクセルなわけです。

文書作成になぜエクセルを使うのか
  例えば、行政関係の書類の場合は、通達文がありその通達文の運用規則があって、規則の中に、使用すべき各書式が定められています。
 法令上、この様式を使えといっているのですから、民間人として何かしら申請を行う場合は、統一された様式を使用しなくてはなりません。
 当然今の世の中、手書きということはしないでしょうから、パソコンを使うことになります。
 ワードやエクセルはとても便利な反面、互いにデータを読み込むことはできません(一太郎はエクセルのシートを一太郎のシートとして追加できる)。
 そうなると使用する様式や書式を一つのファイルで扱いたいと思うのはとても自然なことのように思います。
 また、多くのケース、「使用するアプリケーションが1つで済む」のもメリットと言えます。
 どんなものでもエクセルで統一してしまえばエクセルさえあれば読み込むことができます。
 ただ、それはそれで、合理的な選択だとは思いますが、正直賢いとは言えないと思います。
 私の場合、なぜエクセルで統一するか一言で言えば、関数が使えるからにほかなりません。
 エクセルでフォームを作れば、データ入力だけで、請求書の作成もできますし、データを修正するときも、ワードや一太郎のようなワープロソフトに比べると圧倒的に楽です。
 もちろん私自身、報告書などのワープロソフトが適当という分野に関しては、ワードや一太郎を使用します。

関数って何ができるの?
エクセルの関数は
・財務関数 FINANCIAL FUNCTIONS
 RATE関数(投資の利率を返す)
・数学/三角関数 MATH & TRIGONOMETRY FUNCTIONS
 SUM関数(引数リストに含まれる数値の和(合計値)を求める)、MOD関数(割り算の余りを返す)
・統計関数 STATISTICAL FUNCTIONS
 COUNT関数(引数リストに含まれる数値の個数を返す)
・検索/行列関数 LOOKUP & REFERENCE FUNCTIONS
 ROW関数(指定された値の行番号を返す)、COLUMN関数(指定された値のの列番号を返す)、VLOOKUP関数(検査値に一致する行の指定した列番号の値を返す)、INDIRECT関数(文字列で指定されるセル参照を返します。)
・データベース関数 DATABASE & LIST MANAGEMENT FUNCTIONS
 GETPIVOTDATA関数(ピボットテーブルに格納されているデータを返します。)
・日付/時刻関数 DATE & TIME FUNCTIONS
 DATE関数(指定した日付に対応するシリアル値を返す)
・文字列操作関数 TEXT FUNCTIONS
 SUBSTITUTE関数(指定された文字を置き換える)、MID関数(対象の文字列を指定の位置から指定数まで抜き出す)、FIND関数(値から指定の文字列が何番目の位置にあるかを返す)
・論理関数 LOGICAL FUNCTIONS
 IF関数(対象となる値がTrueの場合とFalseの場合の結果を返す)
・情報関数 INFORMATION FUNCTIONS
 ISERROR関数(対象となる値がエラーの場合Trueを返す)
・DDE/外部関数 DDE & EXTERNAL FUNCTIONS
 SQL.REQUEST関数(SQLサーバーに接続し、ワークシートのクエリ(処理要求)を実施する)
・エンジニアリング関数 ENGINEERING FUNCTIONS
 DELTA関数(2つの値が等しいか)、DEC2HEX関数(10進数を16進数に変換)
とジャンルによって多岐に渡ります。
 財務系の関数を見るとさすが元々会計業務などに使われていたソフトだなと思いますよね。

マクロとは?
 マクロとは、一定の動作を記録し再生する機能のことを言います。
 エクセルなどのマイクロソフトオフィス製品には、
・ビジュアルベーシック・フォー・アプリケーションズ(VBA)
が搭載されており、実行させることができます。
 エクセルで言うところのマクロとはVBAを指します。
 VBAは通常のマクロ(記録再生)の他にプログラミングを行なうことでより便利にすることができます。
 マクロのメリットは、関数に比べると「他者が改変しずらい(関数が壊れない)」「動作が関数に比べて軽い」という特徴があります。
 関数になれてきたら、一度触れてみるといいでしょう。

まずは基本的なこと
 基本的なこととして、以下の点について留意してください。
・ 1行目は基本的に空欄にしない
 関数やマクロを使用する時誤動作を起こすことがあるので、基本は1行目と1列目は空白にしないようにしましょう。とくに、データベースとして使用するシートは原則的には、1行目は項目行とする。
 印刷用の様式や、入力フォームなどのシートは1行目を空欄にしても良い
 私の場合は1行目を空白にするのはマクロを組む時にインデックス代わりにするために使用したり、印刷物を扱うときに1行目を変数として扱うため、各シートのセルの位置を共通にするためにあえて空白行を入れています。
 場合によっては、COLUMN関数(=COLUMN()と入力されたセルの列番号を返す関数)を入力することもある。 
・A列目(1列目)は基本的に空白にしない
 特殊な用途(マクロを使用しないで入力フォームを作成するなど)以外は空白にしないほうがいいです。
 見た目を気にして、A列を空白行にするのは避けてください。
 文書の校正をする場合は「印刷プレビュー」を使用しましょう。
・セルはむやみに結合しない
 印刷が必要な書類以外はセル結合はしないこと。
 結合が悪である理由は「左上のセル以外は0として認識する」「フィルタがかけれない」「関数やマクロを使う際の障害になる」からです。
 印刷したりPDFで出力する場合は、適切に結合すれば問題ない(むしろ結合した方がいい)です。
・セルには1データにする
 官公庁や、ITに疎い企業にありがちな、 

+++++++++++++++++++++++++++++++++++
|  |    A     |    B   |
+++++++++++++++++++++++++++++++++++
| 1 | 03-1234-5678|        |
|   | 03-5678-1234|        | 
+++++++++++++++++++++++++++++++++++      
| 2 |          |        | 
+++++++++++++++++++++++++++++++++++
 ・・・「A1」セルに電話番号が2つ、しかも改行で入力されている

 このようなセルにデータの種別が複数ある場合です。関数で抜き出すことはできなくはないですが、データが複数あるセルを使用する企業の場合入力されているデータ数も、1個~3個など行によってばらつきがあるため、収拾がつかないです。
 同じ項目が複数必要な場合は、項目を「電話番号1」「電話番号2」と最初から別のセルになるようにします。
 また、「(TEL)03-1234-5678」と入力されているセルがある場合、これはパット見1データと思いきや、「(TEL)」というデータと「03-1234-5678」というデータの複数入っていると認識してください。
・「'」シングルクォーテーション+文字は使わない
 エクセルの特性上、先頭が「0」となる場合諸略され「312345678」と表示されてしまうため、「’0312345678」とするとセルを文字列として認識させるテクニックがあります。
 このテクニックですが、便利ではあるもの、検索がしづらい等の問題があるので、基本的には用いいることは避けた方がいいと思います。
 表示方法を変更する場合は、セルの書式設定で変更するか、関数を使うセルならば、TEXT関数を使用した方が、可用性の点で優れています。
 基本的な考えとして、セルに必要なデータ以外入れないということなのですが、この問題が起こりやすいパターンは「電話番号」と「住所の枝番地」です。
 「電話番号」の場合は「03-1234-5678」のようにハイフンを間に入れることで対応できます。
 「住所の枝番地」は、ハイフンを入れてもNGの場合があり、研究機関はこの問題を受けて、エクセルの使用を禁止にしたとニュースになっていました。「住所の枝番地」は、ハイフンを入れると「1-2-3」が「日付」として認識してしまう仕様となっています。日付として自動認識してしまうため、研究機関はそれに対して「めんどくせーからエクセル禁止な」となってしまいました。
 シングルクォーテーションを使う場合は極力避けたほうがいいでしょう。

エクセルの特徴
 エクセルは、なるべく手間をかけないように特定の入力方式に対して、そのデータがなんのデータなのか自動的に判断する機能が備わってます。
特に日付です。
 ・スラッシュやハイフンを含まれた数字を(1/2/3、1-2-3、1/23、1-23など)を日付にする
 ・コロンが含まれている数字(12:3、12:3:45)を時間にする
一見便利なようですが、前述のように多くの問題がはらんでいるので、扱いは注意が必要です。
日付はデータ上は1つの値なのですが、表示方法が1/2というような形式のため、1/2をデータとして扱っているわけではありません。1/2は1月2日であり、2020/1/2であったり、2021/1/2であったりするからです。そのため、日付を扱う場合、シリアル値というものが固有のデータ(数値)として処理します。
シリアル値「0」は「1900/1/0」
 日付のシリアル値の基準は当然の如く「0」がスタートとなります。これを日付として表示すると「1900/1/0」と表示されます。
「2020/1/1」の場合は「43831」となります。つまり、2020/1/1は1900/1/0から43831日後というわけです。日付から○日前という場合は、シリアル値に+○した日数を表示することになります。
時間のシリアル値「1」は「0:00(24:00)」
 時間のシリアル値は、以下のようになっています。

1:00:00 0.04166666667
2:00:00	0.08333333333
3:00:00	0.125
4:00:00	0.1666666667
5:00:00	0.2083333333
6:00:00	0.25
7:00:00	0.2916666667
8:00:00	0.3333333333
9:00:00	0.375
10:00:00 0.4166666667
11:00:00 0.4583333333
12:00:00 0.5
13:00:00 0.5416666667
14:00:00 0.5833333333
15:00:00 0.625
16:00:00 0.6666666667
17:00:00 0.7083333333
18:00:00 0.75
19:00:00 0.7916666667
20:00:00 0.8333333333
21:00:00 0.875
22:00:00 0.9166666667
23:00:00 0.9583333333

すごく中途半端だなぁと思うと思います。それは時間は60進数を利用しているからです。そのため、割り切れない部分が出てきています。そのため、計算がちょっとめんどくさいのが時間の計算の特徴です。

まとめ
 エクセルは誰でも使える便利なツールです。でも基本的な使い方とよくわかっていないと難しいのもまた事実です。
 なんでもできるがゆえに何もできないということになりがちです。
 ただ、この世の中には「エクセル」「関数」「サンプル」などで検索すると色々なサンプルがあるので、ぜひコピペで運用してみてください。

この記事が気に入ったらサポートをしてみませんか?