11/29/2016

Excel。AVERAGEIFS。年代別の平均年齢を算出したいけど、どうしたらいいでしょうか?


Excel。年代別の平均年齢を算出したいけど、どうしたらいいでしょうか?

<AVERAGEIFS関数とIFERROR関数>


なんでも、社員登録などの名簿で、年代別の平均年齢を算出したいけど、
ピボットテーブルを使っても、フィールドを作らないといけないし、かといって、
条件をアレコレ別の列に作って算出させようとしても、
なんか大変で、うまくいかないので、何かアイディアはありませんか?だそうでして、

確かに部署によっては、会社の将来を見越して、
どこの年代を中途で採用するか?なんてこともあるのでしょうね。

次のようなことをやりたいわけなんですね。

年代別ごとにその件数を数えるということは、
一の位を切り捨てれば、比較的簡単なのですが、
今回は、年代別の平均値を求める必要があるわけです。

けど、そもそも、年代別の平均値を算出したいだけということに着目してみましょう。

要するに、条件付きで平均値を算出できればいいわけです。

ポイントとなるのは、「Excelは、期間の算出が比較的苦手」ということなのです。

そこで、AVERAGEIFS関数を使ってみたいと思います。

AVERAGEIF関数でもいいように思いますが、AVERAGEIFS関数にするのには、
例えば、20歳代の場合、条件は20歳から29歳。

つまり、「20以上30未満」という条件になるわけです。

Excelには、Accessのような、between~andのようなものがありませんので、
20以上と30未満という2つの条件が発生します。

そのため、AVERAGEIF関数の条件が一つのものでは、
算出することが出来ないというわけです。

では、早速求めていきましょう。
F2をクリックして、AVERAGEIFS関数ダイアログボックスを表示しましょう。

平均対象範囲ですが、年齢のデータですから、$C$2:$C$21

条件範囲1は、$C$2:$C$21

条件1は、E2に10と入力されていますので、
10歳以上ということになりますので、">="&E2

">="は、ダブルコーテーションをつけないといけませんね。
そして、&を使って結合させます。
条件を">=E2"としてしまうと、文字になってしまいますので、注意が必要ですね。

条件範囲2は、$C$2:$C$21

条件2は、"<"&E2+10

これで、OKボタンをクリックしましょう。

なお、数式は、
=AVERAGEIFS($C$2:$C$21,$C$2:$C$21,">="&E2,$C$2:$C$21,"<"&E2+10)
オートフィルを使った数式をコピーしてみましょう。

10歳代と60歳代はデータがないので、#DIV/0!のエラーが表示されてしまっていますので、
ここは、IFERROR関数を使って、数式を修正していきましょう。

修正後の数式は、
=IFERROR(AVERAGEIFS($C$2:$C$21,$C$2:$C$21,">="&E2,$C$2:$C$21,"<"&E2+10),"")
修正したら、オートフィルで数式をコピーしておきましょう。

これで、完成しました。

一見、見た感じ、長い数式になってしまいましたが、
このようにAVERAGEIFS関数を使ってあげれば、
「ここからここまで」というデータの平均を算出することが出来ますよ。

11/28/2016

今週のFacebookページの投稿 2016/11/21-2016/11/27

今週のFacebookページの投稿 2016/11/21-2016/11/27

<Facebookページ>

Facebookページで【書いてみた】ワンポイントです。

11月21日
Excel。hour関数は時間を抽出する関数です。

11月22日
Excel。minute関数は分を抽出する関数です。

11月23日
Excel。second関数は秒を抽出する関数です。

11月24日
Excel。edate関数は指定した日付の何か月後を算出関数です。

11月25日
Excel。eomonth関数は指定した日付の何か月後の末日を算出関数です。

11月27日
Excel。weekday関数は日付の曜日を番号として算出関数です。

Excelテクニック and  MS-Office recommended by PC training
https://www.facebook.com/exceltechniqueandmsoffice/

Excelのショートカット一覧はこちらで書いております。
http://yandss.p2.weblife.me/shortcutkey.html

11/26/2016

Access。TABLE。テーブル。フリガナの自動設定を確認してみよう。


Access。テーブル。フリガナの自動設定を確認してみよう。

<Accessのテーブル>


最近、Access研修の依頼が増えてきているようでして、
必ずお話している、フリガナを自動的に入力する設定を、今回はご紹介していきます。

なお、Access2013を使用しております。

次のテーブルがあります。

フリガナの設定をご紹介する前に、
データ型について気になった方がいらっしゃると思いますので、
お伝えしておくと、
データ型。「短いテキスト」となっていますが、これは、旧来の「テキスト型」のことです。

旧来の「メモ型」は、「長いテキスト」というように変わっております。

まぁ、確かに、わかりやすくなったような気もしますが、
Access2010までとAccess2013からとでは、異なっている点があったりしますね。

さて、本題に戻りましょう。
今回の動きとしては、氏名フィールドに入力したら、
フリガナフィールドにその入力を元に、
フリガナが自動的に入力されるということをさせたいわけです。

そこでまず、当たり前ですがテーブルには、フリガナのフィールドが必要になります。

研修でも、よくお話しするのですが、設定するのは、非常に簡単なのですが、
逆に設定してしまう方を多く見受けますので、最初の最初が肝心になります。

氏名フィールドに入力したら、
フリガナフィールドにフリガナのデータが入力されてくるわけですよね。

ということで、クドイようですが、設定をするのは、氏名フィールドということになります。

そして、Accessでは、基本細かいことや、
設定を行うには、「プロパティ」で設定する事になって行きます。

では、氏名フィールドをクリックして、フィールドプロパティを確認して行きましょう。

フィールドプロパティのふりがなのボックスをクリックして、ビルドボタンをクリックしましょう。

「ふりがなウィザード」が起動してきますので、設定して行きます。

ふりがなの入力先。

今回は、テーブルのフリガナフィールドに入力するようにしますので、
「既存のフィールドを使用する」にチェックをします。

そして、ふりがなの文字種を設定していきますが、今回は、全角カタカナにします。

では、完了ボタンをクリックしましょう。

確認のダイアログボックスが表示されてきますので、OKボタンをクリックします。

ふりがなに、フリガナというのが表示されていますね。

これで、設定完了したことが確認できました。

これで、氏名を入力すると、フリガナに、そのフリガナが入力させるようになりました。

Excelだと、PHONETIC関数というのを使ってフリガナを表示させるようにするのですが、
Excelだと、関数が設定されているセルには、当然”数式”が設定されていますので、
フリガナの読みがことなっている場合は、数式を消すわけにはいきませんので、
その元のデータのフリガナを編集する必要がありますが、
Accessの場合は、数式ではありませんので、読みが異なる場合には、
直接入力して修正することが可能です。

このような、一点だけからも、
ケースバイケースで、Excelを使ったほうがいいのか?Accessを使ったほうがいいのか?
現場では考える必要があるのかもしれませんね。

11/23/2016

Excel。VBA。CSVファイルを追加した後に並び替えをしてみたら、並ばない?

Excel。VBA。CSVファイルを追加した後に並び替えをしてみたら、並ばない?

<VBA フリガナ PHONETIC関数>


日々の売上データなどをコピーして、
マスターファイルに貼り付ける作業をしているそうなのですが、
ちょっと困ったことがあるとのこと。

なんでも、そのマスターファイルを使って店舗ごとの売上集計をしたいので、
小計を行うには、キーとなるフィールド。

つまり店舗ごとに並び替えをおこなってから、小計を行う必要があるのですが、
なぜか、昇順でも、降順でも、並び替えをしても、うまく並んでくれなくて、
小計をするのが大変で困っているとのこと。

次のようなデータがあります。

では、実際に確認してみましょう。

CSVファイルのデータをコピーして、Excelファイルに貼り付けます。

問題なく貼り付きましたね。

それでは、Noを振りなおして、店舗名を昇順で並び替えをしてみましょう。

なんと、大阪がひとつにまとまっておりません。

なぜ、このようなことになってしまうのかというと、
H列にフリガナという列を作ってみると原因がわかるようになります。

では、H2にPHONETIC関数ダイアログボックスを表示しましょう。
参照は、C2 を入力して、OKボタンをクリックしましょう。

その後、オートフィルで数式をコピーします。
なお、数式は、

=PHONETIC(C2)


フリガナが表示されましたが、どうなりましたでしょうか?

なんと、オオサカとフリガナが表示されているものと、
大阪となっているものに分かれていますよね。

原因は、先ほどのCSVファイルのデータ。

Excelは、入力するとその入力の際の情報を保持するようになっているので、
PHONETIC関数を使うと、その入力情報を表示するのですが、
CSVファイルなど、入力していない場合は、基本的に入力情報を持っておりません。

そのため、このようなことが起こってしまったわけです。

ですから、並び替えをしたときに、大阪はひとつに集まらないので、
小計が出来ないということになったわけです。

このような場合は、各店舗の小計を求めたい場合には、ピボットテーブルを使うと、
こんなことも気にしないで、算出することが出来ますよ。

ということでもいいのですが、小計はともかく、並び替えをしたい場合は、
フリガナを振らなければ、並び替えが出来ません。

ふりがなの編集で、一つずつ入力していては、時間が掛かりすぎます。

そこで、VBAを使って解決して行きます。

開発タブのVisual Basicをクリックしましょう。

新しいモジュールの▼をクリックして、その中にある、
「標準モジュール」をクリックして、エディタを表示します。

Sub ふりがな()
    Range("c2:c42").SetPhonetic
End Sub

と入力し、VBAを閉じます。

Rangeは、範囲選択ですね。
SetPhoneticは、その範囲にフリガナ情報を設定します。

では、マクロを実行してみましょう。

H列をみると、なんと、大阪だったものが、オオサカに変わっています。

つまり、フリガナを振りなおすことが出来たのです。

このように、ちょっと、VBA知っておくと便利ですね。

11/21/2016

今週のFacebookページの投稿 2016/11/14-2016/11/20

今週のFacebookページの投稿 2016/11/14-2016/11/20

<Facebookページ>

Facebookページで【書いてみた】ワンポイントです。

11月14日
Excel。today関数は日付と時刻関数です。

11月15日
Excel。days関数は日数計算関数です。ちなみにver2013から登場です。

11月16日
Excel。date関数は数値から日付を算出関数です。

11月17日
Excel。year関数は年を抽出する関数です。

11月18日
Excel。month関数は月を抽出する関数です。

11月19日
Excel。day関数は日を抽出する関数です。

11月20日
Excel。time関数は数値から時刻を算出関数です。

Excelテクニック and  MS-Office recommended by PC training
https://www.facebook.com/exceltechniqueandmsoffice/

Excelのショートカット一覧はこちらで書いております。
http://yandss.p2.weblife.me/shortcutkey.html

11/20/2016

Excel。Bubble chart。バブルチャートを作るのが苦手という方が多いようなので。Excel2013編


Excel。バブルチャートを作るのが苦手という方が多いようなので。Excel2013編

<バブルチャート>


以前Excel2010での【バブルチャート】の作り方を
2回に分けてBLOGに書いたことがありますが、
今回はExcel2013で【バブルチャート】の作り方をご紹介していきます。

【バブルチャート】を作るのは、知っているとそんなに難易度は高くはないのですが、
知らないと作れないグラフの一つということもあって、「苦手」ということ、よく耳にします。

今回は次のような【バブルチャート】を作成していきます。

まず、【バブルチャート】を作るのにあたり、大切なのは、
このグラフを作るための表をしっかり作るということにつきます。

次のような表を用意します。

なぜ、表をしっかり作るのか?というと、当然Excelは表がないとグラフがつくれないから。
というだけではありません。

【バブルチャート】は、3系統の数値が必要になるグラフだからです。

つまり、今回でいうと、売場面積・売上・アイテム数という3つの数値があってグラフになります。

そして、範囲選択ですが、見出しは抜かしますので、
B3:D8が今回の範囲選択ということになります。

また、範囲選択した3列ですが、左から、横軸・縦軸・バブルの大きさということになっております。

まずは、作成してきます。
B3:D8を範囲選択して、【バブルチャート】を挿入していきましょう。

挿入タブの、散布図(X,Y)またはバブルチャートの挿入をクリックして、
バブルから3-D効果付きバブルを選択して、【バブルチャート】を挿入しましょう。

挿入しただけでは、なんだか全くわかりませんので、グラフタイトルを削除して、
軸ラベルを追加しましょう。

横軸を売場面積。縦軸ラベルを売上と入力して、縦軸ラベルは縦書きにしましょう。

縦軸ラベルは、縦書きにするといいですね。

縦軸ラベルの軸ラベルの書式設定を表示して、配置にある文字列の方向を、
「縦書き」に変更しましょう。

また、軸ラベルと縦軸・横軸とも文字の大きさも、わかりやすいように、調整しておきましょう。

あとは、それぞれのバブルが、どの店舗のバブルなのかがわかるといいですね。

まず、グラフ要素の追加から、データラベルにチェックマークをつけて、
その他のオプションをクリックすると、データラベルの書式設定が表示されてきます。

ラベルオプションの「ラベルの内容」のY値のチェックマークをはずし、
セルの値にチェックマークをつけてみましょう。

データラベル範囲ダイアログボックスが表示されます。

このデータラベル範囲の選択は、店舗名を設定しますので、A3:A8を範囲選択して、
OKボタンをクリックすると、それぞれのバブルに、店舗名を表示することが出来ます。

このようにすれば、簡単に店舗名も表示することが出来ます。

なお、プロットエリアを見やすいように塗りつぶしております。

何か機会がありましたら、【バブルチャート】作ってみてください。

11/17/2016

Excel。財務関数シリーズ。目標金額までの期間を求めるNPER関数


Excel。財務関数シリーズ。目標金額までの期間を求めるNPER関数

<NPER関数とROUNDUP関数とQUOTIENT関数とMOD関数>


今回取り上げる、財務関数シリーズは、目標金額までの期間を算出することが出来る、

NPER関数

NPERは、Number of PERiods で、ナンバー・オブ・ピリオドだそうです。

今回使う表は次のような表です。

年利は、0%ということはないのですが、今回もヘソクリということで算出してみようと思います。
年利を0%にすることによって、
算出される数値が合っている・いないがわかりやすくなりますので、最初の段階では、
年利は0%にすることをお勧めしております。

月額積立額ですが、今回は、頑張って、20,000円を積立てていくことにします。

そして、ゴールの積立目標額は、1,000,000円としました。

このような設定の場合、積立期間はどのくらいになるのか?を求めることが出来るのが、
今回ご紹介する【NPER関数】です。

さて、算出する前に財務関数の特徴として、
自分の手元から出ていく金額をマイナスにしておかないと、
最終的に算出される値もマイナスになってしまい、ピンときませんので、

B3の月額積立額を-20,000にしておきましょう。

では、B6をクリックして、NPER関数ダイアログボックスを表示しましょう。

利率には、B2/12 今回は年利ですので、月で算出する必要がありますので、
12で除算しておく必要があります。これは、PV関数やFV関数でもおなじみですね。

定期支払額は、毎月の支払額なので、B3ですね。

現在価値は、0。
この現在価値は、現時点で一括払いした時などの金額があれば入力します。

将来価値は、B4。目標金額ですね。

支払期日は、0。
支払いをいつ行うのか?ということを設定できます。0は各期の期末という意味になります。
また、1を入力しますと、各期の期首になります。

それでは、OKボタンをクリックしてみましょう。

B6には、50と算出されましたね。
1,000,000を20,000で除算すれば、当然50ですから合致していますね。
年利を0%にして算出したわけです。

B6の数式は、

=NPER(B2/12,B3,0,B4,0)

なのですが、年利を仮に0.1%にしてみましょう。

この数式のままでは、B6の積立期間が小数点表示になってしまいます。

これは、現実的にはおかしいので、繰り上げる必要が生じますので、
ROUNDUP関数を使う必要があります。

よってB6の数式を次のように修正する必要があります。

=ROUNDUP(NPER(B2/12,B3,0,B4,0),0)

このようにすれば、繰り上げりますので、現実的な期間になります。

また、このB6の数値は、「月単位」になっておりますので、年月にする場合には、
それぞれ、算出してあげる必要も生じます。

例えば、B7に年をB8に月を算出してみると、次のようになります。

B7には、除算して余りを除いた数を算出することが出来る。
【QUOTIENT関数】を使います。
数式は、

=QUOTIENT(B6,12)

最後にB8には、余りを求めますので、【MOD関数】を使います。
数式は、

=MOD(B6,12)

このように設定してあげることによって、年・月も算出することが出来るようになります。

11/14/2016

Excel。和暦を西暦に変換。けど日付がドットで区切られていて…どうしたらいい?

Excel。和暦を西暦に変換。けど日付がドットで区切られていて…どうしたらいい?

<DATEVALUE関数>


なんでも前任者さんが使っていた、古いExcelファイルだそうでして、その中に生年月日の欄があるのですが、なんと次の表のようになっていて、困っているとのこと。

どうやら、以前用紙で入力されていたものを、そのままExcelに入力したのではないかとのこと。C列には元号の頭文字が、そして、なんと生年月日が35.7.21と年月日が入力されていて、しかも、年と月の間には、ピリオドというかドットが入力されていて、区切られているというD列があるわけですね。

確かに、これでは、西暦にするにしても、年齢を算出するにしても、どうしようもありませんよね。

ということで、今回はこのような状態の場合にどうしたらいいのか?をご紹介していきます。

E列に、元号を生年月日に結合させればいいのでは?と考えると思いますが、どうなるのかを確認してみましょう。
E3をクリックして、=C3&D3
S35.7.21
と表示されましたが、ただ、文字を結合しただけで、表示形式を変えようとしても、変えることが出来ません。
では、一から入力しなおさないといけないのでしょうか?

そこで、登場するのが、【DATEVALUE関数】です。

それでは、E3をクリックして、DATEVALUE関数ダイアログボックスを表示しましょう。
難しくない関数なので、直接手入力でもOKですよ。

日付文字列には、C3&D3 と入力しましょう。
OKボタンをクリックしましょう。
数式は、
=DATEVALUE(C3&D3)
E3には、このように算出されます。

E3に表示されたのは、シリアル値。なので、表示形式を使って西暦の年月日の表示に変更していきます。その後、オートフィルで数式をコピーします。

このように、【DATEVALUE関数】を使ってあげれば、日付に変換することが出来ます。

この【DATEVALUE関数】は、結構実務的に役立つ関数で、次のようなケースでも使える関数です。

このケースは、年月日がそれぞれ、別の列に設定されている場合です。
この場合には、次のように【DATEVALUE関数】を使ってあげれば、日付にすることが出来ます。

DATEVALUE関数ダイアログボックスを表示して、今回は、日付文字列には、
C3&D3&"-"&E3&"-"&F3
と入力します。
数式は、
=DATEVALUE(C3&D3&"-"&E3&"-"&F3)
あとはOKボタンをクリックして、表示形式を変更するのと、オートフィルで数式をコピーすれば、完成になります。

元号がアルファベットの頭文字。すなわち、明治のM。大正のT。昭和のS。平成のH。というケースでは、-(ハイフン)で結合してあげる必要があります。

また、今回のC列が、明治・大正・昭和・平成という文字になっている場合の数式は、
=DATEVALUE(C3&D3&"年"&E3&"月"&F3&"日")というように、
年月日という文字で結合させる必要がありますので、ご注意ください。

まぁ、出来ることなら、Excelの入力は、2017/10/18のように入力してあげるのが、いいのかもしれませんね。

11/13/2016

今週のFacebookページの投稿 2016/11/07-2016/11/13

今週のFacebookページの投稿 2016/11/07-2016/11/13

<Facebookページ>

Facebookページで【書いてみた】ワンポイントです。

11月07日
Excel。iferror関数はエラー時の処理指定関数です。

11月08日
Excel。iserror関数はエラー時の処理指定関数です。ちなみに~ver 2003まで。

11月09日
Excel。iserr関数は#N/A以外のエラー判定関数です。

11月10日
Excel。ifna関数は#N/A時の処理を指定関数です。ちなみにver2013から登場です。

11月11日
Excel。isna関数は#N/Aのエラー判定関数です。

11月12日
Excel。error.type関数は数式の結果のエラー判定関数です。

11月13日
Excel。now関数は日付と時刻関数です。

Excelテクニック and  MS-Office recommended by PC training

Excelのショートカット一覧はこちらで書いております。

11/12/2016

今週のFacebookページの投稿 2016/10/31-2016/11/06

今週のFacebookページの投稿 2016/10/31-2016/11/06

<Facebookページ>

Facebookページで【書いてみた】ワンポイントです。

10月31日
Excel。not関数は指定した条件が成立しないことを判断関数です。

11月01日
Excel。rank.eq関数は順位をつける関数です。

11月02日
Excel。rank.avg関数は順位をつける関数です。ちなみに同順位を平均化した順位です。

11月03日
Excel。iseven関数は偶数かの判断関数です。

11月04日
Excel。isodd関数は奇数かの判断関数です。

11月05日
Excel。istext関数は文字列かの判断関数です。

11月06日
Excel。isnumber関数は数値かの判断関数です。

Excelテクニック and  MS-Office recommended by PC training
https://www.facebook.com/exceltechniqueandmsoffice/

Excelのショートカット一覧はこちらで書いております。
http://yandss.p2.weblife.me/shortcutkey.html

11/11/2016

Excel。Sheets。シートの保護の設定方法をおさらいしてみよう。


Excel。シートの保護の設定方法をおさらいしてみよう。

<シートの保護>

以前BLOGに書きましたが、なかなかExcelの操作のなかで、
やりたいことはわかるけど、設定方法がよくわからない・わかりにくい
と耳にする一つに、

【シートの保護】

がありますので、今回は、おさらい。

ということで、改めてですが、【シートの保護】について書いてみようと思います。

【シートの保護】は、文字通りに、シートを保護するものなのですが、
シートの保護自体のボタンをクリックすればいいこと自体は問題ないようなのですが、
その準備段階を忘れちゃう。あるいは、何それ?ということがあるようですね。

そこで、次の表を使って設定方法を確認してきましょう。

【シートの保護】を設定すると、このシート全体にフィルムを貼るというか、ラミネートするかのように、セルを編集することが出来なくなります。つまり、文字入力も出来なくなります。
とりあえず、【シートの保護】を行ってどうなるのかを確認してみましょう。

アプローチには、2箇所ありますが、まずは、ホームタブで【シートの保護】を行っていきます。

ホームタブの書式ボタンの▼をクリックして、「シートの保護」をクリックします。

シートの保護ダイアログボックスが表示されますので、
ここは、そのままOKボタンをクリックします。

なお、パスワードを設定すると、パスワードを入力し無い限り、
解除することが出来なくなりますが、パスワードを亡失してしまうと、
取り返しが付きませんので、ご注意ください。

また、このシートのすべてのユーザーに許可する操作にチェックマークをつけると、
シートの保護をしていても、その項目の作業に関してはOKになるという仕組みです。

OKボタンをクリックすると、シートの全部のセルは入力が出来なくなります。

それと証明するように、リボンの多くの操作がグレーアウト、
すなわち作業出来なくなっていることに、気づきます。

セルをクリックして、文字を入力してみましょう。

このようなメッセージダイアログボックスが表示されて入力することができません。

これが【シートの保護】なのですが、
では、入力したいセルがある時にはどうしたらいいのか?というと、
「セルのロック」をOFFにしてあげる必要があります。

それでは、シートの保護を解除しておきましょう。

まず、入力する必要があるセルを選択します。

イメージとしては、穴がいたフィルムをのせる感じですね。
目口鼻が開けてある顔のパックというほうがイメージしやすいかもしれませんね。

今回は次のところが対象になりますので、わかりやすいように緑色を設定しております。

A3とA7:A9とD7:D9を範囲選択します。

ホームタブの書式の▼をクリックして、「セルのロック」をクリックして、OFFにします。

通常はONになっているので、
【シートの保護】を設定するとロックされて入力編集作業が出来ないという仕組みなので、
OFFにする必要があります。

では、改めて、「シートの保護」をクリックして設定して行きましょう。

先ほど、「セルのロック」でOFFにした範囲選択したセルだけ入力することが出来ますよね。

このように、【シートの保護】は、【セルのロック】をしてから、【シートの保護】を行いますので、
まず入力したいセルがあるときには、
【セルのロック】をOFFにすることを忘れないようにしましょう。

なお、【シートの保護】は、複数のシートをまとめて設定は出来ませんので、
1枚ずつ設定して行きましょう。