Excel。MUNIT関数は指定した次元の単位行列を算出します
<関数辞典:MUNIT関数>
MUNIT関数
読み方: エムユニット
読み方: マトリック ユニット
分類: 数学/三角
MUNIT(次元)
指定した次元の単位行列を算出する
Excel・Word・PowerPoint・Accessのテクニックや研修ネタ・テキストを紹介しております。主に、講義先や現場レベルで質問があったものを中心に書いております。
MUNIT関数
読み方: エムユニット
読み方: マトリック ユニット
分類: 数学/三角
MUNIT(次元)
指定した次元の単位行列を算出する
2行1組の連続した日付を入力したい場合、オートフィルだけでは、入力することができません。
では、どのようにしたら、手早く、2行1組の連続した日付を入力することができるのでしょうか。
名簿のファイルがあります。
ただ、1列何人のデータで移動したらいいのかを求める。
求めた後の移動もデータ量があれば、あるほど面倒になります。
何かいい方法は無いのでしょうか。
そこで、WRAPROWS関数をつかうことで、手早く対応することができます。
では、C2をクリックして、WRAPROWS関数をつかった数式を設定してみましょう。
=WRAPROWS(A2:A13,3,"---")
スピル機能に対応している関数なので、オートフィルで数式をコピーする必要はありません。
これで、1列の表を3列編成にすることができました。
引数を確認しておきましょう。
最初の引数は、vector。
ベクトルです。データの範囲なので、A2:A13と設定します。
2番目の引数は、wrap_count。
折り返し数です。
これは、何列で折り返すのかを設定します。
今回は3列での折り返しなので、「3」と設定します。
最後の引数は、pad_with。
代替値。
なかった場合、どのようにするのかということです。
ない場合は「---」と表示する様にしました。
ちょっとしたことですが、意外と便利な関数ですね。
MULTINOMIAL関数
読み方: マルチノミアル
分類: 数学/三角
MULTINOMIAL(数値1,[数値2],…)
多項係数を算出します 数値の和の階乗と数値の階乗の積との比
Facebookページに書いた、Excelの豆知識(Trivia)です。
5月18日
Excel。
F8
拡張選択モードを有効する
5月19日
Excel。
F9
ブックのすべてのワークシートを再計算する
5月20日
Excel。
F10
リボンにキーボード操作できるキーを表示
Altキーと同じ
5月21日
Excel。
F11
グラフを作成
5月22日
Excel。
F12
名前を付けて保存ダイアログボックスが表示されます
5月23日
Excel。
GROUPBY関数
読み方: グループバイ
分類: 検索/行列
GROUPBY(row_fields,values,function,[field_headers],[total_depth],[sort_order],[filter_array])
行の項目ごとに集計をします。
5月24日
Excel。
PERCENTOF関数
読み方: パーセントオブ
読み方: パーセントオフ
分類: 文字列操作
PERCENTOF(data_subset,data_all)
与えられたデータセットの割合を算出します。
次のような経過時間の表をつくってみたら、結果がおかしなことになっています。
B2には、3.5時間経過した時間が入力されています。
C2には、開始時間に経過時間を足した結果を表示したいので、
=A2+B2
という数式を設定したのですが、結果がおかしなことになっています。
またオートフィルで数式をコピーしたところ、C3も、おかしい結果になっています。
原因は、シリアル値という考え方が抜けていることです。
Excelでは、日付や時間をシリアル値という数値で管理しています。
C2をクリックして、数式タブにある、数式の検証をつかうとよくわかります。
Excelが1日を1としたシリアル値で管理しています。
10時というのは、1/24で1時間なので、1/24*10ということになります。
この値に、単純に3.5を足しても、13.5にはならないことがわかりました。
時間計算は、常にシリアル値を考えないといけないわけです。
つまり、経過時間を次のようにすれば、いいことがわかりました。
確かに、結果は求めることができました。
もし、当初のように、3.5としたままで、結果を求めるには、どのようにしたらいいのでしょうか。
TIME関数をつかって、時間に変更することで対応できます。
=A2+TIME(INT(B2),(B2-INT(B2))*60,0)
B2を数値から時間に変換するので、TIME関数をつかいます。
TIME関数は、時・分・秒という引数が用意されています。
時は、3.5の3なので、小数点を除いた値をつくりたい。
そこで、INT関数で整数化します。
分は、時と逆で、小数点を求めたいので、B2から整数の値を減算すれば、小数点以下を求めたいので、先程の時で求めた値であるINT(B2)をB2から減算すれば、小数点だけが残ります。
残った小数点に60を掛けます。
60かけるのは、分だからです。
最後の引数の秒は不要ですが、無いとエラーになるので、「0(ゼロ)」を設定します。
これで、経過時間を足した終了時間を求めることができます。
MROUND関数
読み方: エムラウンド
分類: 数学/三角
MROUND(数値,倍数)
指定した数値の倍数で四捨五入します
ドーナツグラフは、円グラフと同じように、手早く作ることができます。
では、二重ドーナツグラフは、どのようにしたらいいのでしょうか。
ポイントは、グラフを作るための表。
作り方を間違えると、ドーナツグラフの内円と外円が、思っているようにつくることができません。
そのポイントの説明。
そして、二重ドーナツグラフをつくっていきます。
遠投結果をAさんBさんの二人で、平均値を求めました。
あとから、B5とD5が実は「パス」していたので、「パス」と入力してみました。
先ほどまで、結果は同じだったのですが、トラブルが発生してしまいました。
平均は平均でも、選択した関数が異なっていたのが原因です。
それでは、数式を確認してみましょう。
B9の数式は、
=AVERAGEA(B3:B7)
よくみると、AVERAGE関数ではなくて、AVERAGEA関数です。
このAVERAGEA関数は、範囲内の文字を除くのではなく、「0(ゼロ)」として含めてしまった、平均を算出します。
D9の数式は、
=AVERAGE(D3:D7)
こちらは、お馴染みのAVERAGE関数です。
AVERAGE関数は、範囲選択内の文字は除外して、平均値を求める関数です。
「A」のあるなしで、結果が大きく異なってしまいました。
文字を含めた平均値を算出したいときには、AVERAGEA関数をつかいますが、通常の平均値は、AVERAGE関数でもとめます。
Facebookページに書いた、Excelの豆知識(Trivia)です。
5月11日
Excel。
F2
アクティブなセルを編集する
5月12日
Excel。
F3
[名前の 貼り付け ] ダイアログ ボックスを表示
5月13日
Excel。
F4
直前の動作を繰り返す
5月14日
Excel。
F4
数式作成時
絶対参照・複合参照を設定
5月15日
Excel。
F5
ジャンプダイアログボックスが表示されます
5月16日
Excel。
F6
シート見出しをアクティブにする
5月17日
Excel。
F7
スペルをチェックする。
年間売上がわかるように、集合縦棒グラフをつくってみたものの、わかりにくいので、四半期ごと背景であるプロットエリアを塗り分けたいと考えました。
そこで、グラフのもとになる表を修正します。
1500 という数値は、B列の販売金額の最大値より、ちょっと大きめの数値ということで1500を設定しました。
A1:C10を範囲選択して、ホームタブの「おすすめグラフ」をクリックします。
グラフの挿入ダイアログボックスが表示されます。
すべてのグラフタブにして、組み合わせを選択します。
そのため第2軸をつかいます。
第1軸のままを希望される場合は、グラフの元表のB列とC列をいれかえれば、大丈夫です。
そして、色分けを集合縦棒とします。
OKボタンをクリックします。
縦軸と第2縦軸の目盛を最小値0 最大値1500にします。
縦軸をクリックしたら、書式タブの選択対象の書式設定をクリックして、作業ウィンドウを表示します。
先程表示してあった作業ウィンドウを閉じてしまった場合には、再度選択対象の書式設定をクリックして、作業ウィンドウを表示します。
そうすれば、色分けできるという仕組みです。
凡例の「色分け」だけを選択して削除しておきましょう。
軸の書式設定のラベルにあるラベルの位置を「なし」に変更します。
MODE.SNGL関数
読み方: モード・シングル
分類: 統計
MODE.SNGL(数値1,[数値2],…)
最頻値を算出します
最新の納品日ってどう求めたらいい。
しかも、商品別…。
商品を仕入れたときなど、この商品はいったい、いつ納品したのか。
直近の納品日は、いつなのかを知りたいとき、
どのようにしたら、手早く求めることができるのでしょうか。
2列で1組になっている表があります。
わかりにくいので、次のように塗りつぶしをしたいのですが、どのようにしたら、手早く設定することができるのでしょうか。
このような場合、条件付き書式をつかうことで解決できます。
ただし、どのような条件式を設定したらいいのかが、ポイントになります。
そこで、列番号をつかうことで、対応することができます。
列番号を求めるのは、COLUMN関数です。
では、8行目にCOLUMN関数をつかって列番号を求めてみます。
=COLUMN()
オートフィルで数式をコピーしています。
これで、列番号を求めることができました。
求めた値を4で除算して、その余りを求めてみます。
余りを求めるのはMOD関数です。
9行目に
=MOD(B8,4)
というMOD関数の数式をつくり、オートフィルで数式をコピーしてみましょう。
これで、0,1,2,3 という余りを求めることができました。
よくみてみると、0,1 と 2,3 がペアになっていることがわかります。
MOD関数の値が2より小さければという条件にすることで、2列1組で塗りつぶすことができそうです。
改めて、B1:I6を範囲選択します。
ホームタブの条件付き書式にある、「新しいルール」をクリックします。
新しい書式ルールダイアログボックスが表示されます。
条件式のボックスには、
=mod(column(),4)<2
2より小さいとすることで、余りが0,1の組を対象として塗りつぶす条件式にしました。
あとは、書式ボタンをクリックして、塗りつぶしたい色を選択しましょう。
これで完成です。
MODE.MULT関数
読み方: モード・マルチ
分類: 統計
MODE.MULT(数値1,[数値2],…)
複数の最頻値を算出します
Facebookページに書いた、Excelの豆知識(Trivia)です。
5月4日
Excel。
Alt+Shift +↑
テキストボックス内:行を上に移動する
5月5日
Excel。
Alt+Shift +→
グループ化
5月6日
Excel。
Alt+Shift +→
テキストボックス内:インデント(字下げ)する
5月7日
Excel。
Alt+Shift +↓
テキストボックス内:行を下に移動する
5月8日
Excel。
Alt+Shift +←
グループ化を解除
5月9日
Excel。
Alt+Shift +←
テキストボックス内:インデント(字下げ)を解除する
5月10日
Excel。
F1
ヘルプを表示します。
Excelには、様々な関数が用意されていますが、苦手というか、出来ないものがあります。
その中の一つに、セルが塗りつぶしされている件数を求めるというのがあります。
次の表を用意しました。
よく、数値を入力したり、文字を入力したりして、入力した文字が非表示になるようにして、その文字を数えるという方法もありますが、今回は、全くの空白セルで、塗りつぶしだけされています。
Excelの関数にセルの塗りつぶしを数える関数は、現時点では、ありません。
この程度の量でしたら、視認することもできますが、量が増えたらお手上げです。
これは、Excel VBAで対応することにしました。
では、次のようなプログラム文をつくってみました。
Sub 色数える()
Dim iro As Long
Dim hani As Range
iro = 0
For Each hani In Range("b2:d5")
If hani.Interior.Color <> 16777215 Then
iro = iro + 1
End If
Next
Range("b7") = iro
End Sub
まずは実行してみます。
では、プログラム文を確認してみましょう。
For Each hani In Range("b2:d5")
If hani.Interior.Color <> 16777215 Then
iro = iro + 1
End If
Next
変数宣言ブロックはさておき、メインのところをみてみます。
For Each ~ Next文は、繰り返し処理をしています。
If hani.Interior.Color <> 16777215 Then
iro = iro + 1
End If
もし、範囲選択した箇所のセルの色(hani.Interior.Color)が、16777215 でなかったら(<>)
iroに+1します。
という意味です。
16777215の意味ですが、色は、RGBで設定されています。
最大値は白でFF FF FFという16進数で設定されています。
このFF FF FF を10進数に変換すると、16777215です。
つまり16777215は、白なので、白以外ならiroという変数を+1させています。
あとは、
Range("b7") = iro
と設定して、B7に結果を表示するようにしています。
これで、塗りつぶされているセルの件数を求めることができました。
ただし、このプログラム文は、セルが塗りつぶされているか、そうでないかの判断しかできません。
たとえば、赤色は何件で、緑色は何件というプログラム文ではありませんので、ご注意ください。
ExcelのVLOOKUP関数。
数式を横方向にコピーすると、引数の3番目の「列番号」が増えてくれないので、コピーした後に、列番号をワザワザ修正しないといけないわけです。
いわゆる「VLOOKUP関数の列番号問題」
面倒なんですね。
そこで、
これをどのようにして解決すればいいのか、その一例を紹介しております。
四半期集計が含まれた、販売表があります。
第一四半期から第三四半期の集計行を、D2を起点として、コピーして別表をつくりたいわけです。
作業としては、コピーして貼り付けを繰り返し行えばいいわけですが、単調なゆえに、面倒な作業です。
あと、貼り付けも、単純な貼付けではなく、値として貼り付ける必要があります。
しかし、値で貼り付ければ、値の修正があった場合、再度コピーしなおさないといけません。
面倒です。
そこで、CHOOSEROW関数をつかうことにしました。
=CHOOSEROWS(A2:B13,4,8,12)
この関数は、スピル機能対応なので、オートフィルで数式をコピーする必要はありません。
この数式だけで、手早く四半期集計だけを抽出することができました。
しかも、値の貼り付けをしたコピーではないので、元表の数値が変わった場合でも、数式なので、連動してくれます。
では、この数式を確認しておきましょう。
=CHOOSEROWS(A2:B13,4,8,12)
最初の引数は、「array」。
範囲のことですね。A2:B13を範囲選択します。
2番目以降の引数は、繰り返しになります。
引数は、「row_num1」。四半期の集計があるのが、範囲選択したA2:B13の中で、4行目、8行目、12行目に四半期集計がありますので、4,8,12 と設定しました。
Facebookページに書いた、Excelの豆知識(Trivia)です。
4月27日
Excel。
Alt+Enter
直前の動作を繰り返す F4と同じ
4月28日
Excel。
Alt+BackSpace
元に戻す Ctrl + Zと同じ
4月29日
Excel。
Alt+Shift +7
スタイルダイアログボックスが表示されます
4月30日
Excel。
Alt+Shift +-
SUM関数を挿入する
5月1日
Excel。
Alt+Shift +F1
ワークシートを新規追加する
5月2日
Excel。
Alt+Shift +F10
[エラー チェック] ボタンのメニューを表示
5月3日
Excel。
Alt+Shift +↑
ふりがな編集
マーケティングで年齢によって、F1~F3(女性)やM1~M3(男性)というように区分けすることがあります。
F1は、20歳〜34歳の女性
F2は、35歳〜49歳の女性
F3は、50歳以上の女性
となっています。
次の表を使って、どのようにしたら、手早く、F1~F3と区分けすることができるのかを考えていきます。
C列に、年齢に合わせたF1からF3と区分けして入力したいわけです。
やり方ですが、IF関数を複数ネストする方法や、別表をつくって、VLOOKUP関数をつかって表引きする方法など、色々な方法が考えられます。
そこで、今回は、IFS関数をつかって、区分けしていきます。
C2にIFS関数をつかった数式を設定しました。
=IFS(B2:B12>=50,"F3",B2:B12>=35,"F2",B2:B12>=20,"F1",TRUE,"")
これで、F1~F3という年齢層での区分けを求めることができました。
IFS関数は、多分岐処理ができるIF関数です。
論理式1にB2:B12>=50とB2:B12という範囲で設定したことで、スピル機能に対応したIFS関数にすることができます。
オートフィルで数式をコピーする必要はありません。
この数式のポイントは、50以上という条件から設定することで、つぎの、B2]B12>=35と設定しても、50以上はすでに、判定済みなので、35~49の場合ということになります。
0~19は対象外なので、TRUEで「””(ダブルコーテーション×2)」として空白を表示する設定にしています。
MMULT関数
読み方: エムマルチ
読み方: マトリック マルチ プリケーション
分類: 数学/三角
MMULT(配列1,配列2)
2つの配列の行列積を算出する
ゼロを多く入力しちゃった…。
では済まない、誤発注。
できることならば、発生したくないものです。
そこで、入力する数値の上限を設けることができる
入力規則のリスト
これをつかえば、上限を越える入力はできなるくなります。
できなくなるのは、いいのですが…
イレギュラーな発注にも対応したいのです。
イレギュラーにも対応した入力規則のリストをご紹介しております。
月の途中で解約した時に、解約日までの日割りした料金を支払うことがあります。
この日割りを手早くしたいのですが、どのようにしたらいいのでしょうか。
日割り計算は、簡単そうに見えて、ちょっと複雑です。
解約日までの日数を月の日数で割る必要があります。
つまり、4月だったら30日。
5月だったら31日という月の日数を求める必要があります。
では、次の表で日割り計算をしてみました。
C2に設定した数式は、
=A2*DAY(B2)/DAY(EOMONTH(B2,0))
これで、日割りを求めることができました。
なお、求めた値に小数点の端数がでますので、ROUND関数をつかってもいいです。
今回は、三桁区切りのカンマを設定して、小数点以下を四捨五入しております。
この数式を説明します。
DAY(B2)は、日を求めます。4/1ならば、1です。
この値を、DAY(EOMONTH(B2,0))で割ります。
DAY(EOMONTH(B2,0))は、何をしているのかというと、当月の月末日を求めています。
月末日を求めるのがEOMONTH関数です。
2つ目の引数を「0(ゼロ)」にすることで、当月の月末日を求めることができます。
EOMONTH(B2,0) で30と求めることができます。
=10000*1/30
で、333と日割りを求めることができたというわけです。
MIRR関数
読み方: エムアイアールアール
読み方: モディファイドアイアールアール
分類: 財務
MIRR(範囲,安全利率,危険利率)
定期キャッシュフローの修正内部利益率を算出する
Facebookページに書いた、Excelの豆知識(Trivia)です。
4月20日
Excel。
Alt+F8
マクロダイアログボックスが表示されます
4月21日
Excel。
Alt+F10
オブジェクトの選択と表示作業ウィンドウを表示する
4月22日
Excel。
Alt+F11
Microsoft Visual Basic For Applications エディターを開く
4月23日
Excel。
Alt+F12
Power Query エディターを開く
4月24日
Excel。
Alt+Page Up
1画面右にスクロールする。
4月25日
Excel。
Alt+Page Down
1画面左にスクロールする。
4月26日
Excel。
Alt+Enter
セル内にカーソルがある場合、セル内改行します。
CCやBCCでメールを一斉送信したい場合には、
メールアドレスのあとに「;(セミコロン)」で区切って、メールアドレスどうしを繋げる必要があります。
次の表を用意しました。
メールアドレスごとに「;(セミコロン)」をいれて、連結するので、「&(アンパサンド)」をつかって、文字結合するのは、とても大変な作業です。
メールアドレス数が増えれば増えるほど、途方もない作業になります。
文字結合をするCONCAT関数をつかってということも、できないことはありませんが、メールアドレスのあとに、「;(セミコロン)」を入力しなければなりません。
よって、「&(アンパサンド)」を使った文字結合と、大差はありません。
このような場合、TEXTJOIN関数をつかうことで、とても簡単にメールアドレスのどうしを「;(セミコロン)」で区切りつつ、連結することも出来ます。
では、B7にTEXTJOIN関数の数式を設定します。
=TEXTJOIN(";",TRUE,B2:B5)
これで、「;(セミコロン)」をつかって、メールアドレスを連結することができました。
数式を確認しておきます。
最初の引数は、「区切り文字」。
今回は「;(セミコロン)」で連結したいので「”;”(セミコロン)」と設定します。
2つ目の引数は、「空のセルは無視」。
TRUEは空白ならば無視をします。
FALSEならば、空のセルを含めることができます。
空のセルは含めないので、TRUEと設定します。
3つ目の引数からは、「文字列」です。
メールアドレスが入力されているB2:B5を範囲選択します。
このように、決まった文字で文字列を連結するならば、TEXTJOIN関数をつかってみるといいかもしれません。
MINVERSE関数
読み方: エムインバース
読み方: マトリック インバース
分類: 数学/三角
MINVERSE(配列)
配列の逆行列を算出します
集計行と集計列を除いた範囲を別のところにコピペしたいとした場合、
大した作業ではないけども、
表が大きくなればなるほど、範囲選択が面倒になります。
そこで、
Excelの関数で、新しく追加された
DROP関数。
この関数は、集計行や集計列を除いてコピペしてくれるような関数なんです。
指定した範囲を、抽出して表示してくれる関数なんですけども、
まぁ、コピペという感じです。
そのDROP関数の使い方を説明しております。
売上高によって、ランク分けしてあるテーブルがあります。
ランキングをみると、SABCと振り分けられていることが確認できます。
このランキングの列をSABCという順番で並べ替えをしたいのですが、どのようにしたらいいのでしょうか。
Accessには、Excelのような、ユーザー設定リストはありません。
並べ替え用の作業列をつくって、その作業列で並べ替えをするのでは、効率が悪化します。
そこで、Switch関数をつかったクエリをつくることで対応することができます。
では、作成タブのクエリデザインをつかって、クエリを作成します。
必要なテーブルフィールドを挿入します。
今回は、すべてのフィールドをつかうことにします。
作業列: Switch([ランキング]="S",1,[ランキング]="A",2,[ランキング]="B",3,[ランキング]="C",4)
並べ替えを昇順に設定します。
この段階でどのようなクエリになっているのか、実行して確認してみます。
あとは、作業列を非表示にします。
そして、同じランキングの場合、売上高が降順のほうがわかりやすいので、それも含めて修正します。
デザインビューに戻ります。
そして、売上高フィールドに降順にします。
なお、今回は、売上高に準じたランキングなので、問題はありませんが、Accessは左側の並べ替え設定に優先があります。
場合によっては、並べ替え用のフィールドを追加する必要があります。
では、実行して確認しましょう。
Switch関数は、複数の項目に番号付けを行うことができる関数なので、Sを1、Aを2というように番号付けをすれば、並べ替えは容易になるという仕組みです。