8/10/2020

今週のFacebookページの投稿 2020/8/3-2020/8/9

今週のFacebookページの投稿 2020/8/3-2020/8/9

<Facebookページ>

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


8月3日
Excel。ISERR関数。
読み方は、イズイーアールアールで、対象がエラー値の#N/A以外の場合にTRUEを返す


8月4日
Excel。ISERROR関数。
読み方は、イズエラーで、対象がエラー値の場合にTRUEを返す


8月5日
Excel。ISEVEN関数。
読み方は、イズイーブンで、対象が偶数の場合にTRUEを返す


8月6日
Excel。ISFORMULA関数。
読み方は、イズフォーミュラーで、セルに数式が含まれている場合にTRUEを返す


8月7日
Excel。ISLOGICAL関数。
読み方は、イズロジカルで、対象が論理値の場合にTRUEを返す


8月8日
Excel。ISNA関数。
読み方は、イズエヌエーで、対象がエラー値の#N/Aの場合にTRUEを返す


8月9日
Excel。ISNONTEXT関数。読
み方は、イズノンテキストで、対象が文字列でない場合にTRUEを返す


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

8/08/2020

Excel。データはあるので、いつもの資料にプラスしたい値アレコレ【Add to material】

Excel。データはあるので、いつもの資料にプラスしたい値アレコレ

<TRIMMEAN・MEDIAN・MODE.SNGL&MODE.MULT関数>

データはあるけど、マンネリの資料に何かプラスしたいという話を耳にしたので、次の表を使って、こんな値を追加したらどうかなぁ~という紹介をしていきます。
 
ほぼ毎日の参加人数を管理しています。

最低限、合計・平均・最大値・最小値・データの件数は、算出したいところですね。

この5種類の計算は、オートSUMボタンにすべて準備されているので、簡単に算出できます。
 
E1の合計は、=SUM(B2:B128)
SUM関数で算出します。

E2の平均は、=AVERAGE(B2:B128)
AVERAGE関数ですね。

E3の最大値は、=MAX(B2:B128)
MAX関数で、最大値を算出できますね。
MIN関数で最小値でした。

E4の最小値は、=MIN(B2:B128)
件数ですが、検索対象が数値なので、数値の個数。

すなわちCOUNT関数で算出できました。
=COUNT(B2:B128)

これだけでは、データあるのにもったいないですね。

プラスする値ですが、平均に着目したいですね。

AVERAGE関数は、算術平均、または相加平均と呼ばれています。

平均は算出しやすいのですが、対象の数値に幅があると、適切な平均値でない場合があります。

いわゆる、「異常値」が含まれているとおかしな数値になってしまうわけです。

そこで、異常値を除外して平均を算出した値も表示したいところです。
この時に使う関数が、TRIMMEAN関数です。
 
H1につくった数式は、
=TRIMMEAN(B2:B128,0.1)
TRIMMEAN関数の引数は、配列=範囲選択と割合で構成されていますが、割合はほぼ0.1だと思います。

異常値の上位5%下位5%を除くといいといわれています。
この5%+5%で10%なので、割合は、0.1として算出します。

結果は、48.2087。
AVERAGE関数で算出した結果とは変わりましたね。

次に追加したいのは、中央値です。

データを昇順にしたときに、ちょうど中央にある値が中央値です。

Excelでは、MEDIAN関数で簡単に算出できます。
 
H2の数式は、
=MEDIAN(B2:B128)
結果が31。最大値が209なので、全体的に、小さい数値が多いイメージがしますね。

もう少し追加したいですね。

追加するのは、最頻値と呼ばれている数値です。

データの中で一番多く登場する数値のことですね。
数値がどのあたりに、「群れているか?」を確認することができます。

Excelでは、MODE.SNGL関数で算出することができるのですが、この関数、ちょっと問題があって、一位が複数ある場合、最初に見つけた数値だけを表示しちゃう。

複数ある場合、ほかの一位がわからないので、まず、最頻値の件数を算出するといいですね。
 
H4の数式は、
=COUNT(MODE.MULT(B2:B128))
MODE.MULT関数は、複数の最頻値を算出する関数です。

その数を知りたいので、COUNT関数とネストして算出します。

今回は、1種類しかないので、最頻値はMODE.SNGL関数をつかって算出したのが、H5で、結果が8。

オートSUMボタンの関数以外でも、少しプラスするだけで、データを深くみることができるようになりますので、機会がありましたら追加してみませんか?

8/07/2020

Excel Technique_BLOG Categoryに追加しました。2020/8/7

Excel Technique_BLOG Categoryに追加しました。

<目次サイト>

このBLOGの記事を、
カテゴリー分けにした【Excel Technique_BLOG Category】に追加しました。

Excel。氏名を苗字と名前に分けてみたら、エラー続出!原因は余計な空白だった

余計な空白を消去させるには、TRIM関数を使うのがいいかと思いますね。

<続きはこちら>
Excel。氏名を苗字と名前に分けてみたら、エラー続出!原因は余計な空白だった


Excel。二つの表から一つのグラフを作ることも出来ちゃうのです。

二つの表があって、それを一つの表に再作成しないで、いっぺんに縦棒グラフを作ることって出来ますかね?

<続きはこちら>
Excel。二つの表から一つのグラフを作ることも出来ちゃうのです。


Excel。誕生月を数える方法を教えてほしいというリクエストがありまして

誕生月ごとに何人いるのか集計する方法を教えてほしい

<続きはこちら>
Excel。誕生月を数える方法を教えてほしいというリクエストがありまして

8/05/2020

Excel。入力規則のリストでアイテム数が多すぎて、選ぶのが大変なのでどうにかしたい。【Input rule】

Excel。入力規則のリストでアイテム数が多すぎて、選ぶのが大変なのでどうにかしたい。

<入力規則・名前の定義&INDIRECT関数>

発注書や納品書など、入力ミスをすると致命的になりかねない書類って結構あるわけです。

そこで、VLOOKUP関数をつかったりしてミスを抑制するわけですが、さらに便利で入力ミスを抑制することができる、『入力規則のリスト』をつかうと便利ですね。
 
ただ、便利なのですが、リストに表示されるアイテム数が多いと、スクロールしなくてはならないし、探すのも大変。

結局入力したほうが早いというのでは、入力ミスを抑制する効果が減ってしまいます。

そこで、ジャンルやカテゴリーという区分けできるものがあれば、区分けするものを選択した後に、該当するアイテムだけをリストに表示できれば、入力する速度を改善でき、入力ミスも抑制することができます。

今回は、このような表を用意しました。
 
E:Fは、商品リストです。入力規則のリストを作る時には、E列の値をつかうわけですね。

そして、ポイントなのが、H列。

今回は、商品コードの頭文字で管理しているので、ジャンルとしてA・B・Dを用意しました。

A列にジャンルという列を設定しております。

入力規則のリストで、探しやすくするためで使う場合は、印刷時に外すようにするといいですね。

では、設定していきます。

A2:A5に入力規則のリストを設定します。

A2:A5を範囲選択して、データタブの「データの入力規則」をクリックします。
 
データの入力ダイアログボックスが表示されます。
 
設定の入力値の種類を「リスト」にして、元の値にH2:H4を範囲選択します。

絶対参照が自動的に設定されますので、あとはOKボタンをクリックします。

A2をクリックすると、▼のリストが設定されていることが確認できます。
 
B列の商品コードに入力規則のリストを設定したいのですが、このままでは、頭文字がAの商品だけをリストに表示することはできません。

名前の定義をつかって、このアイテムはAというようにわかるようにしていきます。
 
頭文字がAの商品を範囲選択します。

A2:A4を範囲選択して、名前ボックスにAと入力して設定します。
これで、名前の定義が完成しました。

同じように、BとDも設定します。

ところで、なんで、「C」じゃなくて「D」にしているのかというと、名前の定義。

CとRが予約語として設定されているんで、使えないんです。

あと、セル番地のような「AA1」などの名前も使えません。

なので、人に説明する時には、AとBまでにしておくとビックリしなくてすみます。

次に、A2にダミーデータをいれておきましょう。今回は「A」をいれておきます。

B列の入力規則のリストを設定していきます。

B2だけを範囲選択して、データタブの「データの入力規則」をクリックします。

データの入力ダイアログボックスが表示されます。
 
入力値の種類を「リスト」にして、元の値には、
=INDIRECT($A2)
という数式を設定します。

INDIRECT関数は、引数の文字自体を使うことができる関数です。

A2には、「A」が入力されていますので、Aと名前の定義した範囲を元の値としてつかうことができます。

また、引数の$A2は、このあと、フィルハンドルをつかって、セルをコピーするので、絶対参照にしてしまうと、常にA2を参照してしまうので、複合参照にしておく必要があります。

OKボタンをクリックします。
セルB2の設定をフィルハンドルでB5までコピーしたら、確認してみましょう。
 
B列の▼をクリックして、ジャンルに該当するアイテムしかリストに表示されていません。

今回のように、INDIRECT関数と名前の定義を組み合わせて入力規則のリストを設定すると、2段階式の入力規則のリストをつくることができます。

8/04/2020

今週のFacebookページの投稿 2020/7/27-2020/8/2

今週のFacebookページの投稿 2020/7/27-2020/8/2

<Facebookページ>

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

7月27日
Excel。INFO関数。
読み方は、インフォで、Excelの動作環境に関する情報を返す


7月28日
Excel。INT関数。
読み方は、イントで、最も近い整数に切り下げる


7月29日
Excel。INTERCEPT関数。
読み方は、インターセプトで、回帰直線の切片を算出


7月30日
Excel。INTRATE関数。
読み方は、イントレートで、満期に償還される証券の利率を算出


7月31日
Excel。IPMT関数。
読み方は、アイピーエムティー:インタレストペイメントで、元利均等返済における指定期間の利息を算出


8月1日
Excel。IRR関数。
読み方は、アイアールアールで、定期キャッシュフローに対する内部利益率を算出


8月2日
Excel。ISBLANK関数。
読み方は、イズブランクで、対象が空白セルの場合にTRUEを返す


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

8/02/2020

Excel。VBA。合計という文字がある集計行を削除したい。【EntireRow】

Excel。VBA。合計という文字がある集計行を削除したい。

<Excel VBA:EntireRowプロパティ>

同じパターンを単純に繰り返す作業をしていると、「面倒だなぁ~」「楽したいなぁ~」と思うものです。

例えば、次の表。
 
地域ごとの合計行が存在しています。

この合計行を削除した表を作りたいとします。

今回は、3行なので、たいしたことはありませんが、削除の行数がかなりある場合、面倒以外の何物でもありません。

このような場合は、マクロ。Excel VBAの出番ですね。

Excel VBAのプログラム文を次のように書いてみました。

Sub 合計行削除()
    Dim i As Long
    Dim lastrow
    lastrow = Cells(Rows.Count, "c").End(xlUp).Row

    For i = lastrow To 1 Step -1
        If Cells(i, "a") Like "*合計" Then
            Cells(i, "a").EntireRow.Delete
        End If
    Next i
End Sub

とりあえず、実行してみましょう。
 
合計行を削除することができましたね。

ちまちま削除するよりも、圧倒的に早くて楽ですね。

では、簡単にプログラム文を確認していきます。

お馴染みの変数宣言ですね。
Dim i As Long
Dim lastrow

lastrow = Cells(Rows.Count, "c").End(xlUp).Row

lastrowには、データの最終行番号を設定します。

これでデータが増減しても対応することができます。
このあとの繰り返し文のために、使います。

For i = lastrow To 1 Step -1
    If Cells(i, "a") Like "*合計" Then
        Cells(i, "a").EntireRow.Delete
    End If
Next i

For To Next文で繰り返し処理をしています。

ここでポイントなのが、「Step -1」。

上位行から検索して該当した行を削除すると、1行下のセルが上に繰り上がってしまうので、その行が該当行の場合、削除されずに残ってしまいます。

今回は、数行ごとに合計という該当する行があるので、問題はないかもしれません。

Excel VBAのテクニックの一つとして、削除する場合は、下から上に行うというのがいいようです。

なので、最終行番号から「-1」しながら繰り返すようにしています。

If Cells(i, "a") Like "*合計" Then
合計という文字があるかどうかの判断をしているIf文ですね。

If Then EndIfで判定することができますね。

ここにもポイントがあります。
「Like "*合計"」
Cells(i, "a")=”合計” としてしまうと、合計という文字でないと実行されません。

今回は、都内合計とか余計なことをしてくれています。

全部合計という見出しだったらば、よかったのですが、今回は、見出しの一部に合計という文字があるかどうかです。

そこで、イコールの代わりに、Like演算子を使います。
イコールもそもそも演算子の一つですから、それを変更するだけです。

あとは、「合計という文字で終わる」と表現するために、「*(ワイルドカード)」を使えば条件行が完成です。

Cells(i, "a").EntireRow.Delete

このプログラム文の、EntireRow(エンタイアロウ)メソッドは該当する行全体を選択するプロパティで、Deleteメソッドで削除しています。

このように、数行で面倒な処理を時短で処理してくれるので、少しずつExcel VBAを知っていくといいかもしれませんね。

8/01/2020

2020年7月の閲覧数TOP10をご紹介

2020年7月の閲覧数TOP10をご紹介

<TOP10>

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

1位
Excel。折れ線グラフを交点0からスタートさせるには?


2位
Excel。料金量がわかりやすい階段グラフの作り方


3位
Excel。一日のタイムスケジュールを管理する24時間横棒グラフを作ってみる


4位
Excel。折れ線グラフの間を塗りつぶしたいけど、どうしたらいいの?


5位
Excel。ガントチャートは積み上げ横棒グラフで簡単に作成できます。


6位
Excel。時間経過の折れ線グラフ。実は散布図で作るとより綺麗に描けるのです。


7位
Excel。縦棒グラフに自動的に平均値の線を引くにはどうしたらいい?


8位
Excel。y=2x。一次元方程式のグラフの作り方。


9位
Excel。あれれ!グラフが表示されない!!そんな時は、第2軸で表示しましょう。


10位
Excel。アルファベット評価の平均を算出するには、どうしたらいいのでしょうか?