月別アーカイブ: 2015年1月

[MOS] 受験のポイント:Excel 2013 エキスパートPart1 

MOS Excel 2013を受験してきたので、対策したことについて述べたいと思います。

まず、覚えるべきこと。

以前の記事でも触れましたが、DATEDIF関数はポップアップで引数リストが表示されません。
リボンからの操作もできない形になってます。
したがって、手入力で操作するしかありません。
DATEDIFはその引数リストおよび、第3引数の単位の定数(Y,M,Dなど)をしっかり覚えておく必要があります。

加えてTRANSPOSE関数の操作はしっかり練習しておきましょう。

  1. 貼り付けたい場所全体を選択
  2. TRANSPOSE関数を入力
  3. Ctrl + Shift + Enterで確定 ※修正時も。

個人的に特殊なのは、これくらいかと思っています。
あとはしっかりテキストを理解して練習し、スピードを上げていきましょう。
私はFOMの教科書を使って合格しましたので、テキストの内容としては十分かと思っています。

[MOS] 2013と2010の違い

MOS(Microsoft Office Specialist)試験の2013バージョンは前バージョンの2010から大幅に刷新されました。

1.単発式の問題から、ファイル作成式へ変更

2010までは単発の問題を一つずつ解いていく形でしたが
2013からは問題の指示に従いながら、一つのファイルを完成させていく形式になりました。
「指示の細かい日商PC」といった感じです。

試験形式が単発ではなくなったので「解ける問題から解く」という、従来の攻略法が通用しません。
基本的に出題順で解いていくことになります。

注意しなければならないのは、序盤の方でミスをしてしまうと、ドミノ式に後続の問題も不正解になる可能性がある点です。
1問ずつ慎重に操作していかないといけません。

たとえば、Excelで指定された書式でグラフを作ったとしても、そもそも表の値や計算式が間違っていたら、両方が不正解となってしまったりします。

序盤でのミスは大量失点に結びつきますので、注意しましょう。
残り時間を意識しつつも、正確な操作をしていくことが大事です。

2.試験勉強の方法

試験勉強そのものは2010の時と同じく、FOMあたりのテキストをしっかり理解できればよいようです。
試験プログラムを想定したソフトも入ってますから、ソフトの仕様もしっかり確認しましょう。
特に次にお話するサンプルを閲覧することはかなり重要です。

3.サンプルを小まめに確認する

先述のとおり、試験形式がファイル作成を行う形に変化したため、序盤のミスは命取りです。
それを回避する方法はサンプル(完成例)を小まめに確認することです。
Excelであれば、回答中に一通りの問題を解き終えたときのシートの完成図を画像で確認することができます。
これと数値が違っていたら、見直しすべきということになります。
ケアレスミスがあったとしても、サンプルを確認していれば気づきますので
特に最初のうちはしっかり見比べていきましょう。

4.Expert認定には二つの試験をクリアしなければならない

加えて、Expert(上級)の認定の手順もかわりました。
2010まではExpert試験を一つ受かれば、Expert認定がされました。
しかし、2013からはpart1、part2の二つの試験をクリアしないと認定されない仕組みになりました。
単純に受験料は倍かかります(泣)

以上、MOS2013に関して全体的な話をしてみました。

[Access] SQLでJOINをかけるときに括弧が必要

Accessで直接SQLを記述する場合、3つ以上のテーブルを結合する時には括弧をつける必要があります。

次の3つのテーブルを例に挙げます。

名簿
フィールド名 データ型
名簿ID オートナンバー
氏名 短いテキスト
職業ID 数値型
都道府県ID 数値型
職業
フィールド名 データ型
職業ID 数値型
職業名 短いテキスト
都道府県
フィールド名 データ型
都道府県ID 数値型
都道府県名 短いテキスト

ここで2つのテーブルをLEFT JOINしてみます。
次の記述は正常に実行されます。

SELECT 氏名, 職業名 
FROM 名簿 
LEFT JOIN 職業 ON 名簿.職業ID = 職業.職業ID

次に3つのテーブルをLEFT JOINします。
これは「演算子がありません。」とエラーがでます。

SELECT 氏名, 職業名, 都道府県名 
FROM 名簿
LEFT JOIN 職業 ON 名簿.職業ID = 職業.職業ID
LEFT JOIN 都道府県 ON 名簿.都道府県ID = 都道府県.都道府県ID

これは次のように括弧で囲むと正常に実行できます。

SELECT 氏名, 職業名, 都道府県名 
FROM 
(
名簿
LEFT JOIN 職業 ON 名簿.職業ID = 職業.職業ID
)
LEFT JOIN 都道府県 ON 名簿.都道府県ID = 都道府県.都道府県ID

以降、JOINするテーブルが増えるたびに括弧で囲むことになります。
同社製品のSQL Serverとは違いますね。

[使用環境]
Access 2013

「桁落ち」による誤差ついて

情報処理技術者試験で問われたことがあったので、「桁落ち」という現象と、それによっておこる誤差について述べます。

「桁落ち」を理解するためには有効数字による有効桁数を理解する必要があります。
有効桁数とは有効数字で構成された桁の数です。

これが問題になるのは浮動小数点数を取り扱う場合です。

物理の世界では測定値が信頼される数字となります。
例えば、測定によって得られた数値1.2と1.20は異なる意味を持ちます。

1.2は小数点第2位の数値は0なのかどうかわかりません。(測定できていない)
1.20は小数点第2位は0であると信頼できます。

浮動小数点数では正規化を行い、次のように表現します。

仮数部 × 基数指数部

例として、次のような数を挙げてみます。

1.234 × 10-6

これは仮数部が有効数字が4つ(1.234)で構成されているので、有効桁数は4桁となります。

次に、この数に近い数1.233 × 10-6で引いてみます。

1.234 × 10-6 – 1.233 × 10-6
= 0.001 × 10-6
= 1.0 × 10-9

仮数部は正規化される決まりになっています。
有効桁数は4桁(1.2341.233)から1桁(1.0)へ減ってしまいました。

このように、ふたつの数値の差が0に近い場合、減算により有効桁数が著しく減る現象「桁落ち」といいます。

加えて、1.0の小数部0は正規化のために埋めているだけなので、”信頼できる数値”ではありません。

コンピュータの仕組みとして、浮動小数点数の表現には符号、指数部、仮数部の3つに対して有限の領域が与えられます。
※コンピュータは2進数の世界なので、基数は2となります。

ほぼ同じ値が減算したのち有効桁が減った状態で”本来あったかもしれない”その桁以下の値は、すべて0(ゼロ)、すなわち信頼できない値で埋められる(埋めざるを得ない)ことになります。

これにより誤差が発生すれば、それは桁落ちによる誤差ということになります。
計算の仕方によっては無視できないほど大きな誤差に発展する場合もあります。

誤差は計算の順番によって回避または軽減できる場合もありますが、そもそも2値だけの減算では不可避となります。

[MOS] Excel expert part1: DATEDIF関数は直接入力でしか実装できない?

MOS試験(Microsoft Office Specialist)のExcel 2013 expart part1の試験範囲にDATEDIF関数があります。

DATEDIF関数2つの日付の差を求める関数ですが、入力時のポップアップヒント表示やリボンへの実装がないんですね。

この関数は、初期の表計算ソフトLotus 1-2-3の 関数との互換性のためにあるようです。

[参照]
office online DATEDIF 関数

このため、リボンへの実装やポップアップヒントには出てないということでしょうかね。

Lotus 1-2-3は昨年2014年にサポート終了して、31年の歴史に幕を閉じましたから、今後どうなるんでしょう?

それはさておき、試験に関しては関数仕様を暗記するしかありませんね。

[C#]パスワード付きAccess(.accdb)ファイルへの接続

C#からAccess(.accdb)ファイルへの接続文字列でちょっとハマったのでメモ。

string connectionString;
connectionString  = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=ファイルパス;";
connectionString +=  "Jet OLEDB:Database Password=パスワード;";
OleDbConnection connection = new OleDbConnection(connectionString);

開発環境
・Visual Studio 2012 Express
・Access 2010