10/10/2020

Access。番号順にしたいのに、並び替えがうまくいきません。どうしたらいいの?【SORT:CLng】

Access。番号順にしたいのに、並び替えがうまくいきません。どうしたらいいの?

<Access:CLng関数>

頻繁にAccessをつかっていなかったりすると、Excelと同じように処理をしても、上手くいかないケースというのがあります。

例えば、Accessでテーブルのあるフィールドで並び替えをしようと思って、クエリをつくってみたものの、昇順・降順で並んでくれないことがあります。


それじゃ、テーブル上で直接並び替えを行ってみても、昇順・降順で並んでくれないことがあります。


次のようなテーブルです。

NOフィールドを番号順で並び替えをしたいわけです。


Accessに慣れてくると、「あっー」って感じのテーブルなんですが…

とりあえず、クエリで昇順にしてみて、確認してみましょう。


クエリデザインをつかって、作成していきます。


 NOフィールドの並び替えに、「昇順」を設定します。では、実行して確認してみましょう。


何の変化してないように見えますが、一応変化はしているんですが…昇順には並んでいません。

ところが、説明のために準備している、「コード」フィールドで並び替えを設定してみると、どうなるのか確認してみましょう。


結果、きちんと昇順に並んでいます。


なぜこのようなことが起こるのでしょうか?


それは、それぞれのフィールドの「型」が影響しています。


元のテーブルがどのような「型」になっているのか確認してみましょう。


NOは、短いテキスト型。すなわち、「文字型」です。

コードは、数値型。

文字型なので、「1」のつぎに「12」が来てしまい、昇順に並んでくれません。


どうしたらいいのでしょうか?

そこで、登場する関数があります。


それが、「CLng関数」。

この関数は、文字型を数値型に変換する関数です。


なお、「CDbl関数」が小数も扱うフィールドの時に使用する関数で、「CCur関数」が金額を扱うフィールドの時に使用する関数と、データ型によって関数が異なりますので、注意が必要です。


先程のクエリを「CLng関数」をつかった、演算フィールドに変更して確認してみましょう。

 

NO: CLng([T商品マスタ].[NO]) と演算フィールドにしました。

CLng関数は、

CLng(テーブル名.フィールド名)という形式です。


それでは、実行して確認してみましょう。

今回は、希望通りに、昇順で並んでいることが確認できました。


今回のように、思ったように変わらない時などは、データ型を確認してみるというのもいいかもしれませんね。


Excelにも「データ型」のトラブルはありますので、Excelだけしか使っていないから大丈夫というわけでもありません。

10/09/2020

Excel Technique_BLOG Categoryに追加しました。2020/10/9

Excel Technique_BLOG Categoryに追加しました。

<目次サイト>

このBLOGの記事を、

カテゴリー分けにした【Excel Technique_BLOG Category】に追加しました。


Excel。セル内の文字列分割をどうしても関数を使ってやってみたい。

区切り位置で十分対応が出来るので区切り位置でいいのですが、関数でやってみましょう。


<続きはこちら>

Excel。セル内の文字列分割をどうしても関数を使ってやってみたい。

https://infoyandssblog.blogspot.com/2015/08/excelsplit.html


Excel。グラフの横軸を縦書きにならない時に、縦書きにする方法

このCtrl + Jというショートカットキーは、改行を意味します。


<続きはこちら>

Excel。グラフの横軸を縦書きにならない時に、縦書きにする方法

https://infoyandssblog.blogspot.com/2015/08/excelgraph.html


Excel。入力されている日付の”/”(スラッシュ)をなくして数値化したい。

日付の”/”(スラッシュ)をなくして、数字化して使いたいんだけど、どうしたらいいかな


<続きはこちら>

Excel。入力されている日付の”/”(スラッシュ)をなくして数値化したい。

https://infoyandssblog.blogspot.com/2015/08/excelslash.html

10/07/2020

Excel。ピボットテーブル。10件ごとにまとめて集計するには?【Pivot table】

Excel。ピボットテーブル。10件ごとにまとめて集計するには?

<ピボットテーブル:グループ化>

大量のデータを月ごとなどで、まとめて集計をすることがあります。

時系列的に10件とか50件ごととかに、アイテムごとにまとめて集計したい場合、どのようにしたら楽に算出できるでしょうか?


少なければ、自分で10件ごとなどに集計行を挿入したりしますが、データが増えれば、簡単な当然面倒な作業になるわけです。


作業効率を改善するということから、Excel VBAでマクロを作成するという方法もありますが、慣れていないと簡単には作ることができません。

そこで今回は、ピボットテーブルで10件ごとに集計した表を作ってみます。


次のデータを用意しました。

データ数は100件なので、自力で集計することも出来ない量ではありません。


まずは、ピボットテーブルを挿入していきます。


 

挿入タブの「ピボットテーブル」をクリックして、ピボットテーブルの作成ダイアログボックスを表示します。


 

範囲選択を確認したら、OKボタンをクリックします。

ピボットテーブルのシートが挿入されました。

ピボットテーブルのフィールド作業ウィンドウをつかって設定していきます。


 

行に、旅行名。列にNO。値に金額を設定すると、次のようなピボットテーブルを表示することができます。


 

さて、ここからがいよいよ、10件ごとに集計する作業に入ります。

列を10件ごとにまとめる。

すなわち、グループ化を使っていきます。


列フィールドをクリックします。

ピボットテーブル

 

ピボットテーブル分析タブの「グループの選択」をクリックします。

列フィールドをクリックしていない、データや他のところをクリックしていると、「グループの選択」がグレーアウトしていて、クリックできないので、注意する必要があります。


グループ化ダイアログボックスが表示されたら、単位を変更します。

今回は、10件でまとめますので、10のままにします。

仮に100件ごとだったらば、単位を100に変更します。

 

確認が終わったらば、OKボタンをクリックします。


10件ごとに集計することができました。このように簡単に、まとめることができました。

たまたまかもしれませんが、集計してみると、ニューヨークが11件目から40件目まで販売数がないことがわかりました。


ピボットテーブルは、操作自体も簡単なので、使える機会があれば、いろいろと使ってみると、いつもと違う目線からの資料を作ることができますので、試してみるのもいいかもしれませんね。

10/06/2020

今週のFacebookページの投稿 2020/9/28-2020/10/04

今週のFacebookページの投稿 2020/9/28-2020/10/04

<Facebookページ>

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


9月28日

Excel。MUNIT関数。

読み方は、マトリック ユニットで、指定した次元の単位行列を算出します


9月29日

Excel。N関数。

読み方は、エヌで、数値または型に対応する数値を算出します


9月30日

Excel。NA関数。

読み方は、エヌエーで、つねにエラー値#N/Aを返します


10月1日

Excel。NEGBINOMDIST関数。

読み方は、ネガバイノムディストで、負の二項分布の確率を算出します


10月2日

Excel。NEGBINOM.DIST関数。

読み方は、ネガバイノム・ディストで、負の二項分布の累積確率か確率密度を算出します。

Excel2010以降


10月3日

Excel。NETWORKDAYS関数。

読み方は、ネットワークデイズで、日付の間の稼働日数を算出します。


10月4日

Excel。NETWORKDAYS.INTL関数。

読み方は、ネットワークデイズ・インターナショナルで、週末(曜日指定OK)と祝日を除いた日付間の日数を算出します。


10/04/2020

Excel。入力規則のリスト。2列表示で選択出来る方法。かなり強引ですが…【Input rule】

Excel。入力規則のリスト。2列表示で選択出来る方法。かなり強引ですが…

<入力規則のリスト・LEFT+FIND関数>

見積書や納品書など、VLOOKUP関数と入力規則のリストを組み合わせて使うと便利ですよね。


例えば、次の表。


A:B列の表は、見積り表のようなものだとして、D:E列が商品リストとします。

A列には、入力規則のリストが設定してあります。

データの入力規則をつかって、次のように設定してあります。


 

B列には、数式を設定しております。

=IFERROR(VLOOKUP(A2,$D$2:$E$6,2,FALSE),"")

VLOOKUP関数をつかうことで、商品リストである、D:E列から商品コードに該当する商品名を検索し表示しています。


このままで十分といえば十分なのですが、このぐらいの商品数ならば、商品コードとその商品名を覚えることもできますが、商品数が多くなったり、あるいは、商品コードがバーコードのように覚えられるボリュームでない場合、イチイチ確認したあとに、入力規則のリストで入力するわけですね。


だったら、コピー&ペーストしたほうが早い場合もでてしまいます。


そこで、入力規則のリストを2列表示することができないものか?と思うわけですね。

こんな感じです。


この方法をご紹介していきますが、かなり強引なので…ご了承のほど。


用意するものがあります、G列に、数式を使ってリストに表示したい列を作ります。


 G2の数式は、

=CONCAT(E2,"…",F2)

CONCAT関数は、旧バージョンにはありませんので、CONCATENATE関数を使いましょう。

「&」をつかった結合でもOKです。


つづいて、A列とB列の間に、列を挿入します。追加した列幅は、狭くてOKです。


その挿入したB列に次のように、入力規則のリストを設定します。


 

C列に変わった、VLOOKUP関数の数式を確認修正します。

=IFERROR(VLOOKUP(A2,$E$2:$F$6,2,FALSE),"")

検索値が、A列になっていることを確認します。


そして、商品コードのA列に数式を設定します。]

入力規則のリストが設定されているようでしたら、消去しておきます。


A2には、次の数式を設定します。

=IFERROR(LEFT(B2,FIND("…",B2,1)-1),"")

何をしているのか説明します。


IFERROR関数は、B列が空白の場合エラーが表示されるので、その予防です。


LEFT関数は、左から指定された文字数を抽出します。

今回対象は入力規則のリストで入力したB列です。


何文字なのかが、FIND関数で算出しています。

FIND("…",B2,1)-1。

今回は、”…”が区切り文字になっています。

最初に登場する、”…”を見つけた文字数を算出したら、”…”の文字数が余計なので、その値から「-1」します。


これで動きを確認してみましょう。


入力規則のリストが2列分表示されているので、検索しやすくなっています。

リストの幅が狭い場合は、B列を広げるとリストの幅も広がります。


動くことは動くのですが、B列の文字が見えていては、カッコ悪すぎですね。

最後の処理となりますが、文字を見えないようにしていきます。

文字の色を「白」にするとかではありません。


表示形式のユーザー定義をつかって、文字を隠していきます。

B2:B6を範囲選択して、セルの書式設定ダイアログボックスを表示します。


ユーザー定義の種類に「;;;」(セミコロン×3)と設定します。

文字を見えなくすることができました。


かなり強引な方法ですが、入力規則のリストを2列表示にする方法でした。

10/03/2020

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

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

<TOP10>

2020年9月。

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

1位

Excel。まだIFIFIFIF関数で条件分岐させているの?IFS関数使ってみませんか?

https://infoyandssblog.blogspot.com/2020/09/excelifififififsifs.html


2位

Excel。セルのロックを解除したセルをまとめて塗りつぶしたいけど、いい方法はないの?

https://infoyandssblog.blogspot.com/2020/09/exceldetermine-unlocked-cell.html


3位

Access。Excelと異なりデータ型を確認して表示形式を設定します。

https://infoyandssblog.blogspot.com/2020/09/accessexceldisplay-format.html


4位

Excel。平均値だけではみえてこない、データの散らばりを確認してみよう。

https://infoyandssblog.blogspot.com/2020/09/excelscatter-of-data.html


5位

Excel。VLOOKUP関数。#N/Aというエラーの対策方法を改めて確認しよう。

https://infoyandssblog.blogspot.com/2020/09/excelvlookupnaerrorna.html


6位

Excel。IF関数でなく、条件付き書式のアイコンセットで三分岐してみる。

https://infoyandssblog.blogspot.com/2020/09/excelificon-set.html


7位

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

https://infoyandssblog.blogspot.jp/2016/03/excel24hour-schedule24.html


8位

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

https://infoyandssblog.blogspot.jp/2013/07/excel0.html


9位

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

https://infoyandssblog.blogspot.com/2017/09/excelstaircase-graph.html


10位

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

https://infoyandssblog.blogspot.jp/2015/12/excelgraph.html

10/01/2020

Excel。太さが異なる集合縦棒グラフを描くのは簡単そうで、できないグラフです。【Column chart】

Excel。太さが異なる集合縦棒グラフを描くのは簡単そうで、できないグラフです。

<系列の太さがことなる縦棒グラフ>

対前年を比較したグラフを用意しました。

太さが異なる集合縦棒グラフ

見た感じ、作成するのに、なんら難しい感じがしませんね。

棒グラフ(系列)を重ねるのは、アレをすればいいし、太さも、同じところにある、アレを変更すればいいだけでしょう?と頭に浮かんだ方は、結構グラフを作成している人だと思いますが、これ、すんなり作れません。

では、このグラフのデータをつかって、集合縦棒グラフを作っていきましょう。


A1:C7を範囲選択して、「縦棒/横棒グラフの挿入」から「2-D縦棒」にある「集合縦棒」をクリックします。


 

集合縦棒グラフが挿入されます。


2019年の縦棒グラフだけを太くしたいので、確認してみましょう。

2019年の縦棒グラフの系列をダブルクリックする。


あるいは、2019年の縦棒グラフの系列をクリックして、書式タブのグラフ要素が「系列 "2019年"」になっていることを確認してから、「選択対象の書式設定」をクリックします。

右側にデータ系列の作業ウィンドウが表示されます。

 

系列のオプションの「要素の間隔」を変更すれば、系列の太さを変更することができます。

わかりやすいように、今回は、「0%」にしてみましょう。


確かに系列の太さはかわりましたが、選択していない2020年度の系列も太さが変わってしまいました。


要するに、系列ごとに太さを設定することができないわけです。

ついでなので系列を重ねることができるか、確認しておきます。


系列の重なりを「100%」にしてみましょう。

 

重ねることはできましたが、作りたいグラフは、これではない。

では、どのようにしたらいいのでしょうか?ポイントは、「第2軸」をつかいます。

グラフの左右に縦軸を表示するために「第2軸」があるわけではありません。


改めて、集合縦棒グラフを挿入しなおします。

グラフを大きく表示したいので、グラフタイトルは削除しておきます。


手前に表示したいのは、2020年の系列なので、今回は、2020年の系列をクリックして、書式タブのグラフ要素が「系列 "2020年"」になっていることを確認してから、「選択対象の書式設定」をクリックして、データ系列の作業ウィンドウを表示します。

系列のオプションにある使用する軸を「第2軸」にします。

 

グラフはこのように変わりました。


続いて、系列「2019年」をクリックします。

もし重なって見えなくなってしまったら、グラフ要素から選択しましょう。


要素の間隔を今回は、少し空けたいので「15%」にしました。

グラフはこのように変わりました。


このように、系列の太さがことなるグラフができました。

あとは、第2軸の縦軸を削除したり、見やすいようにフォントや色を設定したりすれば完成ですね。


このように、簡単そうにみえるけど、「第2軸」をつかうことで表現しております。


現場でこういうグラフを作りたいと思ったときには、第2軸という発想をもってみるといいかもしれませんね。