8/11/2017

Excel。意外と難しい、5日後の最初の月曜日は何日を求める方法【WORKDAY.INTL】

Excel。意外と難しい、5日後の最初の月曜日は何日を求める方法

<WORKDAY.INTL関数>

ちょっとした話から、
5日後の最初に来る月曜日に資料発送をしたいけど、
計算式をどうしたらいいのかな?というご質問がありました。

なんでも、5日後を求めるのは簡単だけど、
5日後の月曜日ということなので、
IF関数を使ったりして、求めているということでした。

まずは確認しましょう。

注文日が6月1日木曜日なので、
まずは5日後となると、6月6日火曜日になりますから、
そのあとに来る最初の月曜日なので、12日の月曜日というわけですね。

確かに理屈としては、簡単そうですが、ちょっと難解な匂いがしますよね。

実は、これを簡単に処理することが出来る関数があるのです。

ただし、Excel2010から登場した関数で、
WORKDAY.INTL関数】(ワークデイ・インターナショナル関数)
という関数を使用します。

では3行目に作成してみましょう。A3に2017/6/1と入力します。

B3には=A3とセル参照の数式を作成します。

当然同じ日が表示されますので、
表示形式のユーザー定義を使って曜日に変えましょう。

では、B3をクリックして、
セルの書式設定ダイアログボックスを表示しましょう。

Ctrl+1というショートカットキーを使うのがいいでしょう。

表示形式のユーザー定義の種類を、
aaaと入力すれば、表示が曜日に変わりますね。

あとはOKボタンをクリックしましょう。

ついでに中央揃えも設定しておきます。

これで、準備OKですね。

では、D3にWORKDAY.INTL関数を作っていきますので、
WORKDAY.INTL関数ダイアログボックスを表示しましょう。

開始日には、A3の5日後なので、A3+5と設定します。

日数には、1を設定します。

この日数ですが少々わかりにくいかもしれません。
どちらかというと、日数というよりも、
この場合は、『最初の』という意味でとらえるといいかもしれません。

2にすると、2番目に登場する日になります。

本来は、必要な日数を数値で指定する引数です。

週末には、"0111111"と設定します。

この"0111111"ですが、月曜日から日曜日の稼働日の意味です。

0は稼働日で1はお休みという表現をすることが出来る引数です。

そもそも、WORKDAY.INTL関数は、
「週末(曜日指定可能)と祝日を除いた日数後の日付」
を算出することが出来る関数なのです。

なので、"0111111"とすれば、
月曜日以外は全部お休みという意味になりますから、
月曜日の日付を求めることが出来るということなのです。

今回は、6月なので祭日はありませんので、祝日は飛ばしますが、
本来は、祝日は祝日表を設けておいて設定する必要があります。

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

E3は、B3と同じ方法で作成しております。

このようにすれば、
何日後の最初の月曜日はいつ?
ということも算出することが出来きますよ。

8/08/2017

Access。クエリを作成してみたら二次元集計表に変更したいけどどうしたらいい?【Crosstab】

Access。クエリを作成してみたら二次元集計表に変更したいけどどうしたらいい?

<クロス集計クエリ>

Accessで下記のクエリを作成しました。

しかしこの選択クエリでは、わかりにくいので、
縦計横計の【二次元集計表】に変更しようと思ったんだけど、
どうしたらいいの?というのが今回ご紹介する内容です。

最初から、クロス集計クエリを作成すると決めていれば、
良かったのですが、すでにクエリは作成してある訳ですね。

当然一から作成するのは面倒なんです。

では、このQ受注表をデザインビューで確認してみましょう。

まずは、必要なフィールドのみにしますので、
顧客名と商品名と金額のフィールド以外は削除しましょう。

そして、ここで、クエリの種類にある『クロス集計クエリ』をクリックします。

集計が表示され、行列の入れ替えが登場しましたね。

行列の入れ替えに次のように設定していきます。
顧客名には、行見出し。
商品名には、列見出し。
金額には、値。

先に名前をつけてクエリを保存しておきます。

今回は、『Q二次元集計表』とします。そして実行して確認してみましょう。

これで縦計横計の二次元集計表クエリに変更することが出来ました。

クロス集計クエリをクエリウィザードで作るのもいいですが、
このような方法で作成するとアレンジするときに意味がわかるので、
いいのかもしれませんね。

では、最後にクエリウィザードを使って、
クロス集計クエリの作り方を確認しておきましょう。

最初は、クエリウィザードをクリックします。

新しいクエリダイアログボックスが表示されますので、
クロス集計クエリウィザードを選択してOKボタンをクリックします。

クロス集計クエリウィザードダイアログボックスが表示されたら、
今回は、「クエリ:Q受注表」を選択して、次へボタンをクリックします。

行見出しを設定しますので、顧客名を選んで、次へボタンをクリックします。

次は、列見出しを設定しますので、商品名を選択して、
次へボタンをクリックします。

集計するのは、今回は金額の合計値ですので、
選択して、次へボタンをクリックします。

あとは、クエリ名を設定して、完了ボタンをクリックします。

今回クエリ名はそのままにしておきます。

これでクエリウィザードを使って、
クロス集計クエリを完成することができましたね。

デザインビューもついでに確認しておきましょう。

顧客名フィールドの隣に、
合計_金額という合計金額が表示されているフィールドがありましたが、
これは、最後の列に設定されているものだということがわかりますね。

8/06/2017

今週のFacebookページの投稿 2017/07/31-2017/08/06

今週のFacebookページの投稿 2017/07/31-2017/08/06

<Facebookページ>

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

7月31日
Wordショートカット。
F11 キーで次のフィールドに移動します。

8月01日
Wordショートカット。
F12 キーで[名前を付けて保存] コマンドを選択します。

8月02日
Wordショートカット。
Shift + F1 キーで状況依存のヘルプを開始するか、書式の詳細を表示します。

8月03日
Wordショートカット。
Shift + F2 キーでテキストをコピーします。

8月04日
Wordショートカット。
Shift + F3 キーで英字の大文字と小文字の変換を行います。

8月05日
Wordショートカット。
Shift + F4 キーで[検索] または [ジャンプ] の動作を繰り返します。

8月06日
Wordショートカット。
Shift + F5 キーで直前の変更箇所に移動します。

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

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

8/05/2017

Excel。マクロ011。削除と見出し行を残しての削除を確認してみよう

Excel。マクロ011。削除と見出し行を残しての削除を確認してみよう

<VBA>

事務職でも、少しExcel VBAを知っていると、
確かに作業効率は改善されるようですが、
難しいと感じている人も多いようです。

とはいえ、少しずつでいいので、慣れていくといいですね。

ということで、今回は、【削除】という基本操作を確認してみましょう。

次の表があります。

まずは、この表全部を削除するマクロVBAを作ってみましょう。

Sub del_all()
    Range("a1").CurrentRegion.Clear
End Sub

このClearメソッドを使うと、この表を削除することが出来ます。

けど、実務ではなかなか、表をバッサリ削除する事はなくて、
見出し行を残して削除するとか、
罫線はそのままでというケースのほうが多いと思います。

では、次の表を使って、見出しと罫線を残してデータだけを削除してみましょう。

使うのは、ClearContentsメソッドですね。

Sub データ削除()
    Range("a2", Range("a2").End(xlDown).End(xlToRight)).ClearContents
End Sub

今回は、表全部ではないので、
「CurrentRegion」を使うことは出来ませんね。

データはA2からなので、Endを使って最終行と最終列を範囲選択させます。

そして、ClearContentsを使います。このClearContentsは、
『数式と値のクリア』を行うことが出来ます。

さて、最終行に合計行がある場合は、どうしたらいいでしょうか?

次の表を使ってみましょう。

先ほどの、データ削除をアレンジすれば簡単に作れますので
確認しておきましょう。

Sub データ削除2()
    Range("a2", Range("a2").End(xlDown).Offset(-1).End(xlToRight).Offset(0, -1)).ClearContents
End Sub

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

最終行と一番左の列に合計するSUM関数が設定されていますので、
削除したくないので、

.End(xlDown).Offset(-1)

とすれば、最終行からOffsetでマイナス1行のところまでを
範囲選択することが出来ます。

同じように、End(xlToRight).Offset(0, -1)としてあげれば、
一番左側の列を除いて範囲選択することが出来ます。

Excel関数では、なかなか、
Offset関数を使うことは少ないかもしれませんが、

マクロVBAの範囲選択では、Offsetを使いますので、
Offset関数の動き方を知っているといいかもしれませんね。

なお、削除するメソッドは、
ClearメソッドとClearContentsメソッドだけではありませんので、
他も合わせてご紹介しておきましょう。

Clearメソッドは、「すべてクリア」をしてくれます。
ClearContentsメソッドは、「数式と値のクリア」をしてくれます。
ClearFormatsメソッドは、「書式のクリア」をしれくれます。
この3つは、比較的使いますが、それ以外にも2つメソッドがありまして、
ClearCommentsメソッド。
これは、「コメントのクリア」をすることができるメソッドです。

ClearHyperlinksメソッド。
これは、「ハイパーリンクのクリア」をすることができるメソッドなんですが、Excel2010以降で登場したので、Excel2007では使えません。

このように、削除にも様々なメソッドがあります。

8/02/2017

Excel。締め日が20日なので、その20日で集計したいけど、どうしたらいい?Closing date 

Excel。締め日が20日なので、その20日で集計したいけど、どうしたらいい?

<MONTH&EDATE関数・SUMIF関数>

20日締めで集計をしたいそうなのですが、
DAY関数を使って云々といっておりまして、
何かもっと簡単な方法はないですかね?

ということでしたので、

EDATE関数を使ってみるアイディアはいかがでしょうか?

ということで、次の表があります。

A列が購入日で、B列が支払金額(購入金額)という表ですね。

末締めだったらば、月ごとに集計すればいいわけなので、
これは小計を使うなど簡単に算出することが出来るのですが、

今回は、【20日締め】。

すなわち、20日より大きければ翌月が支払月となるわけです。

この区分けをするのに、効率的な方法はないですか?というのが今回のテーマ。

まずは考えてみることにしょう。

問題となるのは、21日を翌月にしたいわけですね。

例えば6月21日ならば、7月で集計できるようにする。

21日~末日までを翌月にするために加算する方法を取るとなると、
判断が複雑になってしまい、【簡単】とはいきません。

そこで、まずは、日付からマイナス20日します。

これで、6月21日は6月1日になりますが、
これでは、7月で集計することが出来ませんので、+1か月。

要するに、ひと月後にすれば、
7月1日になるので、7月で集計することができます。

また、7月20日の場合は、マイナス20日すると、
6月末日の6月30日になり、+1か月すれば、7月30日になるので、
7月で集計することができます。

このような動きをするように
数式を作成していけばいいということになります。

マイナス20はともかく、+1か月をするには、
なかなか使う機会がないEDATE関数がここで大活躍します。

EDATE関数を使うと簡単に表現できます。

数式を一度に作るのもいいですが、
ステップを確認していきますので、マイナス20という列を作りました。

C3の数式は、
=A3-20
算出された数値がシリアル値で算出されてしまいますので、
表示形式を日付に変えましょう。

続いて、「ひと月後」を求めますので、D3をクリックして、
EDATE関数ダイアログボックスを表示しましょう。

開始日には、C3
月には、1
月の1は、「ひと月後」という意味になります。

OKボタンをクリックして、オートフィルで数式をコピーしましょう。

算出した結果がシリアル値になっていますので、表示形式を日付に変えます。

E列には集計するための「月抽出」を設けて算出させます。

日付から月を抽出するには、MONTH関数を使いますので、
E3をクリックして、MONTH関数ダイアログボックスを表示しましょう。

これで、月が算出できました。オートフィルで数式をこぴーしておきます。

あとは、E列で集計してあげればいいわけです。
ちなみに、数式をまとめると、次のようになります。

=MONTH(EDATE(A3-20,1))

MONTH+EDATE関数のネストで算出することもできます。

あとはSUMIF関数を使って算出していくわけですが、

G5:G8には、表示形式のユーザー定義を使って、0”月”としてあります。

こうすることによって、SUMIF関数の条件で使うことが可能になります。

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

範囲には、$E$3:$E$17
オートフィルで数式をコピーしますので、
絶対参照を忘れないようにしましょう。

検索条件には、G5
合計範囲には、$B$3:$B$17
こちらも絶対参照を忘れずに設定しましょう。

あとは、OKボタンをクリックして、
オートフィルで数式をコピーして完成ですね。

このように、何か共通点を探してあげるコトによって、
関数で対応できることもありますので、
日ごろ使っている数式も再度確認してみると、
意外な発見やスキルアップが出来るかもしれませんね。

8/01/2017

2017年07月の閲覧数TOP10をご紹介

2017年07月の閲覧数TOP10をご紹介

<TOP10>

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

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

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

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

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

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

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

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

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

9位
Excel。カレンダー祝日がわかるようにセルに色をつけてみよう
https://infoyandssblog.blogspot.jp/2013/11/excel-match.html

10位
Excel。100%積み上げグラフにパーセントのデータラベルを表示したい
https://infoyandssblog.blogspot.jp/2013/12/excel100-rounddowncountif.html

7/31/2017

今週のFacebookページの投稿 2017/07/24-2017/07/30

今週のFacebookページの投稿 2017/07/24-2017/07/30

<Facebookページ>

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

7月24日
Wordショートカット。
F4 キーで直前の操作を繰り返します。

7月25日
Wordショートカット。
F5 キーで[ジャンプ] コマンド ([ホーム] タブ) を選択します。

7月26日
Wordショートカット。
F6 キーで次のウィンドウまたはフレームに移動します。

7月27日
Wordショートカット。
F7 キーで[スペルチェック] コマンド ([校閲] タブ) を選択します。

7月28日
Wordショートカット。
F8 キーで選択範囲を拡張します。

7月29日
Wordショートカット。
F9 キーで選択したフィールドを更新します。

7月30日
Wordショートカット。
F10 キーでキーヒントを表示します。

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

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