[技術][展示]Cybozu Day 2018に行ってきました

少し前に「Cybozu Day 2018」に行ってきました。

Cybozu Day 2018

Cybozuさんの製品を使用しているわけではないのですが
日経BPさんからのメールを見てて、目についたのがきっかけ。

タレントの真鍋かをりさんやお笑い芸人の
南海キャンディーズ 山ちゃんのトークセッションが
あるとのことで、面白そうだなーと思い、足を運びました。

Cybozu Day 2018 今回のテーマ

公式サイトにもありますが

『楽しいは正義』

ということで、展示や講演の内容も
働き方ということにフォーカスしたのがほとんどでした。

聴講したセッション

1.基調講演
 Cybozu 青野社長
 慶応大 前野教授
 タレントの眞鍋かをりさん

2.クラウド開発がシステム開発をもっと楽しく、もっと自由に
 AWS Japan 長崎社長
 Cybozu 青野社長

3.特別講演
 Cybozu 青野社長
 南海キャンディーズ 山里亮太さん

この中で、基調講演と特別講演について、公聴した感想を。
※ 2については、技術的要素が強いので、割愛

基調講演

Cybozu 青野社長、慶応大 前野教授
タレントの眞鍋かをりさんによる、トークセッション。

働き方 と 幸福(学) についての内容でした。

始めは、青野社長のお話。
「働き方」という部分にフォーカスしての
自社の実例を挙げながらの多岐に渡る内容でした。
中でも面白いな。と思ったのが

「仕事の生産性を上げるためには幸福度を上げること」
「公平は幸せではない」
働き方改革は働かせ方改革になっている」

これ、話を聞きながらフムフムって感じでした。

青野社長もおっしゃておりましたが、仮にですが
残業をしてでもたくさん働きたい人がいた場合、残業時間を
減らしてもらいたいから、周りに合わせて残業せずに帰って
もらった場合、その人は幸せなのか?といえば
必ずしもそうでないのかなと。

昨今の働き方改革ということでの
・労働時間の縮小ということで「残業を減らす」
・自由な働き方の推進での「リモートワーク」「テレワーク」
 という施策。

間違ってはいないと思いますが、ケースバイケースであり
100人いれば100のやり方があるのではとも感じました。

そういう意味でも、今やっている施策は

働き方改革は働かせ方改革になっている」

ということは妙にしっくりきました。

残業を例に挙げますが、会社で仕事をしなくても
絶対的な仕事量は変わらないので、カフェとかでやる・・・
というのでは本末転倒ですし。

まとめとして話されていた

「自分に合った働き方ができれば幸福度が増す。
 生産性ではなく幸福度を増やすことが真の働き方改革ではないか」

というのは、確かになぁ。とこれまた納得でした。

その後は、前野教授、眞鍋かをりさんを招いて、幸福学についてのお話。

前野教授曰く、幸福学は哲学的で抽象的なものであったが
今では科学的に「幸福とは?」ということがわかってきている
とのことでした。

幸福学では、「幸福な人の状態」は以下、3つの状態に
左右されるとのことでした。

1.環境
2.健康
3.心

その中でも、『心』については4つの因子があるとのことでした。

1.やってみよう因子:自
 夢・目標、強み(自己肯定感)、ワクワク感
 1日に1回ワクワク感を持つ人は、5%程度
 幸せな人は1.3倍生産性が高い

2.ありがとう因子:他
 感謝、利他、多様なつながり(多様性)
 感謝するほうが幸せ度があがる

3.なんとかなる因子:自
 楽観性、前向き
 日本人は悲観的な民族である

4.ありのままに因子:自
 人の目を気にしない(他人を気にしすぎないこと)
 ⇒自分らしさを出せること

この4つの因子のバランスが取れている状態が
幸福度が高いとのことです。
もし、夢や目標をたくさん持っていても、感謝の気持ちを
持つことをできていなければ、達成できたとしても
満足感がないのでは?と。

中でも「他」の要素が強い「ありがとう因子」に重点を
置くことが大切とも話されていました。
感謝する方が、感謝される方より、幸せ度が高いという
研究結果があるそうです。

また、周りとのつながり方に関しても話しておりました。

「多様なつながり」ということで、少なく深くというのも
大切ですが、広く浅くというつながりを
持っておくことも大切とおっしゃっておりました。
⇒これは、面白いなぁと思いました。

まとめてして

自分自身が最近幸せを感じないなーと思ったら
上に上げた3つの要素と4つの因子の状態を見直してみればいい

とのことでした。

特別講演

Cybozu 青野社長と南海キャンディーズ 山里亮太さんによる
トークセッション

山里さんは最初から
「ためになることは言いません」
と言ってましたが、実際はためになることばかりでした。

働き方、というよりは
「人との付き合い方」であったり
「自分自身の立ち位置(役割)の見つけ方」といった
どちらかというとメンタル的な部分の話が大半でした。

特に面白いなと思ったのが 嫌いな人との向き合い方。

「嫌な人のことを思い出して、妄想上で成仏させる」
 ↓
「その時のエネルギーを原動力とし、動く(前を向く)力に変える」

という部分。

嫌な人のことを思い出して、妄想上で成仏させる

 嫌な人のことを怒り続けていると自分の時間が奪われるし
 疲れてしまう。そうなれば、余計に嫌な気分になってしまう。
 だったら、妄想上で自己解決して、終わりに(スッキリ)しようと
 いう考え方。

 青野社長に「復讐というガソリン!」と突っ込まれてました(笑)

 これ、言葉にするのは簡単ですが、実際にやろうとするのは
 大変なのでは?と個人的には感じました。
 成仏させたとしても、顔を合わせたりすると、また
 「嫌だな」と再燃してしまうんじゃないかなと。

 少なくとも、私自身はそこまで割り切ることができず
 引きずってしまうと思うので。

その時のエネルギーを原動力とし、動く(前を向く)力に変える

 嫌な人のことを自己解決した上で
 「その相手がいたからこそ今の自分がある」
 と逆に感謝の気持ちを持つ。
 感謝の気持ちを持つことができるから
 前向きに進むことができる。

 これは純粋にすごいな。と思いました。
 嫌な人のことを「感謝」するってものすごい
 パワーを使うと思います。

これらのことができるからこそ、新しい人がどんどん
でてくる芸人の世界でも未だ、第一線で活躍を
されているのだと感じずにはいられませんでした。

この2点、意識して実践してみようかなと思いました。

まとめ

Cybozu Day、初めての参加でした。

「働き方」という観点ではなるほど!と思うことが
結構ありました。
私自身はフリーランスなので会社(組織)での
働き方とはちょっと違うところもあります。

ただ、自分にあった働き方を模索するという部分や
「働く」上で避けられない相手(お客さん、同僚・仲間など)との
向き合い方といった根幹の部分は同じだと思います。

突き詰めればそれこそが
「働き方改革」の本質なのかなと感じました。
残業を減らすとかリモートワークやテレワークは
あくまでも手段だと思いますし。

初めてのCybozu Day。
いろいろな角度から「働き方」について考える時間となり
とても有意義な時間を過ごすことができました。

来年も参加したいなと思いました。

[技術]Wordcamp Tokyo 2016に行ってきました

気がついたら1ヶ月以上も前の出来事ですが
9月の17日、Wordpress のイベントである
「Wordcamp Tokyo 2016」に行ってきました。

Wordcamp Tokyoとは

Wordcamp Tokyoは、年に1回開催されており
Wordpressに関連した技術や様々な情報を
いろいろなジャンルスピーカーの方がセッション形式で
お話して頂くWordpress関連の大きなイベントです。

より詳しい内容については、以下のリンクを
参照ください。

Wordcamp Tokyo 2016

聴講したセッション

私が実際に聴講したセッションのうち気になったもの
興味深いなぁと感じたものについて書いてみます。

WordPress REST APIについて

APIとは「Application Program Interface」の略称です。

簡単に言えば、外部のシステムから特定の機能(プログラム)を
呼び出すための手続きを定義したインタフェース群となります。
Wikipediaのリンク:APIとは

例をあげれば、Facebookへ外部のリンクをシェアするという行為。
あまり意識してはいないかもですが、これもFacebookに対して
リンクをシェアして投稿するというFacebook側が提供している
APIが実行されることにより、自分のフィードに投稿が
行われている形になっています。

このAPIがWordpressにおいても提供されているという紹介でした。

これを使えば、Wordpressで書いた記事をWordpressが載っている
サーバではなく、別のサーバのシステムで記事を表示できたりと
Wordpressを使う幅が広がるなと感じました。

どう使うかは別として、少し触ってみようかなと思います。

Webページの表示速度の考え方について

Webページの表示高速化について聞きました。

ネットの回線が3G回線、LTE(4G)と発達したことにより
表示速度は随分早くなりました。

私、たまに、LTEの通信料制限で3G相当の速度に
なってしまうことがあるのですが、あまりの遅さに
スマホで検索をするのをやめてしまうくらいです。
※ 当時はそれでも早いと思っていたのだから不思議です

話を戻しますと、このページの表示速度ですが
世界標準基準値は

表示開始時間:0.5秒以内
→ページが表示され始めた時間
表示完了時間:2
→ユーザが操作可能になった時間

だそうで…
この結果に驚きを隠せませんでした。。。
ちなみに、日本国内の様々なWebサイトで
この基準をクリアしているところはないそうです。

この表示速度、そこまで重要視される1番の理由は

表示が遅いサイトは2度とアクセスされることがない

からだそうです。
確かに自分に置き換えて考えるとそうだなぁと思います。
表示が遅いと、もう見なくていいかなと思いますし。

上記、いろいろと書きましたが、このセッションで
お話された方はこんな興味深いことも話してました。

WebページあたりのHTMLファイルのサイズが
200KBを超えるとLTEでは3秒以内での表示はできない。
そのため、高速化をさせるためには
「どれだけ早くできるか」
ではなく
「どれだけ遅くなるのを許せるのか」
という風に切り替える必要がある。

※HTML(Hyper Text Markup Language)の略で
 Webページを表示するのに使用されている言語です

200KB。。。
スマホやデジカメで撮った写真を
1枚表示しようとしただけで余裕でオーバーしてしまいます。

この話を受け、ページの表示速度の改善(パフォーマンス)と
コンテンツの内容の充実は相反するものなのだと
感じずにはいられませんでした。

AMPによる検索の高速化について

AMPとは「Accelerated Mobile Pages」の略称です。

これは、Googleさんのプロジェクトの1つで
モバイル向けのWebページの表示速度を早くしてくれるものです。

これをモバイル向けのWebページに対応すると
Googleで検索した場合に、検索結果ページの上位に
優先的に表示が行われる形になります。
(Googleの検索順位には関係しない)

セッション内でデモを見せていただきましたが
表示がとても早くて驚いたのを覚えています。
また、それだけではなく、検索結果ページ上で
カルーセル表示(スライドショー表示)され
スワイプ動作により、別の記事を見ることが
できたりもしていました。
※ 画像がないので、説明しづらいのですが・・・・
※ 写真を取ればよかった。。。

Googleの検索順位とは無関係とはいえ
AMPに対応していると検索ページの上位に
表示されるので、Webサイトへの誘導をするには
有効な手段の1つだと感じました。

また、1つ前に書いたセッション内容にも
関連してきますが、ページの表示が早いので
Webページに訪れてくれた方が、表示が
遅いといった理由で見ることを断念することを
防ぐことができるのかなと感じました。

Webページのアクセシビリティについて

WordPressというよりは
Webサイト全般的な内容になるのですが

「Webページのアクセシビリティ」

について話を聞きました。

アクセシビリティ(accessibility)とは高齢者・障害者を含む誰もが
様々な製品や建物やサービスなどを支障なく利用できるかどうか
あるいはその度合いを表す言葉です。
Webアクセシビリティとは、主に高齢者や障害者など身体に障害や
不自由のあるWeb利用者に配慮したホームページなどの
Webサービスを提供し、アクセスした誰もが容易に情報を
共有できる状態にあることをいいます。

参照:日本WEBアクセシビリティ協会

このWebページのアクセシビリティ、まだ私が
会社員として働いていた数年前になるのですが
ある企業と連携して、Webページのアクセシビリティを
診断するというサービス(もうなくなりましたが)を
作ったということもあり、言葉を聞くと興味を
惹かれてしまいます。

セッションの内容では、以下の内容を話されていました。
・アクセシビリティの規格について
日本のWebアクセシビリティはJIS規格として
「JIS X 8341:2016」というものがあります。

それとは別にW3Cと呼ばれる国際的な営利団体が
定めている基準「WCAG2.0」というものもあります。
※ W3C(World Wide Web Consortium)の略です

数年前までは、JIS規格は国際基準から考えると
内容的にもレベル的にも遅れていたのですが
話を聞いた2016年時点では、WCAG2.0 と同等に
なったとのことでした。
日本においても、Webアクセシビリティが
重要視されているのだと思わずにいられません。

・どんな方向けに必要なのか
それでは、このWebアクセシビリティ
どのような方向けに必要なのでしょうか。

上記のサービスを作っていた頃は、障害を持たれた方が
Webページを見やすくなるようにということで
ターゲットは「障害を持たれた方」に重きがおかれて
いたように感じました。

しかし、PCだけではなく、スマホやタブレットといった
様々なマルチデバイスでのWebの閲覧が容易になり
モバイルフレンドリーやモバイルファーストと言われる
現在においては、障害を持たれた方だけではなく
セッションの中でも話されておりましたが

すべての人のためにWebサイトを見やすくする。
そのことを目的として、Webアクセシビリティを
適用することが大切

これについては私も納得でした。
たまに、すごく見にくいなぁと思うページを
見かけると「う~ん」と思ってしまいます。

その反面、どちらかというと作る側に近いところに
いるので、そのあたりのことを気にかけていかなくては
ならないなぁとも感じました。
Web制作は専門ではないので大したことはできませんが…

・どのように対策すればいいのか
では、どのように対策すればよいのか。
セッション内ではいくつか例を挙げて説明されてました。

Web制作に関わる技術的なところは割愛させていただくとして
簡単に列挙します。

○読みやすさ(文字編)
 ・行間を1.5文字以上あける
 ・ページの横スクロールはさせない
 ・均等割り付けは行わない
  ※ Wordのフォント設定にある文字間の設定の1つです

○読みやすさ(コンテンツ編)
 ・空スペースに気を付ける
  文字間の不必要な空白のことです
 ・別ページに誘導するためのボタンのサイズを大きめにする
 ・一般的でない用語や略号は説明を入れる
 ・ページのコントラスト比に気を付ける
  コントラスト比もW3Cの規格で規定されています
 ・点滅する文字はできるだけ控える
  使用する場合は、5秒以内で停止するようにする

といったことを挙げておりました。
WCAG2.0のガイドラインを見るともっと細かなことが
書かれています。
興味のある方は、以下リンクを見てみるといいと思います。
WCAG2.0ガイドライン

まとめ

いろいろなセッションを聞いてきました。

WordPressに関わるセッションだけかと思っていたのですが
そんなことはなく、ページの高速化、難しいのでここには
書いていませんがページのセキュリティのことだったりと
Webサイトに関わることもあったりと楽しいひと時でした。

来年も予定をつけて参加したいと思います。

[技術]PHPをソースからインストールした環境に後からモジュールを追加する方法

PHPロゴ

Linux系サーバ上でWebのシステムをPHPを使って構築する場合
Webサーバ(Apacheなど) + PHP + DB(MySQLなど)という
環境で作るのが一般的だと思います。

そのうちPHPモジュールをインストールするには
yumrpmapt-getのようなパッケージインストール
コマンドを使って行う方法とソースファイルから自前で
コンパイルしてインストールを行うという2つの方法があります。

どちらでインストールしても差異はないのですが
共にメリット/デメリットがあります。

方法 メリット デメリット
コマンド使用 インストールが容易
環境に依存する
カスタマイズが大変
手動 カスタマイズが容易
環境に依存しない
インストールが難しい

このうち、カスタマイズ性ですが、コマンドで行った場合は
PHPパッケージ内の拡張モジュールも含め、全てのものが
対象となり、不要なものまでインストールされてしまいます。

手動で行った場合はPHPモジュールのコンパイル時に
必要なオプションを指定することができるため
必要最低限のものだけインストールすることができます。
 参考:指定可能なオプション(一部)

しかし 必要最低限のものだけ であるために
後から機能を追加/変更するとなった場合には
その機能をPHPに新たに組み込む必要がでてきます。
 ※ DBをMySQL→PostgresSQLに変えたい
   SSH(https://~)対応したいなどなど

新たに追加するには、再コンパイルを行い
拡張モジュールを追加したPHPモジュールを
作り直さなければなりません。

PHPを作り直すことになるため、機能追加により
モジュールがうまく生成できない又は壊れてしまう
というリスクが発生します。

そういった再コンパイルをせずにPHPに機能追加を
行うのに便利なのが phpize というコマンド。

これはPHPを再コンパイルすることなく
拡張モジュールだけを作成できるコマンドです。

なので
 1.phpizeで拡張モジュールだけを作成
 2.PHPの設定ファイル変更
 3.Webサーバ再起動で設定反映
をするだけで機能追加を行うことができます。

やり方

PHP に curl.so という拡張モジュール追加を
例としてやり方を説明します。
注)パスはそれぞれの環境に読み替えてください

1.PHPソースファイルにある extension フォルダの
 配下にある curl フォルダに移動

cd /usr/local/src/php/extension/curl

2.phpize コマンドを実行し、configure ファイルを作成

phpize

3.configure を実行し、Makeファイルを作成
 [–with-curl] オプションは curl を作成する際に
 必要となるため追加します
 ※ 他の機能の場合は、各モジュールそれぞれ固有の
   オプションをつける必要があります

./configure --with-curl

4.Makeを実行し、モジュール作成

make

5.作成したモジュールをインストール

make install

これで curl.so が作成完了です。
作成後のファイルの場所は php-config コマンドの
extension_dir の設定箇所に依存します。

/usr/local/php/lib/extensions/no-debug-non-zts-20100525

php-config の内容を変更していなければ
上記のようなパスに配置されます。
※ extensions 以下のフォルダ名は環境により変わります

6.作成したモジュールを読み込むため、php.iniを編集
php.ini ファイル内の Dynamic Extenshions のあたりに

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions :
;;;;;;;;;;;;;;;;;;;;;;
 ・
 ・
;extension=php_xsl.dll

extension=curl.so ★
 ・
 ・

★の行を追加します。

7.Webサーバ(Apache)を再起動

service httpd restart

又は

apachectrl restart

 ※ 環境により、apache2ctrlの場合もあります
又は

/etc/rc.d/init.d/httpd restart

 ※ Apache を自前でインストールした場合は
   このような方法になるかと思います。
   ただし、OS/Apacheのバージョンによっては
   上記コマンドが使えない場合があります。

まとめ

 手動でPHPをインストールした後、機能追加を行う際
 phpize コマンドを使用することで再作成のリスクを
 負うことなく、PHPの拡張を行うことができます。

 PHPでWebシステムを作る人は知っておくと
 便利なコマンドの1つかもしれません。
 (私自身もつい最近まで知りませんでした。。。)

[技術]Excelで複数条件にマッチする行の合計値の求め方

Excelを使用して金額などの集計を行う際
複数の条件にマッチする行の合計値を算出するやり方。

Excelマクロを使わず、計算式のみで算出する方法です。

ここ数日、Excelで資料を作る機会があったので
備忘を含めてメモを書いておく。


※※※※※※※※※※※※※※※※※※※※
以降の表に関して閲覧環境により全てが
表示されない可能性があります。
その場合、お手間をかけますが、横画面表示
又はPC環境での閲覧をお願いします。
※※※※※※※※※※※※※※※※※※※※

集計対象となる表

A B C D E
品目 ジャンル 2015/01 2015/02 2015/03
3 パソコン 家電 200,000 20,000 80,000
4 テレビ 家電 220,000 270,000 20,000
5 HDD PC用品 50,000 80,000 10,000
6 洗濯機 家電 300,000 18,000 250,000
7 iPad PC用品 100,000 50,000 220,000

○ジャンルが「家電」である品目の2月~3月分の合計を
 求める方法としては、以下の3つが考えられます。
  1. IF関数、SUM関数を使用して行う
  2. SUMIFS関数を使用して行う
  3. SUMPRODUCT関数を使用して行う

この3つのうち、一番スマートに計算できるのは 3番 となります。
やり方を説明します。

SUMPRODUCT 関数
 書式 : SUMPRODUCT(配列1,配列2,配列3,・・・)
 説明 : 範囲または配列の対応する要素の
       計算し、その計算結果の合計を返します。
       ※ Excelの関数説明より

この関数のいいところは引数(配列1,配列2 など)に対して
計算式を書くことができることと関数の説明にもある通り
配列同士の論理積で計算できることにあります。
※ 論理積とは 中学/高校の数学で学んだ論理演算で
   A AND B : A と B が両方成り立つ
   A OR B : A と Bの少なくとも1つが成り立つ
  などです


よく使われる SUM関数、COUNT関数などの場合
合計範囲や検索範囲のように、あくまで
Excelの範囲を指定することしかできません。

SUM関数
 書式 : SUM(数値1,数値2,・・・)
       SUM(セルの範囲)
       ※ セルの範囲 → C3:C6 のように指定
         (C3セルからC6セルまでの意味)
 説明 : セル範囲に含まれる数値を全て合計する。
       ※ Excelの関数説明より

COUNT関数
 書式 : COUNT(数値1,数値2,・・・)
       COUNT(セルの範囲)
       ※ セルの範囲 → C3:C6 のように指定
         (C3セルからC6セルまでの意味)
 説明 : 範囲内の数値が含まれるセル(範囲)の個数を返す。
       ※ Excelの関数説明より


話を戻して、実際の記載方法ですが
まず、各条件を計算式化します。
 1.ジャンルが「家電」である → IF(B3:B7=”家電”)
 2.期限が「2015/02」である → IF(C2:E2>=201502)
 3.合計値検索範囲 → C3:E7
※ 3の条件に関しては、1と2の条件を満たすもの全てが対象と
  なるため、論理積ではなく論理和となります。

SUMPRODUCT 式に当てはめると、このようになります。
SUMPRODUCT(([1の条件] AND [2の条件]) OR [3の条件])
→SUMPRODUCT((B3:B7=”家電”)*(C2:E2>=201502),(C3:E7))

この計算式が展開されると

A B C D E F
品目 ジャンル 2015/01 2015/02 2015/03 展開式
3 パソコン 家電 200,000 20,000 80,000 ※1 100,000
4 テレビ 家電 220,000 270,000 20,000 ※2 290,000
5 HDD PC用品 50,000 80,000 10,000 ※3 0
6 洗濯機 家電 300,000 18,000 250,000 ※4 268,000
7 iPad PC用品 100,000 50,000 220,000 ※5 0
658,000

SUMPRODUCT(([1の条件] AND [2の条件]) OR [3の条件])
となるので
※1:
 ((TRUEFALSE)200,000)+(TRUETRUE)20,000)+
 (TRUETRUE)80,000))
 =(10200000)+(1120000)+(1180000) = 100000
※2:
 ((TRUEFALSE)220,000)+(TRUETRUE)270,000)+
 (TRUETRUE)20,000))
 =(10220000)+(11270000)+(1120000) = 290000
※3:
 ((FALSEFALSE)50,000)+(FALSETRUE)80,000)+
 (FALSETRUE)10,000))
 =(0050000)+(0180000)+(0110000) = 0
※4:
 ((TRUEFALSE)200,000)+(TRUETRUE)20,000)+
 (TRUETRUE)80,000))
 =(10300000)+(1118000)+(11250000) = 268000
※5:
 ((FALSEFALSE)200,000)+(FALSETRUE)20,000)+
 (FALSETRUE)80,000))
 =(00100000)+(0150000)+(01220000) = 0

100000(※1)+290000(※2)+0(※3)+268000(※4)+0(※5)
=658000

となります。
関数の引数を増やすことで、条件を容易に増やすことが
できるため、複数条件で集計を行いときなどに便利です。


以下、2つの方法に関しても簡単に説明します。
 1. IF関数、SUM関数を使用して行う
 2. SUMIFS関数を使用して行う


1.IF関数、SUM関数を使用して行う
 IF関数を使用して行う場合、条件判定しか行えないため
 作業列を設ける必要があります。
 E列の後ろに、C/D/E それぞれに対応するF/G/H列を設ける。

 F3セルに、以下条件文を入力し、F3~H7にコピーする。
  IF($B3=”家電”,IF(C3>=201502,”1″,”0″),”0″)

 さらにI列を設けて、I4~I7セルにコピーを行う
 行単位での合計値を算出する。
  SUM(IF($F3=”1″,$F3,0)+SUM(IF($G3=”1″,$G3,0)+
  SUM(IF($H3=”1″,$H3,0)

 I列の合計値を求める。
  SUM(I3:I7)

C D E F G H I
2015/01 2015/02 2015/03 C列用条件 D列用条件 E列用条件 行計
3 200,000 20,000 80,000 0 1 1 100,000
4 220,000 270,000 20,000 0 1 1 290,000
5 50,000 80,000 10,000 0 0 0 0
6 300,000 18,000 250,000 0 1 1 268,000
7 100,000 50,000 220,000 0 0 0 0
658,000

2. SUMIFS関数を使用して行う

SUMIFS関数
 書式 : SUMIFS(合計範囲,条件範囲1,条件1,条件範囲2,条件2,・・・)
 説明 : 特定の複数条件に一致する数値の合計を求めます。
       ※ Excelの関数説明より

似た関数ではSUMIFというのもあります

SUMIF関数
 書式 : SUMIF(範囲,検索条件,合計範囲)
 説明 : 指定された検索条件に一致するセルの値を合計します。
       ※ Excelの関数説明より

 SUMIFS関数を使用する場合、関数説明にもあるように
 複数条件を指定することができます。
 ただし、合計範囲自体は複数列(行)指定を行うことができません。
 また、合計範囲と条件範囲指定は合わせる(行と行、列と列)必要も
 あります。
 そのため、合計したい列を個別に指定する必要がでてきます。

 ですので、合計値を求める際は
  1.201501 の家電の合計:下表(※1)
  2.201502 の家電の合計:下表(※2)
  3.201503 の家電の合計:下表(※3)

 の合算を求めることとなります。
 ただし、2月~3月分という指定があるため
 1 の合計値は計算せずとも 0 となります。

A B C D E
品目 ジャンル 2015/01 2015/02 2015/03
3 パソコン 家電 200,000 20,000 80,000
4 テレビ 家電 220,000 270,000 20,000
5 HDD PC用品 50,000 80,000 10,000
6 洗濯機 家電 300,000 18,000 250,000
7 iPad PC用品 100,000 50,000 220,000
※1 ※2 ※3
0 308,000 350,000 658,000

※2.201502 の家電の合計
 SUMIFS(D3:D7,B3:B7,”家電”) 又は SUMIF(B3:B7,”家電”,D3:D7)
  20,000 + 270,000 + 18,000 = 308,000
※3.201503 の家電の合計
 SUMIFS(E3:E7,B3:B7,”家電”) 又は SUMIF(B3:B7,”家電”,E3:E7)
  80,000 + 20,000 + 250,000 = 350,000

 ※ 今回のケースでは、SUMIFSで指定可能な列の条件は
  「ジャンル」のみであるため、SUMIF関数を使用する
  でも問題なしです

まとめ

以下、3つの方法を紹介しました。
  1. IF関数、SUM関数を使用して行う
  2. SUMIFS関数を使用して行う
  3. SUMPRODUCT関数を使用して行う

下の方法にいくにつれ、計算式自体は複雑になりますが
汎用性は大きくなっていきます。

簡単に用途をまとめると

方法 表の大きさ 条件数 集計対象
1 小さい 1つ以下 単一行/列
2 大きい 1つ以上 単一行/列
3 大きい 1つ以上 複数行/列

計算式にて合計値を算出する際の用途にあわせて
使い分ければ大量な表の合計値の計算も簡単にかつ
正確に行うことができることとなります。

参考になれば幸いです。

[技術]CEATEC JAPAN 2014 に行ってきました

10月11日、7日~11日で開催されていた
CEATEC JAPAN 2014に行ってきました。

IT業界に身を置いてあることもあり、テクノロジーの
最新動向は気になるので、2010年からこの時期に
なると毎年のように参加しています。

2011年に参加したときに書いた記事
CEATEC JAPAN 2011 に行ってきました

3年前の2011年は
 ・スマートグリッド
 ・3Dテレビ / 3D関連製品
 ・4Kテレビ
 ・BtoBのクラウド技術
 ・センサ関連

といったところがSONY、Panasonic、東芝、富士通
NECなど大手企業をはじめメインとなるブースが
ほとんどでした。
※ 3Dテレビ、もう3年前になるんですね~。

2014年の今年ですが、前評判通りSONYは出展して
いませんでしたがPanasonic、東芝、富士通
NECなどといった企業は出展しており、さまざまな
技術が展示されていました。

出展企業という面ではちょっと面白いと思ったのは
多くの大学研究室の研究技術が紹介されていたり
アジア圏の企業の出展が多かったのに時代の
流れを個人的に感じました。


出展されていた内容ですが
今年の時代を表すかのような内容でした。

2011年の頃と同様にセンサ関連、クラウド関連や
テレビでは4K、8Kなどといったものがまずありました。

Panasonic 4K
SHARP 4K

ただ、それ以上に多かったのは

ウェアラブルデバイス
水素エネルギーの利用

に関連する技術でした。

JINS メガネ ウェアラブル
京セラ
おさいふケータイジャケット

1つ目の写真はJINSメガネの ウェアラブルデバイス。
2つ目の写真は京セラ社のウェアラブルデバイス。
どちらもつけた人間の様々な状態(温度や心拍数など)の
収集を行う。

3つ目はiPhoneでおサイフケータイとして利用できるカバー。

赤ちゃんウェアラブル

こちらは赤ちゃんにつけるウェアラブルデバイス。
足につけているデバイスで赤ちゃんのいろいろな状態を
測定するもの。
また、右側にぶら下がっている丸い装置で赤ちゃんの
ライフログ(ご飯をあげた時間、体温など)を定期的に
測定できるらしいです。
将来的にこの2つは連動するように検討しているらいいです。

ウェアラブルデバイスは大人だけでなく、子供や
赤ちゃん向けのものも研究されているみたいで
すごいなと感じました。


もう1つは 水素エネルギー の利用に関して
TOYOTA 水素カー

数年前くらいにマツダが水素ロータリーというものを
発表して以来、水素を使ってということを耳にすることが
ありませんでした。
しかし、、今回、TOYOTA(上の写真)やHONDA、MAZDAと
いった自動車メーカーが揃って水素を使用した車を
展示していました。
これには個人的にはちょっと驚きでした。
展示で車として形があったということは
そのうち発売されるのでしょうか。

車以外にもスマートグリッド技術に水素エネルギーを
取り入れていたり、HONDAのブースでは車に限らず
「スマート水素ステーション(SHS)」のモックアップが
展示されていました。
これは、水素エネルギーを日常生活に取り入れることを
目的としたものでした。

HONDA SHS

ここ最近では電気自動車や蓄電器などを代表として
電気エネルギーを日常生活に取り込むといったことが
現実になりました。

もしかしたら、遠くない未来では電気に加えて
「水素」を使用する時代が来るのかもしれません。


上で紹介した以外にもたくさんの興味深い展示がありました。
新しい技術に触れるというのは、いちエンジニアとして
楽しいし、刺激を受けます。

自分でも新たな技術を生み出せるくらいに
日々、精進したいとCEATEC を見終わった後に
感じました。