4/30/2018

今週のFacebookページの投稿 2018/04/23-2018/04/29

今週のFacebookページの投稿 2018/04/23-2018/04/29

<Facebookページ>

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

4月23日
Excel。アクティブセルの太枠の右部線上で、
ダブルクリックをするとデータ範囲の右端列に移動できますね。

4月24日
Excel。名前ボックスにセル番地を入力して、
Enterキーを押すと、そのセル番地にジャンプできますね。

4月25日
Excel。シート名は31文字までOKです。
全角半角は関係ありませんね。

4月26日
Excel。シート名には、:(コロン)は使えませんね。

4月27日
Excel。シート名には、¥(円マーク)は使えませんね。

4月28日
Excel。シート名には、/(スラッシュ)は使えませんね。
ということは、日付。2013/1/1はNGなんですね。

4月29日
Excel。シート名には、?(クエスション)は使えませんね。

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

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

4/29/2018

Excel。CONCAT関数は、CONCATENATE関数の進化版です。Office365 Excel2016【CONCAT】

Excel。CONCAT関数は、CONCATENATE関数の進化版です。Office365 Excel2016

<CONCAT関数>

文字列を結合する時に使う関数。CONCATENATE関数。
この進化版の関数が、Office365のExcel2016に登場しました。
その関数の名前は、CONCAT関数

基本的な動きは、CONCAT関数もCONCATENATE関数も大差はないのですが、
当然変わったことがあったから、関数が増えたわけなので、
CONCAT関数の特徴を確認しておきましょう。

次の表があります。

例えば、A2の東京という文字からA7の三島という文字が入っているセルを
縦方向に結合した結果を表示したいとします。

まずは、&を使っても文字列を結合することが出来ますので、
D列から作ってみると、
D2には、次の数式が完成します。

=A2&A3&A4&A5&A6&A7

数が増えると数式を作るのが大変ですね。

結果はこのようになりました。

文字結合の基本ですよね。

次に、E列に、CONCATENATE関数で同じように文字結合をしていきますので、
E2をクリックして、CONCATENATE関数ダイアログボックスを表示しましょう。

文字列1からA2・A3と順々にセルを設定していき、
A7まで設定したら、OKボタンをクリックしましょう。

きちんと文字結合した結果が表示されていますね。

E2の数式は、
=CONCATENATE(A2,A3,A4,A5,A6,A7)
となっています。

それでは、新しく登場した、
CONCAT関数ではどうなるのかを確認しておきましょう。

F2をクリックして、CONCAT関数ダイアログボックスを表示しましょう。

テキスト1にA2を設定して、A7まで設定したら、
OKボタンをクリックしましょう。

こちらも、問題なく文字結合できましたね。

F2の数式は、
=CONCAT(A2,A3,A4,A5,A6,A7)

これでは、ただ、名前が変わった、
名前が短くなっただけでは?と思ってしまいますが、
CONCAT関数は、セル数が増えれば増えるほど、
その威力が増す関数なのです。

例えば、文字結合したいセルが50個あった場合、
引数は50個と手で入力しても、マウスを使っても、非常に大変ですし、
ミスが発生する可能性も高まります。

そこで、範囲選択して、
その範囲の文字列を結合できるようになったのがCONCAT関数なのです。

CONCATENATE関数では出来ないのでしょうか?確認してみましょう。

E3をクリックして、
CONCATENATE関数ダイアログボックスを表示しましょう。

文字列1に、A2:A7と入力して、OKボタンをクリックしましょう。

残念ながら、文字結合をすることは出来ませんでした。

CONCAT関数で確認しますので、
F3をクリックしてCONCAT関数ダイアログボックスを表示しましょう。

テキスト1にA2:A7を設定して、OKボタンをクリックしましょう。

F3の数式は、

=CONCAT(A2:A7)

それでは、結果はどうなったのでしょうか?

先程と同じように、文字結合が出来ていますね。
なので、セル数が50個という場合でも範囲選択するだけで、
簡単に文字結合をすることができます。

なので、B列に、「駅 」(駅+半角スペース)をいれておいて、
F4にCONCAT関数を使って、範囲を、A2:B7として作成してみましょう。

F4の数式は、
=CONCAT(A2:B7)

結果は、このようになりました。

まず、行で結合して、次の行を結合してくれていますね。

このように、データが増えた文字結合をする場合は、
CONCAT関数の出番ということになりそうですね。

4/26/2018

Excel。おすすめグラフ恐るべし!簡単にABCパレート図が作れちゃう!Excel2016【Pareto chart】

Excel。おすすめグラフ恐るべし!簡単にABCパレート図が作れちゃう!Excel2016

<おすすめグラフ:ABCパレート図>

商品ごとなどがどのぐらいの影響力を占めているのかなどの
重点指向でお馴染みのパレート図。

ABC分析でもおなじみのグラフですよね。

このようなグラフが、パレート図なのですが、
結構作成するのは大変面倒なんですよね。

グラフを見ていただくとわかるように、
第2軸を使った、複合グラフですし、このグラフの元になるデータも、
作り込む必要があります。

複合グラフを作ればいいわけなので、Excel2013でしたら、
A1:B20とD1:D20の金額と累計を範囲選択して、
挿入タブの複合グラフの挿入にある、
集合縦棒-第2軸の折れ線を選択すれば、
Excel2010以前では考えられないほど簡単に作成できます。

また、おすすめグラフを使っても、

集合縦棒-第2軸の折れ線が、おすすめグラフの候補にあがってきます。

第2軸が120%になっているので、それを100%にしたりと、
調整しなくてはいけないところは多々ありますが、
簡単にグラフが作成できるのですが、Excel2016のおすすめグラフは、
もっと簡単にABCパレート図を作ることが出来るようになっているのです。

【Excel2016では、構成比の累計も不要】

どのように変わったのかというと、表の作り込みがなくなりました。

次のような表があれば作れてしまうのです。

金額を降順にした表だけですが、A1:B20を範囲選択して、
挿入タブのおすすめグラフをクリックしましょう。

グラフの挿入ダイアログボックスのおすすめグラフが表示されてきます。

そこになんと、パレート図と用意されているのが確認できます。

Excel2013では、集合縦棒-第2軸の折れ線という名前だったのに、
パレート図…。

それでは、パレート図を選択したら、OKボタンをクリックしましょう。

簡単にABCパレート図が完成できました。

しかも、Excel2013は第2軸が120%になっていたのに、
Excel2016は、100%が上限になっています。

以前は作成するのが大変だったABCパレート図が
簡単に作成できるようになったということは、
それだで、ABC分析が身近というか現場の資料として
多く登場するようになったということがいえるのかもしれませんね。

ただし、おすすめグラフで今回選んだのは、
パレート図というグラフなので、実は、複合グラフとは違っているのです。

そのため、アレンジしたいことができないという欠点があります。

例えば、横軸の文字を縦書にしたい場合などです。

確認してみましょう。

横軸をダブルクリックするか、クリックして、
書式タブのグラフ要素が選ばれていることを確認して、
選択対象の書式設定をクリックすると、
右側に軸の書式設定作業ウィンドウが表示されますので、
文字のオプションのテキストボックスを確認すると、
グレーアウトしていて、修正することが出来ませんね。

このため、見やすいようにアレンジしたいなどがある場合には、
従来通り複合グラフで作る必要があります。

4/25/2018

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

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

<Excel関数一覧>

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

IF イフ
条件で分岐して異なる計算結果を返す

AND アンド
複数の条件をすべて満たすかどうかを調べる

OR オア
複数の条件のいずれか1つを満たすかどうかを調べる

XOR エクスクルーシブ・オア
複数の条件で奇数の数を満たすかどうかを調べる

NOT ノット
指定した条件が成立しないことを調べる

IFERROR イフエラー
対象がエラーの場合に指定した値を返す

IFNA イフエヌエー
結果が#N/Aの場合は指定した値を返す    イフ・ノン・アプリカブル

TRUE トゥルー
TRUEを返す

FALSE フォルス
FALSEを返す

4/23/2018

Excel。事務職のExcel VBA その26。特定の文字が含まれているかチェックする方法【Special character】

Excel。事務職のExcel VBA その26。特定の文字が含まれているかチェックする方法

<Excel VBA>

一般事務職の方でも、少し知っているだけでも、
効率的に作業効率をあげることができるようになる、Excel VBAを使って、
今回は、セル内に該当の文字が含まれているかどうか
判定する方法をご紹介していきましょう。

次の表があります。

B列の市区町村にあるデータの中から、
「横浜市西区」のデータがあるのかないのかをチェックして、
C列に該当データがある場合には、”○”を表示することをしたいのですが、
通常のExcelだと、

=IF(COUNTIF(B4,"横浜市西区"&"*"),"○","")

という、IF+COUNTIF関数のネスト技を使う必要があります。

この数式の作り方を知っていればいいのですが、
データをインポートするたびに、この数式を作るというのは、
なかなか面倒ですし、
実際、このIF+COUNTIF関数のネスト技を覚えている・
気づく人は少ないかと思われます。

では、Excel VBAで、
「横浜市西区」という文字の有無がわかるExcel VBAの構文を
確認してみましょう。

Sub 文字を含む()
    Dim i As Long
    Dim r As Long
    r = Cells(Rows.Count, "a").End(xlUp).Row
    For i = 1 To r
        If InStr(Cells(i, 2), "横浜市西区") <> 0 Then
            Cells(i, 3) = "○"
        End If
    Next
End Sub

今回のケースは、セルのデータと等しいということではなくて、
その一部の有無なので、=(イコール)で判定する方法は使えません。

また、Excel VBAには、
含まれているかどうか】を判断できる記号(演算子)は
残念ながらありません。

そこで、InStr関数を使ってみると、対応できます。

InStr(インストリング)関数は、文字列の中から指定した文字列を検索し、
最初に見つかった文字の位置を算出する関数です。

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

「横浜市西区」という文字があることを判断することが出来ましたね。
では、構文を確認してみましょう。

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

r = Cells(Rows.Count, "a").End(xlUp).Row
これもお馴染みのデータの最終行番号を算出する方法ですね。

For i = 1 To r
    If InStr(Cells(i, 2), "横浜市西区") <> 0 Then
        Cells(i, 3) = "○"
    End If
Next

For文で1~最終行まで繰り返し実行させます。
If InStr(Cells(i, 2), "横浜市西区") <> 0 Then
ここが、今回の心臓部ですね。

cells(i,2)は、B1のセルを指します。B1は見出しかもしれませんが、
今回の文字とは合致することはないので、1行目から実行させました。

そのB1に、”横浜市西区”という文字が、InStr。

つまりその文字があれば、その開始位置の数値を算出しますし、
なければ、0(ゼロ)を算出します。

最終的に、この一文は、
InStrを使って算出した結果が「<>0」。ゼロでなかったら
ということですね。

もしも、ゼロでなければ、
Cells(i, 3) = "○"
C列に○を表示してください。
という処理をしているわけですね。

これで、結果を求めることが出来ましたね。

InStr関数って便利だなぁ~と思っても、
通常のExcel関数にはありませんのでご注意ください。

4/22/2018

今週のFacebookページの投稿 2018/04/16-2018/04/22

今週のFacebookページの投稿 2018/04/16-2018/04/22

<Facebookページ>

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

4月16日
Excel。ショートカット。
PageUpキーを押すと、1画面単位で上に移動できますね。

4月17日
Excel。ショートカット。
PageDownキーを押すと、1画面単位で下に移動できますね。

4月18日
Excel。ショートカット。
Altキー+PageUpキーを押すと、1画面単位で左に移動できますね。

4月19日
Excel。ショートカット。
Altキー+PageDownキーを押すと、1画面単位で右に移動できますね。

4月20日
Excel。アクティブセルの太枠の上部線上で、
ダブルクリックをするとデータ範囲の先頭行に移動できますね。

4月21日
Excel。アクティブセルの太枠の下部線上で、
ダブルクリックをするとデータ範囲の最終行に移動できますね。

4月22日
Excel。アクティブセルの太枠の左部線上で、
ダブルクリックをするとデータ範囲の左端列に移動できますね。

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

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

4/20/2018

Excel。横棒グラフの縦軸を表と同じ順番で並べるには。Office365 Excel2016

Excel。横棒グラフの縦軸を表と同じ順番で並べるには。Office365 Excel2016

【横棒グラフ】

Excelで作成するグラフは、様々なものを表現できるのですが、
ちょこっとしたことを知らないと、
表現できなくて困るものが少なからずあります。

そこで今回は、Office365のExcelを使って、横棒グラフを作った時に、
こう出来たらいいのになぁ~と思う、
縦軸の並び順を表の並び順と同じにする方法をご紹介いたします。

基本的に、以前紹介した、Excel2010での作り方と同じですが、
あらためて確認しておきましょう。

次の表があります。

このデータを使って、横棒グラフを作っていきましょう。

A1:B6を範囲選択して、挿入タブの縦棒/横棒グラフの挿入をクリックすると、
どのグラフを作るのかというグラフ選択画面に変わります。

今回は、2-D横棒から集合横棒を作りますので、選択してクリックしましょう。

2-Dの集合横棒グラフが作成できましたね。

別にこれでいいといえば、いいのですが、
よく見ると、表は、新宿~品川の順番で作成しているのですが、
グラフの縦軸は、品川~新宿という順番になっていますよね。

これをグラフと同じ順番にしたいというのが、今回の目的なのです。

どうしてこのようになってしまうのか?というと、
縦軸と横軸の交点を基準にデータが積み重なる形で描かれてしまうので、
一番目のデータが一番下(交点に近い方)になってしまうのです。

今回のように、並び順に意味がない場合は、データを降順に並び替えてしまえば、
表もグラフも同じになりますが、時系列のような、並び順に意味がある場合には、
並び替えるわけにはいきませんので、
グラフの縦軸の順番を変更できる方法を知っておく必要があります。

それでは、変更していくことにしましょう。

縦軸をダブルクリックするか、縦軸をクリックして、
書式タブのグラフの要素が、縦(項目)軸になっていることを確認して、
選択対象の書式設定をクリックします。

右側に、軸の書式設定作業ウィンドウが登場します。

はじめに、この軸の書式設定作業ウィンドウの軸のオプションにある、

軸位置の軸を反転するにチェックマークをいれます。

すると、グラフはこのようになりました。

確かに、縦軸は新宿~品川の順番になっていますので、
表と同じ並び順にはなっていますが、横軸が上に移動してしまったので、
元の下に移動させる必要があります。

そこで、軸のオプションの横軸との交点の「最大項目」をオンにしましょう。

これで、表の順番とグラフの縦軸の順番が同じにすることが出来ましたね。

簡単な処理ですが、知っておくと便利なテクニックの一つですね。

4/19/2018

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

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

<目次サイト>

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


Excel。年月日から年ならYEAR関数。年度はどうやって作ったらいいの?
https://infoyandssblog.blogspot.jp/2016/04/exceledateyear.html


Excel。ピボットテーブルで条件付き書式を使ってレコードに反映したいけど…
https://infoyandssblog.blogspot.jp/2016/04/excelpivot-table.html


Excel。くじ引き番号。ランダムの数値を重複させない簡単な方法
https://infoyandssblog.blogspot.jp/2016/04/excellottery.html


Excel。順位を、順位/全体数で、表示する順位を作成したいというリクエスト
https://infoyandssblog.blogspot.jp/2016/04/excelrank.html

4/17/2018

Excel。確定申告の医療費などでお馴染みのマイナスなら0を選択する方法【Tax return】

Excel。確定申告の医療費などでお馴染みのマイナスなら0を選択する方法

【MAX関数】

よく、確定申告の医療費などで、
数値を算出した結果が0(ゼロ)より小さい場合は、
そのマイナス値ではなくて、0(ゼロ)にするというものがあります。

では、次の表を見てみましょう。

このような場合、IF関数を使って算出することが多いかと思います。

例えば、B9にIF関数を使って、数式を作るとしたら、

論理式には、B7-B8<0
真の場合には、0
偽の場合には、B7-B8

として、OKボタンをクリックして確認してみると、
B9は0になっているのが確認できます。

数式は、
=IF(B7-B8<0,0,B7-B8)

確かに、IF関数を使った方法で算出できるので、全く問題はないのですが、
論理式や、偽の場合の数式がもっと、高度で煩雑だった場合、
2回同じ数式を作るというのは、面倒ですし、
修正する場合でも修正個所が2つ発生する可能性もありますね。

そこで、IF関数でもいいのですが、
もっと簡単な関数で代用することが可能なので、
その方法をご紹介していきましょう。

登場するのは、【MAX関数

どうしてもMAX関数は最大値というイメージがありますのでMAX関数?
と思うかもしれませんね。

今回のケースは、算出結果が、
負の場合は、マイナス数値と0(ゼロ)を比べて0(ゼロ)を選択します。

算出結果が、正の場合は、0(ゼロ)と正の数を比べて、
正の数を選択するという動きになればいいわけです。

すなわち、0(ゼロ)と比べてあげて、
数値の高いほうを採用すればいいわけです。

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

数値1には、B7-B8
数値2には、0
OKボタンをクリックしましょう。

B9の数式は、=MAX(B7-B8,0)となっていますね。

では、結果はどうなっているか確認してみましょう。

B7-B8なので、-5000と算出結果が負のため、0と比べて大きいほう、
すなわち、0を表示していますね。

このMAX関数を使った数式ですが、通常MAX関数を使うときは、
オートSUMボタンの▼をクリックして、
その中にある、最大値を使います。

その場合範囲選択をして、
その中での最大値を算出するということが多いかと思いますが、
MAX関数ダイアログボックスを表示するとわかるのですが、
数値1、数値2となっていて、
それぞれの引数を設定することで、比較して、
そのうちの最大値を算出することが出来ることがわかります。

では、B7を30000と入力してみて結果を確認してみましょう。

このケースは、B7-B8で算出される値は、100000なので、
その値と0を比較して最大値を算出しますので、
100000を算出してくれるわけです。

今回のように、IF関数に頼りがちになりますが、
別の関数や別のExcelの機能を使うことで、
わかりやすくなるケースもありますので、
いろいろ試してみると意外な方法が見つかるかもしれませんね。

4/16/2018

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

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

<Excel関数一覧>

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

COUPDAYBS クーポンデイビーズ
購入日より前の利払日までの日数を算出
COUPon DAYs Biginning to Settlement

COUPDAYS クーポンデイズ
購入日を含む利払日と利払日の間の日数を算出

COUPDAYSNC クーポンデイエスエヌシー
購入日より次の利払日までの日数を算出
COUPon DAYs Settlement to Next Coupon

COUPNCD         クーポンエヌシーディー
購入日後の最初の利払日を算出
COUPon, Next Coupon Date

COUPNUM         クーポンナンバー
購入日後の利払回数を算出

COUPPCD         クーポンピーシーディー
購入日より前の直近の利払日を算出
COUPon, Previous Coupon Date

TBILLEQ         ティービルイーキュー
米国財務省短期証券の債権に相当する利回りを算出

TBILLPRICE ティービルプライス
米国財務省短期証券の額面100ドル当たりの価格を算出

TBILLYIELD ティービルイールド
米国財務省短期証券の利回りを算出

今回は、COUP(クーポン)関係と米国財務省短期証券関係の関数でした。

4/15/2018

今週のFacebookページの投稿 2018/04/09-2018/04/15

今週のFacebookページの投稿 2018/04/09-2018/04/15

<Facebookページ>

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

4月09日
Excel。データベースで使用するときには、
必ず、見出し行を作る必要がありますね。

4月10日
Excel。テーブルなどのデータベースで使用すると、
列名は、フィールド名という表現にかわります。

4月11日
Excel。テーブルなどのデータベースで使用すると、
列は、フィールドという表現にかわります。

4月12日
Excel。テーブルなどのデータベースで使用すると、
行は、レコードという表現にかわります。

4月13日
Excel。並び替えのことをSORTといいますね。

4月14日
Excel。並び替えは、昇順・降順という言い方で、処理をしますね。

4月08日
Excel。並び替えの条件で、空白は、常に最後になるようになっていますね。

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

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

4/14/2018

Access。クエリで集計は集計だけど…累計って算出できるの?【DSum】

Access。クエリで集計は集計だけど…累計って算出できるの?

<DSum関数>

Excelでは、ごくごく普通に資料に算出している「累計」なのですが、
Accessで累計を算出することはできるのでしょうか?

またどのようにしたら、クエリで算出することができるのでしょうか?

Excelでは、SUM関数と絶対参照との組み合わせで、
累計を算出することは簡単にできますよね。数式としては、こんな感じですね。

=SUM($B$2:B2)

あとは、オートフィルで数式をコピーすれば簡単に算出できますが、
Accessのクエリで、累計は算出することはできることはできますが、
ちょっと煩雑な演算式を作る必要があります。

まぁAccessはデータベースソフトなので、
1レコード分ずつをみますが、それを縦方向に考えるということは、
集計以外考えませんので、煩雑になってしまうのかも。

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

数量の累計を算出するクエリを作っていきましょう。

クエリデザインで次のようにフィールドを作っていきましょう。

累計を算出するには、AccessのDSum関数を使うことで算出することが出来ます。

DSum関数の引数はどのようになっているのかを先に確認しておきましょう。

DSum関数(累計させたいフィールド名,保存するテーブル名かクエリ名,条件)

となっています。

ただし、このまま実行しようとすると、エラーが出てしまいます。

演算フィールド名である、「累計」という文字は表示されていますから、
演算フィールドは合っているようですね。

では、なぜエラーになってしまったのかというと、保存していないからです。

このDSum関数の引数を改めて確認してみましょう。

DSum関数(累計させたいフィールド名,保存するテーブル名かクエリ名,条件)

引数の中に、保存するテーブル名かクエリ名とありますよね。

そのためクエリの場合は、
先にクエリ名をつけておかないとエラーが発生してしまうのです。

では、Q累計というクエリ名を付けて保存しておきましょう。

では、改めて実行してみることにしましょう。

累計を算出することが出来ましたね。

当然クエリですので、他のフィールドに条件を付けることで、
その条件での累計も簡単に算出することが出来るようになりました。

しかし、この累計ですが、左揃えになっていますね。

これは、文字型の数値になってしまっていますので、
せっかくですから、次のように累計の演算フィールドを修正しておきましょう。

累計: DSum("数量","Q累計","[管理ID]<=" & [管理ID])*1

最後に、×1を入れたわけですね。

Excelでおなじみの、文字型数値を数値に変換する方法と同じですね。

では実行して確認しておきましょう。

このように、累計の値が右揃えになりましたね。

Accessで累計を算出するときには、
DSum関数を使うことで算出することが出来ますね。