2014年03月27日

連載中

現在、2つの雑誌でExcel関係の連載をさせていただいています。

1誌は以前にも書いた「日経パソコン」誌で、ここ何期か連続で「Excelスキルアップ講座」を書かせてもらっています。
同誌は書店売りはされておらず、定期購読のみ。月2回刊です。
最新号には、「日付と時刻」をテーマにした6回連載の最終回が掲載されており、次回からは新たに「書式設定」をテーマにした連載が始まる予定です。

もう1誌は「日経PC21」誌で、最新の2014年5月号から新たに「エクセル操作講座」の連載が始まりました。
第1回のテーマは「テーブル」。

始まる前は割と甘く考えていたのですが、なんだかんだで月3本というのはやっぱり結構ハードでした(^^;)。
それらと、そのほかの仕事の合間に、久しぶりの投稿。
posted by 土屋和人 at 21:16| Comment(0) | TrackBack(0) | 仕事

2014年01月27日

1万日目

私の個人的ベスト朝ドラは依然「ちりとてちん」ですが、「ゲゲゲ」も「あまちゃん」も結構はまってましたし、現在の「ごちそうさん」も毎日見てます。

昨夜のトーク番組にヒロインの杏が出ていたのでちょっとだけ見てみたら、「生まれてから1万日目はいつか」みたいな話をしてました。

「計算するの大変そうだな」と一瞬思ったものの、よく考えたらExcelで一発でしたね。

適当なセル(A1とします)に自分の生年月日を入れて、「=A1+10000」とするだけ。
生まれた日自体を1日目と数えるなら、そこから1を引きます。

1万日目に限らず、同様にして何日目でもOKです。
posted by 土屋和人 at 10:10| Comment(2) | TrackBack(0) | Excel

2013年08月12日

Word VBA本についてのお知らせ

ネット書店には少し前から情報が出始めていましたが、9月の中旬に、技術評論社さんからWord VBAの本を出させていただきます。

書名は『最速攻略 Wordマクロ/VBA徹底入門〔Word2013/ 2010/2007対応版〕』です。

内容的には、私家版の『Word VBA基本&活用テクニック』に2013の情報を加えたというだけでなく(そういう意味では、むしろ2013ならではという部分はそれほど多くありません)、私家版に欠けていた部分をいろいろと補い、新しい情報も加えて、より充実した内容になっています。
特に、「テンプレート」を中心としたWordマクロの活用モデルを、この本ではより明確に提示できていると思います。
また、私家版では編集者もなく、独りよがりな部分が目立ちましたが、今回は解説自体のわかりやすさもかなり増しているはずです。

『Word VBA基本〜』は現在DLmarketにてダウンロード販売中ですが、情報的にはこの新しい本とかぶる部分も多いため、今月(2013年8月)いっぱいをめどに、販売を終了することにします。
ある日突然販売終了というのもどうかと思ったので、事前に予告させていただきました。
あらかじめご了承ください。
タグ:word VBA
posted by 土屋和人 at 17:40| Comment(0) | TrackBack(0) | 仕事

2013年08月10日

オートフィルの問題

仕事中に(^^;)ふと思いついた問題(数式クイズではありません)。

あらかじめ書式設定したB2セルに「24」と入力しました。

q20130810_01.jpg

このB2セルを選択し、右下のフィルハンドルをB4セルまでドラッグしました。
B4セルに入る値は次のうちのどれでしょう?

(1)24
(2)26
(3)44

【答え】
タグ:クイズ Excel
posted by 土屋和人 at 09:37| Comment(2) | TrackBack(0) | Excelクイズ

2013年06月16日

PowerPoint VBA

PowerPointは、正直、仕事ではほとんど使わないので、どういう場面でVBAを使えば便利なのかがよくわかりません。
PowerPointの場合、バージョンが上がるごとにVBAの日陰度(^^;)が増しているような気もするので、実際問題、あまり使われてもいないのでしょう。

先日、よく仕事をもらっている会社の人から、Excelで作成した大量のグラフをまとめてPowerPointに移行したい、という相談を受けました。
単にコピー・貼り付けするのではなく、PowerPointの内部で作成した形にして(結局はExcelの機能ですが)、書式などもExcelで設定したものを流用したい、とのこと。

これこそVBAの出番!と思い、試しに組んでみました。
まあ、やってる内容自体ほとんどExcelで、PowerPointならではという部分は少なかったのですが・・・
しかもVBAによる完全自動処理というわけにもいかず、最終的に1つ1つ開いて目で確認して微調整、という作業も必要にはなりました。

結局、PowerPointでVBAが必要になるのは、こんな感じの「一括で大量に何かする」というケースなのかな、と思いました。
とりあえず思いつくのが、図形に対する一括処理とかですが、それはそれで実際のニーズとしてはどうなんだろう?

もしこの記事をお読みの方で、何か具体的な「PowerPointでVBAが必要なケース」をご存じの方は、お教えいただけるとうれしいです。
タグ:VBA PowerPoint
posted by 土屋和人 at 12:26| Comment(2) | TrackBack(0) | 仕事

2012年10月08日

地産地消の合計

この本の33番目の項目で使用している例です。



下のような表で、各行が生産地、各列が消費地を表しています。

quiz42.jpg

これで「地産地消」、つまり生産地と消費地が同じである量の合計を求めます。
ただ、このネタの目的は、要するに斜め方向のセルを合計するという例(具体的な数式は「配列マジック」の本を見てください)であり、行・列の見出しは問題にしていません。
実際にどんな見出しが入力されているかはまったく関係ないわけです。

でもよく考えると、生産地と消費地が異なる順番で並んでいるケースにも対応できるように、行・列の見出しをチェックして、同じ都道府県名である行と列の交点にあるセルのみを合計する、というアプローチも紹介しておけばよかったのでは……と思い始めました。
というわけで。

【数式クイズ】難易度:★★★☆☆
下のような表で、生産地(各行)と消費地(各列)が同じであるセルの量の合計を求めます。

quiz43.jpg

H3セルにはどのような数式を入力すればよいでしょうか?

【解答例】
posted by 土屋和人 at 09:59| Comment(2) | TrackBack(0) | Excelクイズ

2012年08月25日

Excelの「配列」の本

まだ発売前ですが、結構前からAmazonで「予約受付中」の情報は出ています。

すぐわかるSUPER Excel配列マジックを極める 営業、経理、総務もこれでExcelマスター! 面倒な集計や計算処理が格段に楽になる!

実は最後の章の原稿を書いているときにすでにこの本のタイトルが出ていて、ページ数まで明記されていたので、正直滅茶苦茶焦りました。(^^;)

VBAは扱っておらず、解説しているのはあくまでも数式における配列だけです。
この本と重複しているネタも結構ありますが、今回の本では配列のイメージ図を掲載して、数式の構造をより詳しく解説しています(逆に、当然ですが、配列を使用しない数式のテクニックはほとんど出てきません)。

Excelの「配列」は、かなり前からやりたいテーマではあったのですが、なかなか出版社に企画が通りませんでした。
今というタイミングには正直若干の疑問もあるのですが(2007より前のほうがよかった?とか、2013が出る直前のこの時期に?とか)、改めて配列の「便利さ」と「面白さ」を再確認できました。

もちろん、ビジネスとしては「便利さ」を強調しなければいけないのでしょうが、(あくまでも個人的には)配列の「面白さ」をより多くの人に知ってもらいたい、という思いが常に胸にありました。

特に最後のほうの項目は結構エスカレートして、ビジネス的な「実用性」とはやや離れてしまったかもしれませんが、その分、マニア的な「面白さ」は濃くなっていると思います。
締め切りに追われてヒートアップして書いた部分なので、何か大きなミスをしていないかが心配ではありますが……(^^;)

Excelの数式でよりいろいろなことをしたい方、Excelが好きで極めたい方、複雑な数式を作って職場で「わぁ、すごい!」ともてはやされたい方にはオススメの一冊です。
タグ:配列
posted by 土屋和人 at 11:39| Comment(0) | TrackBack(0) | 仕事

2012年05月23日

やっぱり怖い演算誤差

久しぶりに、というかまたしても、このブログのタイトルにふさわしいネタです(^^;)。

そろそろ次の号も出る頃ですが、「日経PC21」の2012年6月号に掲載された「エクセル数式クイズ」の記事で、実はまた少々やらかしてしまいました。
カラオケの開始時刻と終了時刻の差が必ず30分単位になるという前提で、利用時間を30分を1とする数値に換算して、それに人数と30分当たりの料金を掛けて利用料金の合計を求めるという問題なのですが、問題自体ではなく、その解答・解説記事にまずい部分がありました。

実際の料金計算では当然ちょうど30分になるということはまずないので、30分未満の端数に対応できるようROUNDUP関数で切り上げる、という解説を付けました。
紹介した数式は、論理的には間違っていないはずなのですが、実際には利用時間がちょうど30分単位になった場合、演算誤差によって、1単位分切り上げられてしまう可能性がある……ということに、結構後になってから気が付きました。
たとえば利用時間がちょうど1時間30分だった場合、料金が2時間分として計算されてしまう可能性がある、ということです。

記事の中ではオマケ的な部分ですし、演算誤差やその対策について詳しく説明している余裕もありませんでしたが、それにしてももうちょっと誤差の出にくい数式にはできたんじゃないのか(それはそれで、紹介している数式よりは長くなり、その説明も必要になっただろうと思いますが)、と深く反省しています。
posted by 土屋和人 at 09:08| Comment(0) | TrackBack(0) | Excel

2012年04月23日

「日経PC21」6月号の数式クイズ

「日経パソコン」での連載の仕事が途切れてからはや半年以上が経ちますが(^^;)、このたび「日経PC21」の特集記事に関わらせていただきました(書かせていただいた、と書くのは、実はちょっとおこがましいので)。

本日その見本誌が届きました。
発売予定日は24日とのことでしたが、もう書店等には出てるんですかね?
近所のコンビニを眺めた限りではまだ見つかりませんでしたが……

内容は、このブログでもときどき書いていた「数式クイズ」で、ネタも少し流用していたりします。
ただし、数式そのものを直接答えるわけではなく三択形式で、穴埋め問題がメイン。
結構親切なヒントも付いています。
この雑誌で昔やっていた「表計算大会」などではかなり難易度の高い問題も出されていたと記憶していますが、そこまでやると大多数の読者を置き去りにしてしまう、という判断のようでした。

それから、打ち合わせのときに編集担当者の要望として出てきたのが、クイズという一種のお遊びなので、できれば多少笑える要素がほしい、ということでした。
結局それほどご要望には応えられなかったのですが、とりあえず担当の人に一番受けていたのはQ11の画面のA5セルの内容でした。
ただ、これがわかってもらえるのは、それなりの年齢の人かもしれません。(^^;)
タグ:Excel 日経PC21
posted by 土屋和人 at 17:16| Comment(0) | TrackBack(0) | 仕事

2012年01月02日

UDFで配列を返す

組み込みのワークシート関数にも、戻り値として配列を返すものがいくつかあります(FREQUENCYやLINESTなど)が、これらの関数は、初心者の人にはあまりなじみがないでしょうし、「配列」と聞いただけでちょっと引いてしまう人も多いのではないでしょうか?

『追加関数50』に収録したユーザー定義関数(UDF)では、戻り値を配列として返す関数が実は結構あります。
別に趣味でそのような仕様にしたわけではなく(^^;)、汎用性などを考えるとそっちのほうが便利だろうと思ったからです。
(なお、配列の受け渡しに関しては、私のWebサイトのこのページで割と詳しく説明しています。配列自体についての解説はこちらからどうぞ)

たとえば、指定したセル範囲の中で、特定の書式(塗りつぶしの色など)が設定されたセルの値だけを集計したいとします。
UDFであれば、該当するセルの値の合計などの値を直接求めることももちろん可能です。用途や利用範囲によっては、それはそれでOKな場合も多いでしょう。
しかし、合計以外にも平均や最大値といった複数の種類の集計結果を求めたい場合は、その種類だけUDFを用意しなければならなくなります。

その点、該当する値をすべて配列として返す関数であれば、SUMやAVERAGE、MAXといった関数と組み合わせることで、どんな集計処理でも可能になります(もちろん、組み合わせる関数が配列を処理できる、というのが大前提ですが)。

さらに、配列を返す関数をINDEX関数と組み合わせて、たとえば「塗りつぶしの色が黄色である3番目のセルの値を取り出す」といったことも可能になります。

『追加関数50』にはそれ以外にも、通常は「最初に見つかったセル」に対応する情報しか返さないMATCHやVLOOKUPを拡張し、該当するすべての値を配列として返すような関数も収録しています。
もちろんその戻り値も、SUMやAVERAGE、INDEXなどと組み合わせて利用することが可能です。

また、配列の扱い方や上記のような応用的な利用法についても、いろいろと紹介しているつもりです。
posted by 土屋和人 at 10:48| Comment(0) | TrackBack(0) | Excel