ソフトウェアの最近のブログ記事

 前回の続きです。

 Excel にはデータベース関数として
  Daverage(), Dcount(), Dmax(), Dmin(), Dsum()
などがあります(全部で12)。上に挙げた関数はデータベースでもよく利用されているものですね。
 前回も説明したのですが、このパラメータは
 Dcount(Database, フィールド, Criteria)
となっています。第1パラメータの"Database"は、対象となるデータの範囲を指定し、フィールドは計算したい列で、条件を"Criteria"に指定することになります。
 "Database"の1行目には必ず項目名を指定することになります。この項目名がないと、条件を指定することができません。

(図1 データ)

image3.gif

image4.gif例えば、
  Dcount(a1:o5,3, Criteria(b1:c2))
であれば、Q0で1と答えた人の中でQ1を1と回答した数を求めることになります。
 この条件は"Q0で1と答え、かつQ1で1と答えた"となります。つまり"Q0=1 and Q1=1"ということ。ですから、criteria の指定は右図のようになるのですが、ここで注意したい点がいくつかあります。
 まず、必ず項目名を指定すること。Database として指定されている範囲の1行目が項目名になるのは上で説明しましたが、Criteria ではこの項目名を正しく指定する必要があるのです。これを間違えて入力すると集計が可笑しくなってしまいます。
 で、複合条件の場合、ANDは行方向でORは列方向で指定します。ですから、上の"Q1で1と答え、かつQ1で1"の指定が"b1:c2"になるのです。じゃあ"Q0で1もしくは2と回答し、かつQ1で1と答えた"という条件はどのように指定すればいいでしょう。
image5.gif
 単純に考えれば、(Q0=1 or Q0=2) and Q1=1 となりますから、左図のように指定するばいいと思えるのですが、さにあらず。excel の場合は"()"を指定できませんので、"Q0=1 and Q1=1 or Q0=2 or Q1=1"のように指定しなくてはいけません。ですから、下図のように入力しておいて、

image6.gif
  =Dcount(a1:013, ,Criteria!b1:C4)
にしないと正しい回答数がもとめられません。これちょっと嫌らしいようにも思えるのですが、慣れてしまえば簡単です。

 Dcount はフィールドを指定しなくても問題がありません。これはSQLを思い出してもらえれば判ると思いますが、SQLの場合
  Select Count(*) from table where Q1=1
のように指定しますよね。この"*"と同じことで、条件に当てはまる行数を返すのですから、列を指定する必要はないのです。ところがそれ以外の関数は列を指定しないと計算できません。ですから、
  =Dsum(a1:013,3,Criteria!b1:c4)
のように列番号(左端を1とします)もしくは項目名を指定することになります。列数が少ないときには列番号でも問題ないですが、項目数が多くなると数え間違いをしやすいので、なるべく項目名を指定したほうが間違いないと思います。

 最後に、"Database"ですが、毎回同じ範囲を指定しますんで、普通は名前をつけます。これは最初に指定したい範囲をドラッグしておいて、メニュー「挿入」→[名前」→「定義」から名前を指定すればOKです。できれば、英語というか、英数文字で指定したほうが、関数を入力する時に面倒でなくていいと思います。
image8.gif

 先日、ひさびさにアンケート集計の処理をしました。これ無給なので最初は「この関数使えば、簡単にできますからやってみて下さい」と言っていたのですが、結局私が集計することになってしまいました。

 で、備忘録ではないですが、その処理方法をここに残しておきます。
 アンケート集計は基本的に excel を使います。設問数や選択肢が多い場合には Access を使うことになるのですが、通常の集計であれば、excel で問題ないです。この制限に関しては、excel のセルの行・列数の制限が max となります。

0.アンケートの形式
 アンケートの設問には単一回答と複数回答の2種類に加えてフリー入力の3パターンあります。選択は集計できますが、フリー入力は当然のことながら集計できません。入力するだけで、あとから人間が判断することになります。

1.アンケートの入力
 1行1レコードで、列が設問の回答を入力することになります。
image1.gif
 上の図のように入力するのですが、1行目は設問タイトルになります。このタイトルですが、集計のことを考えて、Q1 など簡単な形式にします。
 選択肢が1つしかないものは、そのまま選択肢の番号を入力すればいいのですが、複数回答の場合は選択肢の数だけ列を作ります。選ばれた選択肢のところに1を、それ以外はなにも入力しません。 上の図で見ると、設問は問0~問5まであり、問2だけが複数回答の設問になります。
 A列はNoになっています。アンケートの回答用紙にはそのような欄はないのが普通ですが、入力時に、ナンバリングしたほうがいいです。

2.単一回答の集計
 単一回答の集計の場合は簡単です。例えばQ1の選択肢が1~5までの場合であれば、
  =countif(C2:C14,1)
で1と回答した数が判ります。これを5まで変化させれば数が判ります。全体の回答数は
  =count(c2:c14)
で求められますので、1と回答した割合は
  =countif(c2:c14,1) / count(c2:c14)
となります。

3.複数回答の集計
 基本的な考え方は、その選択肢を選んだ回答はいくつあるかになります。ですから、1つの選択肢を1つの設問と見なせば、回答数は簡単に求められます。問題は回答割合をどう考えるかになります。母数を全数で処理できるのであれば簡単なのですが、1つでも選択した回答数を母数にするとなると、ちょっとやっかいそうに見えます。
 私の場合は、1列追加して(その列をOとします)、その列に
  =sum(D2:I6)
と計算式を設定します。これを全ての行に適用すると、全く選択されなかった回答は0になり、1つでも選択された回答は1以上になりますので、1以上になったものをカウントすればよいことになります。
 ではそれを関数で表現するにはどうすればいいか?。countif を使って
  =countif(D2:D14,"O列で1以上のもの")
えっ、この条件は入力できません。じゃあどうするかというと、ここで
  Dcount
という関数を使います。これはデータベース関数の1つなのですが、これは
  =Dcount(database,フィールド,Criteria)
image2.gifとなります。ここの database は d1:d14 で、フィールドは未入力で構いません。Criteria ですが、新しいシートかどこか空いたところに右図のような入力をします。セルA1には集計したい列につけた名前を、セルA2には集計条件を入力することになります。で、今回の計算はQ2sumの列が1以上(つまり0より大きい)ものですから、図のように入力すればいいことになります。
 で、Q2の選択肢1を選んだ割合は
  =countif(d2:d14,1) / dcount(d1:d14,,criteria!a1:a2)
で求められます。

 アンケート集計には、ピボットを使えという書籍は多いのですが、報告書の形式などを考えると、データベース関数を利用するほうが便利なんじゃないかと思っています。criteria の指示を変えればいろんな集計が出来ますからね。

 気が向いたら、criteria の指定例をいくつか説明します。

 日・月・火と3日連続で風邪ひきさんと一緒になったこともあって、水曜日に猛烈な寒気を感じてしまいました。すぐに医者に行ったのですが、やはり風邪をひいてしまいました。
 体調不良と中部産業連盟の実習も入っていることもあって、ちょっと間が空いてしまいました。

 でその実習でdropboxを使うことになりました。グループでファイルを共有するには非常に便利な機能を有していると思います。協会での実務補習でも使えそうなんですが、気をつけないといけないこともあります。1つはDropbox 内にあるファイルをドラッグアンドドロップすると基本的にファイルの移動になること。それと更新に若干時間がかかることです。
 で一番気になるところが今使っているファイラーがドロップボックスのフォルダーに対応できていないこと。・・・っと書いてふと「あっ、バージョンアップしてない」ってことに気がついて、早速バージョンアップ。しっかり対応されていました。

 ソフトを1つ入れると派生的にいくつかのソフトをバージョンアップする必要が出ることもある。それを忘れてました。

 これもやはり風邪のせいですかね!?(w

 今日クライアント先で、「所長の使っているPCだけ、word が起動しないので見てくれ」と言われて出掛けてきました。
 起動直後にエラーメッセージを吐いて、そのエラーをMSに送信するかどうかのダイアログが表示されます。最初、exe ファイルが壊れているのかと思って別のマシンの exe ファイルと比較しても相違がない。念のためにハードディスクのチェック(chkdsk)を掛けて見たのですが、何も問題ない。でなにかヒントはないかとググってみたところ、MSのページに対応策が書いてありました。

 その対応策は
 1)セーフモードで起動する(/a オプション)
  これはばっちり立ち上がります。
 2)normal.dot をリネームして起動してみる
  norma1.dot というファイルが存在し、同じようなことを試して見ていたんだと思い、これはパス
 3)comオプションをはずす
  全てはずしてみたのですが、ダメ
 何でだろうと再度トライということで2)をやってみたところ、なんてこたぁない、ちゃんと起動しました。Normal.dot が壊れていたということです。
 思い込みで2)をやらなかったことが、無駄な時間を費やした原因です。なんだかなぁと思いつつも、エラーの吐き具合もなんとかならないもんかとも思っちゃいました。

 Normal.dot にはデフォルトの書式などが記述されています。それが読めないから起動できないというのは理解できます。でもそのようなメッセージを出さずに、エラー送信ダイアログを出すってのはちょっとおかしい。このメッセージって何かの具合で、不正なメモリ領域にアクセスしたときなんかに出るものなんじゃないでしょうか。

 私自身プログラムを作りますので、的確なエラーメッセージを出力することって本当に難しいということは理解しています。でも今回のエラーハンドリングはどう考えたっておかしいんじゃないかと。
 ググったキーワードが「word2000 起動しない」です。これで最初にMSのページがヒットするということは、それだけたくさんの人がそういう症状に出くわしているということですよね。このような動作をしないようなパッチを作ることって考えなかったんでしょうか。

 今回のことというのは、私自身エラーハンドリングをきちんとやれという天からの啓示かも知れません。

逆転無罪

| コメント(1) | トラックバック(0)  

 winnyの裁判、高裁では無罪の判決が出ました。新聞各社がそのニュースを流しています。「winny裁判」でググって見るとニュース記事だけで132件ありました。

 この手の裁判(犯罪の幇助)はwinnyが最初ではありません。かつてFLMASKというソフトがありました。これは画像にモザイクを入れるソフトなのですが、可逆性があり、多くのわいせつ画像で使われかつ作者のwebページからその手の画像が掲載されているサイトへリンクが張ってありました。このリンクが公然わいせつの幇助に当たるという(私に言わせれば)難癖をつけられ、逮捕・起訴されて罰金刑が確定しました。この作者も控訴すればwinnyと同じ判断がされたかも知れません。

 地裁の判断って本当に摩訶不思議なものを感じることが多いです。高裁や最高裁まで行くと納得できることが多くなるんです。地裁の裁判官って本当に勉強しているんでしょうか。昨今のソフト・ネット関連技術は法律の2歩3歩も先を進んでいると言っても過言ではない状況です。そういう側面を考えると判断が難しいのも理解できないではない。でもソフト開発業界からするとそんな判決出されちゃ、ヘタをすると商売できないようになる可能性が出てきます。

 京都府警も今回の判決をよく考えてほしいですね。私に言わせれば、全くの白ではないにしろ、グレーかも知れませんが、どう考えたって「黒」ではないのですから。最初逮捕のニュースを聞いたとき信じられませんでした。

 ただ、無罪判決が出たからと言って、違法コピーが許されるというものではないということもきちんと理解しなくちゃいけません。どうも2chなどを眺めてみるとそのような論調の書き込みを若干見受けられますからね。

 ITMediaで『Microsoftはまず、Vistaの失敗を認めるべき』という記事を見つけました。この記事で MicroSoft のマーケティング戦略について書いています。大企業に新しい Windows を売りたければ、vista の失敗を認めろと。

 MicroSoft の立場を考えれば、新しいOSを販売することは理解できるんですが、そもそもユーザー側にとって WindowsXP から Windows 7 にバージョンアップする必要性ってあるんでしょうか?。幸か不幸か、今事務所にあるPC、1台も Vista ではありません。XPで十分なんですね。大企業などではセキュリティ面なので不安があるのかも知れませんが。一般的な中小・零細企業において、このバージョンアップは費用だけが掛かってなんら生産性向上にならないような気がします。
 まあ、MicroSoft でがちがちに固めたシステム(特にDB関連、web関連)を使っている企業であれば、バージョンアップせざるを得ないのは判ります。特にサポートが打ち切られたら困ってしまいますからねぇ。でも単純にC/Sシステムでファイルサーバー、プリントサーバーで使っているだけであれば、サポートが切れたってそれほど大きな支障が出るとは思えないんですよ。

 まあ、私が付き合っている企業のシステムがしょぼいだけなのかも知れませんが。

 ITMediaで adobe が PowerPC への対応をやめる(Adobe、Creative SuiteのPowerPC対応を打ち切り)という記事を見つけました。ほとんどmacを使うことがなかったこともあり、Apple が MacOS X についてPowerPC のサポートを打ち切ることをまったく知りませんでした(アップルのPowerPCとの決別--新OS「Snow Leopard」が導く未来)。

 Appleが Intel MAC を出していることは知っていましたが、本格的に PowerPC を辞めるとは重いもつかなかったことです。こうなると1台のPCで両方のOSを動かしたくなりますね。例えば VMware を導入すればそれができます。でも OS X 単体で発売してくれないとそれができない。MAC本体を買えばいいんですけど、無駄な投資です。なんでかと言うと、Apple ってハードとソフト(OS)を一体で販売しますから、自分で組み立てたPCにインストールするためには、どうしても MAC 本体1台は買わないといけないというのが現状だもんで。
 これが、OSのみを購入するだけで両方起動できるようになるのはいつになるんでしょう!?。

 もっと夢をみるなら、両方のOSともにオープンソースになってくれるといいんですけど・・・、まあならんでしょうねぇ・・・。

 WordPress のインストールはまったく問題ないのですが、クライアントから「携帯から書きこむことができること」という要望があり、そこで ktai style というプラグインを導入しました。これで大丈夫と思ったら、なんと携帯からログインできません。

 ただ、自分の携帯から毎回テストをするのは面倒なので、エミュレータがないかを探してみたらしっかりキャリアーから出しているんですね。明日はそれをダウンロードしてみないといけないなと思っています。
 でも携帯って便利なようで不便ですね、こういうときは。

 とあるお客様からブログをセットしてほしいとのリクエストがありました。単純にブログと言われればMTOSをインストールするんですが、「携帯からの書き込み」が可能であることという要求があったため、Wordpress をインストールしてみました。

 携帯から閲覧するためのプラグインだったらMTOSにもあったのですが、書き込むことができるものが見当たりません。大手のブログサービスはプラグインプログラムを自分のところで作っているんでしょうね。以前使っていたgooもオリジナルはMTのようですが、携帯から書き込むことができますからねぇ。
 今回は「Ktai Style」というプラグインをインストールしました。まだテストしていないのですが、多分問題なく動くと思います。
 あとはデザインテンプレートなんですが、これは検索すればなんとかなるでしょう。
 今一番不安なのが、サブドメイン。blog.officedora.com みたいにするためにレンタルサーバの設定をしなくてはいけないのですが、この対応に1~4日掛かるらしい。すぐにチェックできないんですよね。

 とはいえ、やはりOSSは便利ですね。疑問点が出たとしても、ネット検索で大抵のことはわかりますから。

realVNC

| コメント(0) | トラックバック(0)  

 バタバタしているのですが、それがお金を産まない忙しさという非常に厳しい現実を肌で感じている今日この頃。

 昨日と今日で6件のお客様とあってきました。その中で今日最後のお客様は realVNCを使ってiPhoneから自分のPCを見たいとのこと。ちょっと触ってみたのですが、うまく接続できません。事務所に戻ってきて、自分のPCに VNC サーバをインストールしてみたところ、
 1)サーバがインストールされているPCで接続してみると、クライアントプログラムが暴走???してしまい
 2)別のPCからだとうまく見ることができる
という状況まで持っていきました。後は自宅から見られれば VNCサーバの設定は間違いないということになります。

 でも、外部から接続するには固定IPかDDNSの設定がされてないとうまく接続できないと思うんですが、そのあたり iphone は特別なんでしょうかねぇ・・・。もう少し調べてみる必要があるみたいですね。

2012年5月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

アーカイブ

お気に入りリンク

OpenID対応しています OpenIDについて

人気ブログランキング

最近のコメント

最近のトラックバック

Techonrati

Technorati search

» リンクしているブログ