2014年8月30日土曜日

EXCEL 仕事で覚えた小技 フィルタするなら、まずフィルタクリア

 EXCELでフィルタで行を絞る際、しばしば、陥る落とし穴は、既にどこかの列がフィルタで絞られていることに気がつかない、あるいは、忘れていることです。
 そのまま、フィルタをかけても、誤った結果しか、得られない、どうも変だ、出てくるはずの行がでていない、などいった罠にハマってしまうことが、多々あります。
  • 最初のフィルタ前にフィルタ全クリアが鉄則
また、これが一番、ハマルのですが
  • こまめにセーブは基本中の基本
せっかく、何時間もかけて作成した作品、編集した結果がちょっとした「気の迷い」、操作ミスで、セーブせずにEXCELを終了してしまうことがあります。「こまめにセーブ」はEXCELに限らず、いろんなシーンで言えることでもあります。
 また、これと似ているのですが、
  • 修正のたびに別文書へ
これもかなり、重要。救いの神です。修正したら、こまめに別文書でセーブ。私は、文書名の一部に日付や時刻、改版理由などを付けて、版数を管理しています。






A lifesaver's coming


2014年8月28日木曜日

仕事で覚えたEXCEL小技 条件付き書式でセルに色を付ける

 条件付き書式でセルに色を付けるには、条件付き書式タブで、例えば、条件として
  • NOT(ISNA(VLOOKUP($Sheet1.$K$2,holidays,2,FALSE())))
として、色を設定しておきます。これにより、holidaysという名前を付けた祝日リスト(日付、祝日名)のテーブルを参照して、該当すれば、色がつくことになります。

これと、以前、ご紹介した小技
 excelで前月の最終月曜日を計算する EXCEL fuction calendar
と組み合わせると、イカしたカレンダーができます。



2014年8月26日火曜日

仕事で覚えたEXCEL小技 SUMとSUBTOTAL

複数のセルの合計を計算するときに使う関数としては、普通なら、
  • SUM関数で、=SUM(A1:A10)
みたいに使いますが、
  • SUBTOTAL関数を使い、=SUBTOTAL(9,A1:A10) 
とすれば、
  • 途中のセルをフィルターで除外したら、その部分はカウントされない
という便利な効果が出てきます。

逆に言えば、SUM関数にすれば、フィルターをかけても、合計値に影響を与えることはありません。


私は合計をとるときは、SUBTOTAL関数を使うことが多いです。


ちなみに、SUBTOTALの次の9は、合計値を求めるときに指定します。3を指定すると、対象となった数値の個数(セル数)が入りますので、平均値をとるのに使えます。

  • 平均値 =SUBTOTAL(9,A1:A10)/SUBTAL(3,A1:A10)
複数の列に同じ式を使えるというのがポイント(ミソ)です。

ここでちょっと一息のコーナーです。


 ニュージーランドでの車の運転ノウハウ。レンタカーの旅は、楽しいですよー。

 ニュージーランドの道路の交差点は、信号がなく、「ラウンド・アバウト」という、道の交差が角ではなく、サークル(円型) になっているところがあります。さすがに大都会のオークランドでは信号がある交差点が多いですが、田舎では殆ど、この信号なしのラウンドアバウトばかり。信号機を付けなくてもよいし、信号を待たなくてもよいという利点があると思います。
 このランドアバウトでは、車はサークルに入る前に一旦、停止し、右から車に気をつけながら、サークルへ進入します。そして、サークルをまわりつつ、自分の行きたい道へと入ればよいわけです。サークルへ入るタイミングをつかむのが難しそうですが、そんなに車が多くないので、意外と大丈夫ですよ。
 サークルの中が2つ、3つ車線がある大きなサークルでは、回っているうちに車同士がぶつかりそうで、ちょっと怖い感じがありますが・・・。




2014年8月24日日曜日

IE + VBAで仕事を効率化 Webシステムを自在に操る

 これまでに、以下の3ページで、もの凄く、簡単に、Webシステムの操り方をご紹介しましたが、この2ページは、途中で挫折しかけつつも、3ケ月もかかり、「まわり道」したおかげでのスキルの「つながり」があり、なんとか、やりたいことができたのでした。
 インターネットでいろいろ、ご指南して頂いたおかげもありますが、うまくいかない時、「まわり道」になっているなぁと思うときこそ、頑張って、精進することが大切なのだなぁと最近、つくづく思うのでした。

 人生に無駄なことなど一つもない。そして、最後まで諦めないこと。(と思う、思いたい・・・、てっ) 

   The following 2 web pages introduce how to get info from web systems automatically by IE + EXCEL VBA.
   It took 3 months for many tries and errors. I almost set back.  

 Nothing is useless in your life. Never give up! I think, want to believe.

 最後に、デバッグ方法なのですが、VBAの「ブレークポイント」と「Debug.Print」でできましたよ。My debug methods are use of "Breakpoints" and "Debug.Print".
  • Debug.Print "これじゃ”& objIE.documet.URL
みたいな感じで、内容を出力する変数(パラメタ)を指定したり、特定のメッセージを出すことでプログラムが思ったとおりに動いているのか、確認します。簡単です。Very simple.





 

2014年8月21日木曜日

仕事で覚えたEXCEL小技 $(ダラ)って便利だら

仕事でEXCELを最短で習得するには、近くにいる達人に聞くこと。

VLOOKUPの第2˚パラメタで、範囲を指定する際、$A$1:$E$10と通常の範囲指定の頭に$(ダラ)を指定しておく。
すると、VLOOKUP を入れたセルをコピーして、他のセルに展開するときに、
EXCELが勝手には範囲をシフトすることを封じる(防ぐ)ことができる。

EXCELの自動変換は、便利なこともあるが、邪魔になることもある。
それを封じるのが、$(ダラ)だね。便利だらー。















 ここで、ちょっとひと息。ニュージーランドのレンタカーのお話。
 2012年、北島のオークランドでレンタカーを借りた。大手が安全なので、ハーツ(Hertz)をネット予約。
 空港にあるハーツのカウンターでレンタカーのチェックインをテキトーな英語でどうにか済ませると、キーとカーナビ(オプションで付けた)を渡され、車の置いてある番号(例えば84と)が告げられる。
 これだけだけだ。That's It. ハーツは空港ビルのすぐ隣に駐車場があるので、とても便利。車を返すときもこの同じ番号の場所に駐車し、キーとカーナビを空港内のカウンターへ返せばよい。凄くシンプルなシステム。

2014年8月16日土曜日

IE+VBAで仕事を効率化 Webページの表(TABLE)をセルに取り込む

IE+VBAでWebシステムを自動操作するときのノウハウ~Webページの表が
タグで作られているなら、以下のコードで表の内容をセルへゲットできるよ。
'  j : row counter   i : line counter 
j=0
  For Each objTBL In objTBL.document.Frames("bodys").document.all.tags("TABLE")
    For Each objTableItem in objTBL.all
       Select Case objTableItem.tagName
       Case "TR","TD","TH"
         Select Case objTableItem.tagName
           Case "TR"
             j = J+1
             I = 0
           Case "TD","TH"
             i = i + 1
             WorkSheet(your-sheet-name).Cells(j,I).Value = objTableItem.innertext
         End Select
       End Select
     Next
   Next
やればできる。時間はかかるけど、でも次に繋がる。そのときは、楽できるはず。それを信じて・・・。 
私のVBAバイブルは、大村あつしさんの本。とりわけ、Windows APIを活用する本は秀逸。図書館で何回借りたことか。先日、図書館に行ったら、古い本のためか、本棚から姿を消していた。残念、いい本は内容が古くなっても、そのエッセンスは不滅で、いつの時代でも通用するのに・・・。 でも新しいヴァージョンが出ていました。コレですよ、コレ。最新化されたんですね。凄い!

2014年8月15日金曜日

debian wheezy+avastでdatabase updateできない そして 引数エラー(argument error)

linuxウィルス対策ソフトにavastとclamavを入れてみた。
avastはGUIだと、databese updateが失敗したけど、以下で解決。

debian wheezy+avastでdatabase updateできない のであれば
  • ターミナルでavast-update
そのあと、debian wheezy+avastで引数エラー(argument error) であれば、
  • sudo sysctl -w kernel.shmmax=200000000
でもこれは、一時的なので、スクリプトでやるように変更。

clamavの方は、ノートラブル。凄いね。
  • スキャン開始 clamscan -r
      • slackwareの場合、Slackbuild(sbopkg)でdownload+build+installし、freshclam その後 clamscan -r
      •   /etc/rc.d/rc.clamav start でデーモン起動で終わり。
linuxのウィルスソフトは、なぜ少ないのかなぁ・・・