Excel。MODE関数は最頻値を算出します。
<関数辞典:MODE関数>
MODE関数
読み方: モード
分類: 互換性
MODE(数値1,[数値2],…)
最頻値を算出します
Excel・Word・PowerPoint・Accessのテクニックや研修ネタ・テキストを紹介しております。主に、講義先や現場レベルで質問があったものを中心に書いております。
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というように番号付けをすれば、並べ替えは容易になるという仕組みです。
MINUTE関数
読み方: ミニッツ
分類: 日付時刻
MINUTE(シリアル値)
時刻から""分""を算出する
Facebookページに書いた、Excelの豆知識(Trivia)です。
4月13日
Excel。
Alt+'
スタイルダイアログボックスが表示されます
4月14日
Excel。
Alt+;
可視セルのみ範囲選択
4月15日
Excel。
Alt+=
SUM関数を挿入する
4月16日
Excel。
Alt+F1
現在の範囲のデータからグラフを作成
4月17日
Excel。
Alt+F2
名前を付けて保存ダイアログボックスが表示されます
4月18日
Excel。
Alt+F3
名前ボックスに移動してアクティブにする
4月19日
Excel。
Alt+F4
ブックを閉じる
毎月第2火曜日に営業会議を開催することにしています。
月別の第2火曜日の一覧表をつくり管理することにしましたが、イチイチ、カレンダーを見て、第2火曜日を確認するのは、とても面倒です。
何かいい方法はないのでしょうか。
このような場合には、WORKDAY.INTL関数を使うことで、手早く月別の第2火曜日を求めることができます。
次の表を用意しました。
B列には、月が入力されています。
C2に、WORKDAY.INTL関数の数式をつくります。
=WORKDAY.INTL(DATE(A2,B2,0),2,"1011111")
と設定します。
結果はシリアル値で表示されますので、表示形式をつかって、日付にして、オートフィルで数式をコピーします。
これで、月別の第2火曜日の日付を求めることができました。
では、数式を確認しておきましょう。
=WORKDAY.INTL(DATE(A2,B2,0),2,"1011111")
最初の引数は、日付です。
DATE関数をつかって前月末日をもとめます。
DATE関数の日を0にすることで、前月末日の日付をつくります。
2つ目の引数は、日数。
営業日数ですが、これは、第2火曜日なので、「2」とします。
3つ目の引数は、週末です。ここに、"1011111" と設定します。
これは、月曜日から日曜日までを表しています。
そして、0は営業をしていて、1は休業というルールです。
火曜日を0として、他を1とすることで、火曜日のみが営業していることができます。
そして、前月末日から2とすれば、2回目の火曜日。
すなわち、第2火曜日を求めることができるという仕組みです。
MINIFS関数
読み方: ミニマムイフズ
読み方: ミニマムイフエス
分類: 統計
MINIFS(最小範囲,条件範囲1,条件1,…)
条件により指定した範囲内の最小値を算出する
Excelは、そのままだと、24時以降の表示ができません。
つまり、深夜26:00のような表示ができないというわけです。
では、どのようにしたらいいのでしょうか。
表示ということで、表示形式の出番。
その解決方法を、ご紹介しております。
データを確認したところ、カタカナで入力してほしかったのに、ひらがなで入力されているデータが数多くあることが判明しました。
一括で変更する関数はありませんし、ひらがなに変換する関数もありません。
そこで、Excel VBAで対応することにしました。
作ってみたのは、次のプログラム文です。
Sub ひらがなカタカナ()
Dim i As Long
Dim lastrow As Long
lastrow = Cells(Rows.Count, "a").End(xlUp).Row
For i = 2 To lastrow
Cells(i, "c") = StrConv(Cells(i, "c"), vbKatakana)
Next
End Sub
実行してみましょう。
ではコードを確認してみましょう。
Dim i As Long
Dim lastrow As Long
lastrow = Cells(Rows.Count, "a").End(xlUp).Row
変数宣言です。
lastrowはデータの最終行の番号を代入させています。
For i = 2 To lastrow
Cells(i, "c") = StrConv(Cells(i, "c"), vbKatakana)
Next
For文で繰り返し処理をしております。
何を繰り返しているのかというと、
Cells(i, "c") C列のセルに、
StrConv(Cells(i, "c"), vbKatakana)
を代入させています。
StrConv(Cells(i, "c"), vbKatakana) で、ひらがなをカタカナに変換させています。
StrConv関数は、文字種を変換できる関数です。
そして、vbKatakanaは、ひらがなをカタカナに変換するという文字種の指定です。
よって、ひらがながカタカナに変換することができたというわけです。
なお、vbKatakanaをvbHiraganaに指定すれば、カタカナをひらがなにすることができます。
MINA関数
読み方: ミニマムエー
分類: 統計
MINA(値1,[値2],…)
数値・文字列・論理値を含む最小値を算出します
Facebookページに書いた、Excelの豆知識(Trivia)です。
4月6日
Excel。
Shift+PageUp
範囲選択を1画面分上に拡張する
4月7日
Excel。
Shift+PageDown
範囲選択を1画面分下に拡張する
4月8日
Excel。
Shift+BackSpace
範囲選択を解除する
4月9日
Excel。
Shift+↑
選択範囲を 1 セルずつ上に拡張する。
4月10日
Excel。
Shift+→
選択範囲を 1 セルずつ右に拡張する。
4月11日
Excel。
Shift+↓
選択範囲を 1 セルずつ下に拡張する。
4月12日
Excel。
Shift+←
選択範囲を 1 セルずつ左に拡張する。
指定した順番で並べ替えを行いたい場合には、ユーザー設定リストに登録するといいのですが、今回は、ユーザー設定リストはそのままにしたい場合、どのようにしたらいいのでしょうか。
次の表を用意しました。
これをSABの順番で並べ替えをしたいわけです。
当然、昇順にしたら、ABSという順番になってしまうので、指定した順番で並べ替えをしたいわけです。
まずは、SABという順番にしたいので、Sが1Aが2。Bが3というように割り振ります。
SABと3つならば、IF関数やIFS関数。
あるいはSWITCH関数など色々な方法があります。
ただ、振り分けの種類が10とか20とか多い場合のことも考慮して、今回はXLOOKUP関数をつかってみることにしました。
VLOOKUP関数でもいいのですが、別表の作り方が面倒なので、XLOOKUP関数を採用しました。
D2には、
=XLOOKUP(C2:C11,G2:G4,F2:F4,"",0,1)
という数式を設定します。
スピル機能によって、オートフィルで数式をコピーする必要はありません。
XLOOKUP関数を確認しておきます。
1番目の引数は、検索値。
C2:C11のチームを選択します。
スピル機能をつかいたいので、セルではなく、フィールドで選択します。
2番目の引数は、検索範囲。
G2:G4の表引き用のチームを選択します。
スピル機能をつかうので、絶対参照は不要です。
3番目の引数は、戻り範囲。
F2:F4を選択します。
この値をつかって、後ほど、並べ替えをおこないます。
4番目の引数は、見つからなかった場合。
見つからなかった場合は「””(ダブルコーテーション×2)」で空白にします。
5番目の引数は、一致モード。
完全一致なので、「0」と設定します。
6番目の引数は、検索モード。
データ量が少ないので、「1」の先頭からでかまいません。
これで、チームごとの数値を割り振ることができました。
D列は、数式なので、このまま並べ替えを行うことができません。
XLOOKUP関数で求めた結果を値としてコピー貼付けをします。
D2:D11をコピーします。
そして、値で貼り付けます。
値で貼り付けたい場合は、Ctrl+Shift+Vというショートカットキーが便利です。
簡易カレンダーを作りたいときに知っておくと便利な機能を紹介。
その基礎編として、
曜日が、土曜日・日曜日ならば、月が替わっても、手早く行全体を塗りつぶしたい場合は、どのようにしたらいいのでしょうか。
条件付き書式をつかうわけですが、どのような条件式を設定するのか。
また、条件式を設定する前に、
簡易カレンダーの曜日を事前にどのように設定したらいいのかを
ご紹介しております。
カレンダーは奥深くて、
祝日の対応や、月末対応。
さらに、自動的に日付が変わるようにする
様々なテクニックをつかいますが、今回は、曜日だけにポイントを絞っています。
作業効率もUPする、知っていると便利なショートカットキー。
Ctrl+F
検索と置換ダイアログボックスが表示されます。
検索タブ優先
Ctrl+G
ジャンプダイアログボックスが表示されます。
セルにジャンプする
Ctrl+H
検索と置換ダイアログボックスが表示されます。
置換タブ優先
Ctrl+I
斜体にする
Ctrl+K
ハイパーリンクダイアログボックスを表示
MIDB関数
読み方: ミッドビー
分類: 文字列操作
MIDB(文字列,開始位置,バイト数)
文字列の任意の位置から指定バイト数の文字を返す
Facebookページに書いた、Excelの豆知識(Trivia)です。
3月30日
Excel。
Shift+F11
ワークシートを新規追加する
3月31日
Excel。
Shift+F12
上書き保存 Ctrl+Sと同じ
4月1日
Excel。
Shift+Space
行選択します。日本語入力がオフの時有効
4月2日
Excel。
Shift+Enter
セルの入力を完了し、1 つ上のセルを選択する。
4月3日
Excel。
Shift+Home
範囲選択を行の先頭まで拡張する
4月4日
Excel。
Shift+Insert
ペースト Ctrl + Vと同じ
4月5日
Excel。
Shift+Delete
切り取りする Ctrl+Xと同じ
最大値のデータを見つけるには、条件付き書式にある、「上位10項目」をつかうことで手早く書式を設定することができます。
ただ、該当するデータのみなので、大きな表だった場合、どのデータなのかわかりにくいことがあります。
そこで、行全体を塗りつぶすことで、わかりやすくすることができます。
今回用意したのが、次の表です。
そこで、ホームタブの条件付き書式にある「新しいルール」をつかって設定をします。
A2:D8を範囲選択します。
ホームタブの条件付き書式にある「新しいルール」を選択します。
=MAX($D$2:$D$8)=$D2
あとは、書式ボタンをクリックして、塗りつぶしたい色を設定したら、OKボタンをクリックします。
では、設定した条件式を確認してみましょう。
=MAX($D$2:$D$8)=$D2
最大値を算出する必要がありますので、MAX関数を使います。
その値が、D2と等しいのかを確認します。
条件に合致すれば、1。
合致しなければ0を返します。
Excelでは、1=TRUEなので、条件を満たしたということですから、書式が反映されるというわけです。
なお、$D2という列固定の複合参照にすることで、行全体を対象にすることができます。
MID関数
読み方: ミッド
分類: 文字列操作
MID(文字列,開始位置,文字数)
文字列の任意の位置から文字を取り出す