4/13/2018

Officeソフトのスキルアップに追加しました。2018/04/13

Officeソフトのスキルアップに追加しました。

<目次サイト>

このBLOGの記事を、
目次サイトの【Officeソフトのスキルアップ】に追加しました。


Excel。アルファベットをランダムで重複しないで設定する方法
https://infoyandssblog.blogspot.jp/2016/05/excelabc.html


Excel。最初の一文字目と同じものが何件あるのか数える方法
https://infoyandssblog.blogspot.jp/2016/04/excelcountif.html


Excel。プログラマーやネットワークの人向け。進数変換をまとめてみました。
https://infoyandssblog.blogspot.jp/2016/04/exceldecimal.html

4/11/2018

Excel。Office365のExcel2016で追加された、SWITCH関数っていつ使うの?【SWITCH】

Excel。Office365のExcel2016で追加された、SWITCH関数っていつ使うの?

<SWITCH関数・CHOOSE関数+RANK.EQ関数>

新しく追加された関数は色々ありますが、
今回ご紹介する『SWITCH関数』が、いつ使うのか?というか、
CHOOSE関数でいいのでは?という感じなので、
CHOOSE関数より便利なところがSWITCH関数にはありますので、
確認してみましょう。

次の表があります。

10店舗の売り上げがありまして、
1位をS。2位をA。3位をBで、4位をCとして、
それ以外は空白という順位を算出した表です。

RANK.EQ関数だけでは、数値による算出しかしてくれませんので、
今回は、CHOOSE関数とRANK.EQ関数を組み合わせることにより、
文字によるランキングを設定することが出来ます。

D3の数式を確認してみましょう。

インデックスには、RANK.EQ(C3,$C$3:$C$12,0)

ランクを算出したいので、RANK.EQ関数をネストしています。

あとは、値1に”S”というように、
今回は、10店舗なので、最終的にD3の数式は、

=CHOOSE(RANK.EQ(C3,$C$3:$C$12,0),"S","A","B","C","","","","","","")

というようになります。

数式の難易度としては高くないのですが、
該当しない順位のところも、””=空白を入力しなくてなりません。

念のため確認してみましょう。

E列を作ってみました。

E3の数式は、
=CHOOSE(RANK.EQ(C3,$C$3:$C$12,0),"S","A","B","C")

先程の数式と違うのは、該当しない順位のセルを空白にしたいので、
””=空白を数式にいれないで作成したものです。

この数式をオートフィルでコピーしてみると、
#VALUE!というエラーが表示されてしまいます。

つまり、CHOOSE関数の欠点は、件数が多くなった場合は、
その件数分の値を必ず、入力しておかないといけない点なのです。

仮に、100店舗あった場合は、96個の””=空白を入力しないといけないわけです。

これは面倒以外の何物でもありません。

そこで、今回登場したのが、『SWITCH関数』

F列には、SWITCH関数を使って算出をしております。

F3のSWITCH関数ダイアログボックスは、次のようになっています。

式には、順位を算出するRANK.EQ(C3,$C$3:$C$12,0)を設定してあります。

これは、先程のCHOOSE関数と同じですね。
値1には、1。これは、1位だったらという意味ですね。

結果1には、”S”。
そして一番違うのは、

結果4の“C”を設定した後の、既定または値5に””=空白を設定している点です。

これは、該当しなければ、””という意味になります。

つまり、該当しない場合は空白にしたいわけですから、
この一つの引数だけとなります。

F3の数式は、
=SWITCH(RANK.EQ(C3,$C$3:$C$12,0),1,"S",2,"A",3,"B",4,"C","")
ということで、””=空白の個数が少ないですよね。

仮に店舗数が100店でも、96個の””=空白を設定する必要がありません。

このように、データ量が多い場合などでは、
CHOOSE関数を使うよりも、
新しくOffice365のExcel2016で登場した、
SWITCH関数を使うと楽に算出することが出来るようですね。

4/09/2018

今週のFacebookページの投稿 2018/04/02-2018/04/08

今週のFacebookページの投稿 2018/04/02-2018/04/08

<Facebookページ>

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

4月02日
Excel。入力規則。エラーメッセージ。
情報は、エラーメッセージの"はい"をクリックすると、
許可されて無効なデータでも入力することができますね。

4月03日
Excel。入力規則。エラーメッセージ。
情報は、エラーメッセージの"OK"をクリックすると、
無効なデータでも入力することができますね。

4月04日
Excel。入力規則は、
設定したいところを先に範囲選択して一括で設定する方が楽ですよね。

4月05日
Excel。関数。
関数の引数=()の中に、関数を使うことをネストといいますね。

4月06日
Excel。オートSUMボタンの必殺技!
3-D集計は知っていると便利ですが、手順がややこしいですね。

4月07日
Excel。3-D集計は、合計だけじゃなくて、
SUM関数・AVERAGE関数・COUNT関数・COUNTA関数・
MAX関数・MIN関数の6種類で計算できるんですよ。

4月08日
Excel。データベースとしてExcelを使う場合には、
空白行と空白列に囲まれたデータの塊を、
ひとつのデータベースとして使用することができます。

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

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

4/08/2018

Excel。事務職のデータ分析その20。分析ツールを使って「移動平均」とグラフを合わせて作っちゃおう【Analysis tool】

Excel。事務職のデータ分析その20。分析ツールを使って「移動平均」とグラフを合わせて作っちゃおう

<分析ツール>

過去のデータを使って、その先の期間を予測することができる「移動平均法」。

バラツキのあるデータを平均化して、
過去のデータから予測することができます。

平均化するということで、
AVERAGE関数を使うと簡単に算出することができるのですが、
「分析ツール」を使うと、
移動平均の算出と併せて移動平均グラフも作成してくれちゃいますので、
今回は、分析ツールを使った移動平均とそのグラフを作ってみましょう。

次の表があります。

2019年の売上高予測をしたいので、C列に移動平均を算出する表です。

3年ごとのデータで、平均を算出したいので、C4に数式を作るとしたら、
=AVERAGE(B2:B4)
という数式を作って、
C20まで、オートフィルを使って数式をコピーするわけですが、
今回は「分析ツール」を使って算出させていきます。

なお、「分析ツール」は、アドインで追加できる機能ですので、
データタブに「データ分析」が表示されていない場合には、
アドインで追加する必要があります。

では、データタブの「データ分析」をクリックします。

データ分析ダイアログボックスが表示されますので、
「移動平均」を選択して、OKボタンをクリックしましょう。

移動平均ダイアログボックスが表示されますので、
入力範囲には、$B$2:$B$19

今回は、データだけを範囲選択したので、
先頭行をラベルとして使用のチェックはOFFのままにします。

区間には、3年の平均を算出させたいので、3

出力先は、$C$2

グラフ作成にチェックマークをいれます。これで、グラフも作成してくれます。

さらに、標準誤差の表示にもチェックマークをいれることで、
標準誤差も算出してくれちゃいます。

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

C列に移動平均が、D列に、標準誤差を算出してくれています。
なお、C列は、三桁区切りスタイルを設定してあります。
C4には、
=AVERAGE(B2:B4)
という数式が設定されています。

特に、D列の標準誤差ですが、D6の数式を確認してみると、
=SQRT(SUMXMY2(B4:B6,C4:C6)/3)
という数式が出来上がっていますね。

SQRTは、平方根を算出する関数で、
SUMXMY2関数は、2つの配列要素の差の平方和を算出する関数を使っていますが、
なかなか縁遠い関数ですから、
「分析ツール」を使うメリットはこういう点からもわかりますね。

さて、算出された、移動平均や標準誤差ですが、
移動平均の列に設定してあった罫線が消えていますね。

「分析ツール」をつかうと、設定してあった書式が消えてしまいますので、
再度設定する必要があります。

また、グラフをみても、そのままでは使えない感じですね。

見た目という点からもグラフをアレンジする必要があります。

そして、C20にも数式をコピーすることで、
移動平均でデータ予測をすることができますので、
忘れずに数式をコピーしておきましょう。

このように、「分析ツール」の移動平均を使うことで、
簡単な数式を作る場合でも、便利な機能がありますので、
機会がありましたら使ってみるといいかもしれませんね。

4/07/2018

Excel関数一覧表にアイテムを追加しました。【function:2018/04/07】

Excel関数一覧表にアイテムを追加しました。

<Excel関数一覧>

「Excelテクニック and MS-Office recommended by PC training」の目次サイト
Officeソフトのスキルアップサイト」のExcel関数一覧表に次のアイテムを追加しました。

ACCRINT         アクリント
定期利付債の経過利息を算出

ACCRINTM アクリントエム
満期利付債の利息を算出 ACCRued INTerest (at Maturity)

ODDFPRICE オッドエフプライス
最初の利払期間が半端な利付債の現在価格を算出

ODDLPRICE オッドエルプライス
最後の利払期間が半端な利付債の現在価格を算出

ODDFYIELD オッドエフフィールド
最初の利払期間が半端な利付債の利回りを算出

ODDLYIELD オッドエルフィールド
最後の利払期間が半端な利付債の利回りを算出

PRICE         プライス
定期利付債の時価を算出

PRICEMAT         プライスマット
満期利付債の時価を算出 PRICE at MATurity

4/05/2018

Excel。事務職のExcel VBA その25。表示形式は大切なのです。【Display format】

Excel。事務職のExcel VBA その25。表示形式は大切なのです。

<VBA>

事務職の方でも、少し知っているだけでも現場で助かる、Excel VBA(マクロ)。
今回は、表示形式について考えてみましょう。

次のような構文があります。
Sub 表示形式()
    Dim i As Long
    For i = 3 To 12
        Cells(i, "a").Value = i - 2
    Next
End Sub

これを実行してみると、次のようになります。

このように連番を入力することができましたが、
もしこの範囲に通貨スタイルが設定されていたらどうなるのでしょうか?

実行してみると、

通貨スタイルが設定されているので、当然のことながら、
通貨スタイル付きの連番が入力されたわけですね。

事前にわかっていて設定しているならともかく、
残ってしまった表示形式で設定されてはマズい場合があります。

そこで、表示形式を追加しておくことで、
希望する表示形式で入力することができます。

構文を次のようにしてみましょう。
Sub 表示形式()
    Dim i As Long
    For i = 3 To 12
        Cells(i, "a").NumberFormat = "General"
        Cells(i, "a").Value = i - 2
    Next
End Sub

Cells(i, "a").NumberFormat = "General" を追加しました。
Generalは、G/標準のことを意味します。

では、実行してみましょう。

標準スタイルになりましたね。

おなじみのG/標準であったとしても、
一行加えておくだけで、
事前に残っていた表示形式にならないように防ぐことができます。

【00付きの連番】

そこで、次に考えてみたいのは、ゼロ付き連番を入力する場合です。

ゼロ付き数値は、文字ということになりますから、
文字スタイルの一文を加えて作ってみましょう。

Sub 表示形式()
    Dim i As Long
    For i = 3 To 12
        Cells(i, "b").NumberFormat = "@"
        Cells(i, "b").Value = i - 2
    Next
End Sub

では、実行してみましょう。

NumberFormat = "@" では、文字スタイルにはなったのですが、
ゼロ付き数値にはなっていませんね。

”@”は、あくまでも文字スタイルということだけなので、
修正する必要があります。

Sub 表示形式()
    Dim i As Long
    For i = 3 To 12
      Cells(i, "b").NumberFormat = "000"
      Cells(i, "b").Value = i - 2
    Next
End Sub
とりあえず、実行してみましょう。

ゼロ付き数値にすることができましたね。

NumberFormat = "000" おなじみの表示形式ですね。

NumberFormatは、Excelの表示形式の知識をそのまま、
流用することができますので、たった一行ではありますが、
設定するだけで、簡単にゼロ付き数値の連番を作ることができるのです。

【日付も】

日付についても考えてみましょう。

表示形式を設定する行を入れればいいと考えると、
"yyyy/m/d"という表示形式になるような一行を加えてあえればいいので、
次のように構文を書いてみました。

Sub 表示形式()
    Dim i As Long
    For i = 3 To 12
        Cells(i, "c").NumberFormat = "yyyy/m/d"
        Cells(i, "c").Value = i - 2
    Next
End Sub

では、実行してみましょう。

たしかに、日付スタイルで入力されているのですが、1900/1/1。

そう。シリアル値で1は、1900/1/1なので、
このような結果になってしましました。

なので、次のようにアレンジてみましょう。

Sub 表示形式()
    Dim i As Long
    Dim d As Date
    d = DateSerial(2018, 3, 31)
    For i = 3 To 12
        Cells(i, "c").NumberFormat = "yyyy/m/d"
        Cells(i, "c").Value = d + i - 2
    Next
End Sub

では、実行してみましょう。

シリアル値を考慮してあげれば、
このように簡単に日付を入力することができましたね。

表示形式は、あまり気にしないところではありますが、
用途によっては、いろいろ便利ですので、
入れるようにするといいかもしれませんね。

4/03/2018

2018年3月の閲覧数TOP10をご紹介

2018年3月の閲覧数TOP10をご紹介

<TOP10>

2018年3月。
皆様に閲覧していただいた項目のTOP10をご紹介させていただきます。

1位
Excel。Graph。縦棒グラフに自動的に平均値の線を引くにはどうしたらいい?
https://infoyandssblog.blogspot.jp/2015/03/excelgraph.html

2位
Excel。折れ線グラフを交点0からスタートさせるには?
https://infoyandssblog.blogspot.jp/2013/07/excel0.html

3位
Excel。折れ線グラフの間を塗りつぶしたいけど、どうしたらいいの?
https://infoyandssblog.blogspot.jp/2015/12/excelgraph.html

4位
Excel。一日のタイムスケジュールを管理する24時間横棒グラフを作ってみる
https://infoyandssblog.blogspot.jp/2016/03/excel24hour-schedule24.html

5位
Excel。B/S(貸借対照表)をグラフで作ってみよう!
https://infoyandssblog.blogspot.jp/2013/07/excelbs.html

6位
Excel。アンケート結果を年代別で集計する方法
https://infoyandssblog.blogspot.jp/2013/12/excel-rounddowncountif.html

7位
Excel。出勤時間を自動で塗りつぶす日勤シフト表を作ってみる。
https://infoyandssblog.blogspot.jp/2015/05/excelroster.html

8位
Excel。円グラフを使って1日のスケジュールを作りたい
https://infoyandssblog.blogspot.jp/2016/07/excelpie-chart1.html

9位
Excel。横棒グラフの塗りつぶしを、条件で自動的に色分けしたい。
https://infoyandssblog.blogspot.jp/2016/10/excelgraph.html

10位
Excel。マイナスデータの棒グラフを作ると綺麗にできないのでアレンジしてみる
https://infoyandssblog.blogspot.jp/2015/05/excelgraph.html