Excelのファイル同士の比較

ExcelにInquireというCOMアドインを入れることでExcel同士のファイル比較ができるらしい。 参照は以下。

https://kokodane.com/2013_waza_087.htm

  1. 「ファイル」ー「オプション」から「アドイン」を選択し、「管理:」からCOMアドインの設定をする。
  2. 「Inquire」をチェックして「OK」。
  3. そうすると「INQUIRE」タブ(2016だと「検査」)タブが追加されているのでそれを選択。
  4. 比較したいExcelを両方開いておく。
  5. 表示したリボンから「ファイルの比較」を選択。
  6. 比較対象のファイル名を選んで「比較」をクリック。

意外と便利ですよ。

VBA(VBS)で複数行を一行に書くには、一行を分割するには。

複数行を一行で書くには

コロン「:」を使う。

Sub debug(): MsgBox("テスト"): End Sub

一行を分割するには

アンダースコア 「_」を使う。

Sub debug()
    MsgBox("テスト",_
        vbYesNo)
End Sub

VBの文字チョイスのセンスが分からない。。。

where, group by, havingとかの評価(優先)順位

where -> group by -> having -> select -> order by

の順で評価するのでhavingにはselectでつけた別名を指定できない。order byには指定できる。

例:年が2010以降で名前ごとの件数が1より大きいものを大きい順で表示。

select name, count(*) cnt
  from TBL
 where year >= '2010'
 group by name
having count(*) > 1
 order by cnt desc
;

NULLがある場合のSQLのWhere句の条件に注意

OracleSQLでハマったんで備忘録(というか知らなかっただけ)。

テーブルTBL_Aが、

ID SEI MEI
1 鈴木 太郎
2 鈴木 二郎
3 NULL NULL
4 佐藤 一郎

で、SELECT文が

select * from TBL_A where SEI <> '佐藤';

だと結果は以下。

ID SEI MEI
1 鈴木 太郎
2 鈴木 二郎

となり、NULLは「佐藤以外」ではない。ちなみに、

select * from TBL_A where NOT(SEI = '佐藤');

でも結果は同じ。以下のサイトによれば、DB2でも同じとのことらしい。

SQLで特定の文字以外の条件でNULLのレコードが取得されない

どうやら、NULLの比較は、UNKNOWNという状態になるらしい。

NULLの特性

なので、NULLを含む「佐藤以外」の行を取得したいのなら、

select * from TBL_A where SEI IS NULL OR SEI <> '佐藤';

としないといけない。

認証(authentication)と認可(authorization)

いつもどっちがどうなのか忘れちまうので備忘録。以下のサイトが詳しい。

OAuth 2.0 + OpenID Connect のフルスクラッチ実装者が知見を語る

意味
認証(Authentication) 誰であるか。 Who one is.
認可(Authorization) 誰が誰に何の権限を与えるか。 Who grants what permissions to whom.

だそうだ。 だれなのかを「認証」して何(誰)かに権限を与えるのが認可。

上記サイトは一番分かりやすい OAuth の説明からもリンクしているが、このページも良い。

SQL*Plusの日付表示の変更

デフォルトだとYY-MM-DDしかでないSQL*Plusでは以下を表示前に実行しておく。

SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS';

SQL*Plusってほかにもいろいろ使い勝手が悪いんだけど、コマンドラインで使う人があまりいないのかもしれない。。。

NLS関連の環境変数は以下が詳しい。

SHIFT the OracleのNLS関連パラメータ

Windows10でのディスク容量拡大方法

仮想環境のWindows10で、更新アシスタントからアップグレードするとCドライブの容量が足りねーってことでアップグレードできず、また、仮想環境の設定をみても容量は自動で拡大するようにしているのだがそう言われてしまう。どうも、以下のサイトの通り、回復パーティションを削除しないといけなかったらしい。

hottokei.hatenadiary.jp

pcmanabu.com

こちらの環境ではスナップショットなどは取っていなかったため、バックアップ(といっても仮想OSだけでなくOS全体まるごとバックアップ)を実行。その後、仮想のWindows10のディスクの管理で見るとやはり居やがる。

"回復パーティション"
回復パーティション

で、PCまなぶさんのサイトに書いてあるとおり、diskpartコマンドで削除して以下のようになった。

"回復パーティション削除後"
回復パーティション削除後

その後、Windows10のアップグレードを実行し完了した。