Excel。DOLLAR関数で数値を四捨五入してドル記号を付けた文字列できます。
<関数辞典:DOLLAR関数>
DOLLAR関数
読み方: ダラー
分類: 文字列操作
DOLLAR(数値,[桁数])
数値を四捨五入してドル記号を付けた文字列に変換する
Excel・Word・PowerPoint・Accessのテクニックや研修ネタ・テキストを紹介しております。主に、講義先や現場レベルで質問があったものを中心に書いております。
DOLLAR関数
読み方: ダラー
分類: 文字列操作
DOLLAR(数値,[桁数])
数値を四捨五入してドル記号を付けた文字列に変換する
作業効率もUPする、知っていると便利なショートカットキー。
なお、Excelのバージョンによって多少変わります。
今回は、Ctrlキーと;で今日の日付などの記号を紹介。
Ctrl+;
今日の日付を入力する(セミコロン)
Ctrl+:
現在時刻を入力する(コロン)
Ctrl++
セルの挿入ダイアログ ボックスを表示する
Ctrl+-
セルの削除ダイアログ ボックスを表示する
Ctrl+*
セルの周囲の現在の選択範囲を選択
2行1組のデータから、1行おきにデータを抽出したいのですが、抽出後、並べ替えをするなら、抽出した時に、並べ替えが終わっていたら、作業効率がいいわけですね。
次の表をつかって、説明します。
売上高だけのデータを抽出して、さらに、6月の売上高を降順にしたいとします。
オートフィルター機能をつかったとしても、ちょっと面倒な作業なわけですね。
ところが、SORT関数とFILTER関数を組み合わせてつかうことで、手早く抽出して並べ替えもおこなうことができます。
A12に次の数式を設定します。
=SORT(FILTER(A2:E9,B2:B9="売上高"),5,-1,FALSE)
これで、売上高のデータで6月のデータの降順で抽出することができました。
そして、この数式は、オートフィル機能をつかわなくても、スピル機能によって、自動的に数式が拡張されます。
では、数式を確認していきましょう。
SORT関数は、並べ替えを行う関数です。
最初の引数は、「配列」。
つまり範囲選択ですね。
ここにFILTER関数をネストしてます。
FILTER関数の説明はあとに回します。
2番目の引数は「並べ替えインデックス」。
左から何列目を並べ替えの対象としますかという設定です。
6月で並べ替えをしたいわけですから、左から5つ目なので、「5」
3番目の引数は「並べ替えの順序」。
「-1」を設定することで降順と指示できます。
ちなみに「1」だと昇順です。
最後の引数は「並べ替えの基準」。
「FALSE」の「行で並べ替え」を設定します。
「TRUE」にすると、「列で並べ替え」を設定できます。
「配列」で設定したFILTER関数も確認しておきます。
最初の引数は、「配列」。
範囲選択ですね。
「A2:E9」を設定します。
2番目の引数は、「含む」。
これが条件に該当します。
「B2:B9="売上高"」とすることで、B2:B9で売上高が対象にすることができるというわけですね。
FILTER関数と色々な関数を組み合わせて使ってみることで、意外な方法が見つかるかもしれませんね。
Facebookページに書いた、Excelの豆知識(Trivia)です。
4月16日
Excel。
T関数
読み方は、ティーで、文字列を抽出する
4月17日
Excel。
TAN関数
読み方は、タンジェントで、角度の正接(タンジェント)算出します。
4月18日
Excel。
TANH関数
読み方は、ハイパーポリック タンジェントで、数値の双曲線正接を算出します。
4月19日
Excel。
TBILLEQ関数
読み方は、ティービルイーキューで、米国財務省短期証券の債権に相当する利回りを算出します。
4月20日
Excel。
TBILLPRICE関数
読み方は、ティービルプライスで、米国財務省短期証券の額面100ドル当たりの価格を算出します。
4月21日
Excel。
TBILLYIELD関数
読み方は、ティービルイールドで、米国財務省短期証券の利回りを算出します。
4月22日
Excel。
TDIST関数
読み方は、ティーディストで、t分布の右側確率か両側確率を算出します。
DMIN関数
読み方: ディーミニマム
読み方: ディーミン
分類: データベース
DMIN(データベース,フィールド,条件)
条件を満たすレコードの最小値を算出します
データ全体を対象にした分散を算出するには、VARP関数をつかうと、手早く算出することができますが、条件付きとなると、VARP関数では対応することができません。
そこで、データベース系関数の「DVARP関数」を採用することで、手早く算出することができます。
なお、DVARP関数の「P」は「Population」=母集団のことを指しています。
それでは、次のデータをつかって説明していきます。
条件は、B8:B9です。
D9にカテゴリーがPNの在庫数の分散を算出したいので、次の数式を設定します。
=DVARP(A1:D6,D1,B8:B9)
これで、条件付き分散を算出することができます。
設定した数式の引数を確認していきます。
最初の引数は、「データベース」。
範囲のことなので、A1:D6を設定します。ポイントは見出し行も含めます。
2つ目の引数は、「フィールド」です。
分散を算出したい列の見出しを設定します。在庫数の分散を算出したいので、D1を設定します。
最後の引数は、「条件」です。
事前に用意したB8:B9を設定します。
DMAX関数
読み方: ディーマックス
分類: データベース
DMAX(データベース,フィールド,条件)
条件を満たすレコードの最大値を算出します
レコード。
行方向のデータを並べ替えするならば、データタブの昇順や降順。
あるいは、並べ替えのボタンをクリックすれば、手早く並べ替えることができます。
では、次のように列を対象にした並べ替えは、どのようにしたら、手早く行うことができるのでしょうか。
対応方法を紹介していきます。
データタブの「並べ替え」をクリックします。
並べ替えダイアログボックスが表示されますので、オプションをクリックします。
このように、便利な機能が隠れていたりしますので、色々探してみると、意外な発見があるかもしれませんね。
データがどのぐらい、散らばっているのかを知るには分散を算出します。
そして、データ全てを使いたくでもデータ量が多い場合は、データの一部を使って分散を算出します。これを「不偏分散」といいます。
Excelには、不偏分散を算出することができる、VAR.S関数が用意されていますが、条件を付けて算出することができません。
使用する場合、わざわざ、該当するデータを抽出してから、VAR.S関数を使うという流れで算出します。
ただ、それでは、面倒なので、条件付き不偏分散を算出することができる「DVAR関数」をつかうことで、手早く算出することができます。
次の表をつかって不偏分散を算出していきます。
「DVAR関数」をはじめとする「D系:データベース系」関数は、事前に条件を用意する必要があります。
B8:B9が条件に該当します。
D9にDVAR関数の数式を設定します。
=DVAR(A1:D6,D1,B8:B9)
これで、カテゴリーが「PN」の不偏分散を算出することができました。
DVAR関数の引数を確認しておきます。
最初の引数は、「データベース」。
見出し行も含めて表全体ですから、A1:D6を設定します。
2つ目の引数は、「フィールド」。
これは、算出対象になる列名です。在庫数の不偏分散を算出するわけですから、D1を設定ます。
最後の引数は、「条件」。
先程紹介したように、B8:B9を設定します。
これで、条件付きの不偏分散を算出することができました。
なお、算出結果の数値が0に近ければ、散らばっていないことを意味しています。
DISC関数
読み方:ディスク
読み方:ディスカウント
分類: 財務
DISC(受渡日,満期日,現在価値,償還価額,[基準])
割引債の割引率を算出します
データを読み込んでみたら、年月日ごとのフィールドで設定されていました。
日付のフィールドをつくりたいのですが、どのようにクエリをつくったらいいのでしょうか。
作成タブのクエリデザインをつかっていきます。
今回は、すべてのフィールドを使っていますが、最低でも年月日それぞれのフィールドを設定します。
ここでExcelと異なるのが、Date関数ではないということです。
Excelでは、DATE関数をつかうことで、年月日を引数内で設定すれば、手早く日付をつくることができますが、AccessのDate関数は、今日の日付を表示してしまいます。
つまり、ExcelのTODAY関数と同じ意味になるのがAccessのDate関数というわけです。
では、ExcelのDATE関数のように、年月日から日付をつくることができるのが、Accessでは、「DateSerial関数」というわけです。
新しく設定する演算フィールドを設定します。
日付: DateSerial([年],[月],[日])
三桁区切りの「,(カンマ)」を設定すると、負数ならば「-(マイナス)」が表示されて、数値の色も赤色に変わってくれますが、パーセント表示の場合、赤色になりません。
最初に、ホームタブにあるパーセント表示に変えるボタン。
「パーセントスタイル」をクリックしておきましょう。
C1:C2を範囲選択します。
セルの書式設定ダイアログボックスを表示します。
セルの書式設定ダイアログボックスは「Ctrl + 1」というショートカットキーが用意されています。
セルの書式設定ダイアログボックスは頻繁に使用しますので、知っていると便利なショートカットキーの一つです。
+0.0%;[赤]-0.0%
あとは、OKボタンをクリックします。
これで、正数の場合、「+(プラス)」が付いたパーセント表示で、負数の場合なら「-(マイナス)」が表示されて、数値の色を赤色で表示することができます。
Excelのショートカットキー
作業効率もUPする、知っていると便利なショートカットキー。
なお、Excelのバージョンによって多少変わります。
今回は、Ctrlキーとアルファベット1~0までを紹介。
Ctrl+1
セルの書式設定ダイアログボックスを表示する
Ctrl+2
セルを太字にする
Ctrl+3
セルを斜体にする
Ctrl+4
セルに下線を引く
Ctrl+5
セルに打ち消し線を引く
Ctrl+6
オブジェクトを非表示にする。
リボンの図やグラフが使えなくなります。
Ctrl+8
アウトライン記号の表示と非表示を切り替える。
Ctrl+9
選択した行を非表示にする。
Ctrl+0
選択した列を非表示にする。
※Ctrl+7は現時点で無いようです。
時間計算は、Excelが苦手としているものの一つだといえます。
苦手というか、面倒といったところでしょうか。
次の表をつかって説明します。
B7の数式は、
=SUM(B2:B6)
と設定してみましょう。
150分ではわかりにくいので、単位を「時分」に変えてみることにします。
表示形式タブの分類から「時刻」をクリックして、種類を「13時30分」の時分を選択してOKボタンをクリックします。
ところが、表示がおかしくなっています。
原因は、B7の値は単位こそ「分」としていますが、実際は150という数値なわけです。
Excelは1日を1としました。
つまり1=1日=24hですから、1/24しないといけません。
そして、1時間は60分ですから、1分は1分=1/60です。
よって、B7の値を24で除算して、さらに60で除算する必要があるというわけです。
それでは、B7の数式を、修正します。
あとは、表示形式を
h"時間"mm"分"
と修正したら完成です。
Excelでは時間計算をするときなどに、1=1/24ということを、頭の中に入れておく必要がある場合がありますので、注意が必要ですね。
条件付きで合算値を算出したい場合には、SUMIF関数やSUMIFS関数など色々ありますが、今回はDSUM関数を紹介していきます。
DSUM関数をはじめとする「データベース系関数」は、条件を事前に用意しておく必要があります。
それが、B8:B9です。
「~鉛筆で終わる」を条件とするには、「*(ワイルドカード)」を使う必要があります。
そこで、「*鉛筆」と条件として設定します。
D9の数式は、
=DSUM(A1:D6,D1,B8:B9)
これで、「~鉛筆」で終わる商品の合算値を算出することができます。
DSUM関数の引数も確認しておきましょう。
最初の引数は、「データベース」です。表のことなので、A1:D6を設定します。
なお、見出し行も含める必要があります。
2番目の引数は、「フィールド」です。
合算したい列の見出しを選択します。
なのでD1を設定します。
3番目の引数は、「条件」です。
事前に用意しておいた、B8:B9を設定します。
作業効率もUPする、知っていると便利なショートカットキー。
Excelのバージョンによって多少変わります。
今回は、CtrlキーとアルファベットS~Zまでを紹介。
Ctrl+S
ファイルを保存する
Ctrl+T
[ テーブルの作成 ] ダイアログ ボックスを表示
Ctrl+U
下線を引く
Ctrl+V
貼り付ける
Ctrl+W
ブックを閉じる
Ctrl+X
切り取りする
Ctrl+Y
やり直す
Ctrl+Z
元に戻す
データを読み込むと、次のように、年月日がそれぞれ別の列になっていました。
作業上、不便なので、日付をつくりたいわけですね。
そこで、Excel VBAをつかってD列に日付を設定するプログラム文をつくってみます。
Sub 日付作成()
Dim i As Long
Dim lastrow As Long
lastrow = Cells(Rows.Count, "a").End(xlUp).Row
For i = 2 To lastrow
Cells(i, "d") = DateSerial(Cells(i, "a"), Cells(i, "b"), Cells(i, "c"))
Next
End Sub
とりあえず、実行してみます。
D列に日付が設定されてました。
プログラム文を確認しておきましょう。
まずはお馴染みの変数宣言ですね。
Dim i As Long
このあとFor~Next文で繰り返しのカウントでつかいます。
Dim lastrow As Long
For~Next文で何回繰り返し処理をすればいいのかを指示するために、データの最終行のセル番号をいれるための変数です。
その最終行の行数を算出するのが次の処理です。
lastrow = Cells(Rows.Count, "a").End(xlUp).Row
ここからがメインの処理です。
For i = 2 To lastrow
Cells(i, "d") = DateSerial(Cells(i, "a"), Cells(i, "b"), Cells(i, "c"))
Next
D列に日付を表示するための処理
DateSerial(Cells(i, "a"), Cells(i, "b"), Cells(i, "c"))
ここで注意するのは、「Date」ではなくて「DateSerial」ということですね。
Cells(i, "d") = Date(Cells(i, "a"), Cells(i, "b"), Cells(i, "c"))
とすると、コンパイルエラーが表示されます。
このDateは、次のように設定します。
Cells(i, "d") = Date()
ただ、これは、今日の日付を設定するときつかいます。
Accessと同じというわけですね。
要するに、
ExcelのDATE関数と同じように、Excel VBAでつかうには、「DateSerial関数」を使用します。
ExcelのTODAY関数と同じように、Excel VBAでつかうには、「Date関数」を使用します。
そのため、「DateSerial関数」を使用する必要がありますので、注意が必要ですね。
DGET関数
読み方: ディーゲット
分類: データベース
DGET(データベース,フィールド,条件)
データベースから1つの値を抽出します
分析ツールやソルバーといいた便利なツールがありますが、通常のExcelには表示されいません。
これらは、「アドイン」という追加処理をすることで、使えるようになります。
ファイルタブのオプションをクリックします。
アドインをクリックします。
管理が「Excelアドイン」になっているのかを確認したら、設定ボタンをクリックします。
追加したいアドインを選択します。
今回は分析ツールにチェックマークを入れます。
そのあと、OKボタンをクリックします。
これで、アドインの「データ分析」をつかうことができます。
帳票などで、1行ごとのデータを抽出したい場合、数式をつかって、1行おきになるように判断させます。
その結果をオートフィルターで抽出して、コピーするという方法をよく採用していましたが、FILTER関数をつかうことで、手早く抽出し、別の場所に取り出すことができます。
次の表のようにしたいわけです。
A1:E9の表は、販売数と売上高が交互になった表であることがわかります。
売上高のデータだけ、つまり1行おきにデータを抽出したいわけですね。
どうやったら、抽出することができるのかと考えるところですが、FILTER関数をつかえば、手早く抽出することができます。
11行目に見出し行をコピーしておきます。
A12に次の数式を設定します。
=FILTER(A2:E9,MOD(ROW(B2:B9),2)=1)
スピル機能によって、オートフィルで数式をコピーする必要はありません。
FILTER関数は、わかりやすい関数なので、使い勝手もいいように思えます。
それでは、数式とFILTER関数の引数を確認しておきましょう。
最初の引数は、「配列」です。データの範囲ですから、A2:E9と設定します。
2番目の引数は、「含む」です。これは、条件のことです。
抽出する条件ですが、1行おきに抽出したいわけなので、MOD+ROW関数の組み合わせで対応することができます。
設定した条件は、
MOD(ROW(B2:B9),2)=1
ROW関数は行番号を算出する関数です。
MOD関数は、除算した余りを算出する関数です。
その値を2で除算した余りが1と等しいかという条件をつくったわけですね。
これで、一行おきにデータを抽出することができます。
なお、MOD+ROW関数で、行が交互になるような条件をつくりましたが、「販売数」・「売上高」という項目で区別できるので、FILTER関数だけでも抽出することができます。
=FILTER(A2:E9,B2:B9=”売上高”)
このようにFILTER関数と他の関数を組み合わせてつかうことで、抽出作業が改善できるかもしれませんね。
時間の表示形式だと、「○時○分」はありますが、「○時間○分」と表示したい場合には、表示形式のユーザー定義をつかって、表示を変更する必要があります。
今回は、C2:C3を範囲選択します。
セルの書式設定ダイアログボックスを表示します。
種類を次のように設定します。
h"時間"mm"分"
これで、「○時間○分」と表示することができます。
Facebookページに書いた、Excelの豆知識(Trivia)です。
4月9日
Excel。
TBILLPRICE関数
読み方は、ティービルプライスで、米国財務省短期証券の額面100ドル当たりの価格を算出します。
4月10日
Excel。
TBILLYIELD関数
読み方は、ティービルイールドで、米国財務省短期証券の利回りを算出します。
4月11日
Excel。
TDIST関数
読み方は、ティーディストで、t分布の右側確率か両側確率を算出します。
4月12日
Excel。
T.DIST関数
読み方は、ティー・ディストで、t分布の左側(下側)累積確率か確率密度を算出します。
4月13日
Excel。
T.DIST.RT関数
読み方は、ティー・ディスト・ライトテールで、t分布の右側(上側)確率を算出します。
4月14日
Excel。
T.DIST.2T関数
読み方は、ティー・ディスト・ツーテールで、t分布の両側確率を算出します。
4月15日
Excel。
TEXT関数
読み方は、テキストで、数値を書式設定した文字列に変換する
VLOOKUP関数は、表から抽出する時に、とても便利な関数ですが、残念ながら万能ではありません。
次の表のような場合は、対応することができないからです。
B8の数式は、
=VLOOKUP(A8,B2:D4,2,FALSE)
これで、算出することができます。
ところが、C8のアンケート結果を抽出するには、VLOOKUP関数では対応することができません。
VLOOKUP関数の2番目の引数、「範囲」には、B2:D4を設定します。
3番目の引数の「列番号」で、2番目の引数で設定した「範囲」の左側から何番目のデータを抽出するのかという意味の「列番号」を設定するわけです。
今回は、左側から2番目に商品名があるので「2」と設定するわけです。
アンケート結果を抽出したい場合は、「範囲」の左側にあります。
仮に「範囲」を左側に拡張しても、検索値の左側になってしまうので、「列番号」を「-1」と設定することは出来ません。
このようにVLOOKUP関数では、検索値の左側からデータを抽出することができません。
そこで、登場するのが「XLOOKUP関数」です。
C8にXLOOKUP関数をつかって、数式を設定してみましょう。
=XLOOKUP(A8,B2:B4,A2:A4,"",0,1)
これで、抽出した結果を表示することができました。
XLOOKUP関数の引数を確認しておきましょう。
1番目の引数は、「検索値」なので、A8
2番目の引数は、「検索範囲」なので、B2:B4
3番目の引数は、「戻り範囲」なので、A2:A4
この戻り範囲が、抽出したいデータがある範囲です。
4番目の引数は、「見つからない場合」なので、「””」。
もしデータがなければ「””(空白)」と表示するようにしています。
VLOOKUP関数だと#N/Aが表示されるのですが、それを防止することもできます。
5番目の引数は、「一致モード」なので、「0」の完全一致を選択します。
VLOOKUP関数の検索方法をFALSEの完全一致にするのと同じですね。
6番目の引数は、「検索モード」。
これは、データの先頭から検索させることにしますので「1」としました。
VLOOKUP関数もわかりやすい関数でしたが、XLOOKUP関数だと、より多くのケースにも対応してくれます。
使えるバージョンならば、つかってみると、数式を改善することができるかもしれませんね。
作業効率もUPする、知っていると便利なショートカットキー。
Excelのバージョンによって多少変わります。
今回は、CtrlキーとアルファベットI~Rまでを紹介。
Ctrl+I
斜体にする
Ctrl+K
ハイパーリンクダイアログボックスを表示
Ctrl+L
テーブルの作成ダイアログ ボックスを表示
Ctrl+N
新規ブックを作成する
Ctrl+O
ブックを開く
Ctrl+P
印刷プレビューを表示
Ctrl+Q
クイック分析 オプションを表示
Ctrl+R
左のセルの内容を右にコピーする
Ctrl+J と Ctrl+M のショートカットキーは、ありません。
ただ、表示形式のユーザー定義で、Ctrl+Jを挿入すれば、改行することができます。
DEVSQ関数
読み方: ディブスクウェア
読み方: ディビエーションスクエア
分類: 統計
DEVSQ(数値1,[数値2])
数値の偏差平方和を算出する
Excelでは、「¥」を表示するには、表示形式で「通貨スタイル」をオンにするだけで表示することができますが、Accessのクエリではどのようにしたら、いいのでしょうか。
まずクエリを作成します。
売上金額を算出したいので、単価フィールドと販売数フィールドを乗算した数式を設定しました。
売上金額: [単価]*[販売数]
なお、単価と販売数は、数値型で書式などは設定していません。
このまま実行して、データシートビューにしても当然「¥」はついていません。
そこで、演算フィールドを選択して、プロパティシートを表示させます。
これで、通貨スタイルを設定することができましたので、実行してデータシートビューで確認してみましょう。
演算フィールドを設定するならば、Format関数と組み合わせたら、わざわざプロパティシートで書式を設定する必要はないように思えます。
Format関数をつかった演算フィールを追加してみました。
Format関数: Format([単価]*[販売数],"¥¥#,##0")
実行してデータシートビューで確認してみましょう。
確かに、「¥」はついているのですが、左揃えになっていることがわかりますね。
つまり、数値型ではなくて、文字型に変わってしまったわけです。
Format関数は、確かに表示形式を設定してくれるのですが、文字型になってしまうので、用途に合わせて使う必要があります。
そのため、「型」がそのままの、プロパティシートの書式を「通貨」にするほうが、いいように思えます。