Excelのショートカットキー。Ctrl+1~5までを紹介
<ショートカットキー>
作業効率もUPする、知っていると便利なショートカットキー。
Ctrl+1
セルの書式設定ダイアログボックスを表示する
Ctrl+2
セルを太字にする
Ctrl+3
セルを斜体にする
Ctrl+4
セルに下線を引く
Ctrl+5
セルに打ち消し線を引く
【Excel・Word・PowerPoint・Access】あなたの「困った」を解決!10年以上の経験が詰まった、現場の疑問から生まれた実践テクニック集。作業効率を劇的に上げるOffice活用術をお届けします。
<ショートカットキー>
作業効率もUPする、知っていると便利なショートカットキー。
Ctrl+1
セルの書式設定ダイアログボックスを表示する
Ctrl+2
セルを太字にする
Ctrl+3
セルを斜体にする
Ctrl+4
セルに下線を引く
Ctrl+5
セルに打ち消し線を引く
NPER関数
読み方: エヌパー
読み方: ナンバー・オブ・ピリオズ
分類: 財務
NPER(利率,定期支払額,現在価値,[将来価値],[支払期日])
元利均等返済における支払回数を算出します
Number of Periods の略
元の表を残したまま、集計結果を別表としてつくりたい。
さらにできれば、総合計の行も追加したい。
このような場合、集計機能をつかうとか、テーブルにする、あるいは、ピボットテーブルをつかって等々、いろいろな方法が考えらますが、どの方法もちょっと、アレコレしないと求めることができないわけです。
そこで、GROUPBY関数をつかうことで、集計も、そして、販売金額の総計も合わせて求めることができます。
F2にGROUPBY関数をつかった数式をつくります。
=GROUPBY(C2:C8,D2:D8,SUM,0,1)
では、結果を見てみましょう。
そして、地域名の一番下に、合計という、販売金額合計の合算値である総計を求めることもできました。
GROUPBYは、集計をするのに、便利な関数です。
では、引数を確認しておきましょう。
新しい関数なので、引数が英語表示になっています。
GROUPBY(row_fields,values,function,[field_headers],[total_depth],[sort_order],[filter_array],[field_relationship])
1番目の引数は、row_fields。
まとめたい範囲なので、地域名のC2:C8。
2番目の引数は、values。
集計したい範囲なので、販売金額のD2:D8
3番目の引数は、function。
集計方法です。
手入力だと一覧から選択できます。合計をしりたいので、SUM
4番目の引数は、field_headers。範囲に見出しのデータがあるなら、どうするということを対応します。
範囲には、見出し行はないので、「0」のいいえ を選択しました。
5番目の引数は、total_depth。
合計行を表示するのかを設定します。
総計を表示したいので、1と設定します。
GROUPBY関数で、集計と総計も合わせた、抽出をおこなうことができました。
Excelの関数に、条件付き最大値を求めることができる
MAXIFS関数というのがあります。
このMAXIFS関数。
ちょっとした欠点があるのです。
それは、「~または~」のOR条件だと、求めることができません。
では、どのようにしたら、OR条件の最大値を求めることができるのでしょうか。
その対応法を紹介しております。
Excelで、万年カレンダーをつくりたい場合、色々考えなければいけません。
B1には月。
その値をつかった万年カレンダーの場合、1日を、該当する曜日から始めなければいけません。
その判断をする必要があります。
土曜日になったら、次の行に移動して、土曜日に+1するか、前の週に+7するなど考える必要があります。
最終週も4行でいいのか、5行必要なのか。
そして、月末日も考えなければいけません。
このように色々考えるならば、Excel VBAで考えてみたらどうなのでしょうか。
次のような構文をつくってみました。
Sub 万年カレンダー()
Dim yearVal As Integer
Dim monthVal As Integer
Dim startDay As Integer
Dim lastDay As Integer
Dim rowOffset As Integer
Dim colOffset As Integer
Dim i As Integer
yearVal = Range("A1").Value
monthVal = Range("B1").Value
Range("A4:G9").ClearContents
startDay = Weekday(DateSerial(yearVal, monthVal, 1))
lastDay = Day(DateSerial(yearVal, monthVal + 1, 0))
rowOffset = 4
colOffset = startDay
For i = 1 To lastDay
Cells(rowOffset, colOffset).Value = i
If colOffset = 7 Then
rowOffset = rowOffset + 1
colOffset = 1
Else
colOffset = colOffset + 1
End If
Next i
End Sub
これで、実行すると、A4を起点とした、万年カレンダーをつくることができます。
もっといい方法があるとは思いますが、プログラム文を確認しておきましょう。
お馴染みの関数宣言です。
Dim yearVal As Integer 年をいれます
Dim monthVal As Integer 月をいれます
Dim startDay As Integer 1日が何曜日なのかという曜日番号をいれます
Dim lastDay As Integer 末日をいれます
Dim rowOffset As Integer 先頭行などの行番号をいれます
Dim colOffset As Integer 土曜日になったら改行したいのでそのために使用します
Dim i As Integer 繰り返し処理でつかいます
yearVal = Range("A1").Value
A1の年を代入します。
monthVal = Range("B1").Value
B1の月を代入しています。
Range("A4:G9").ClearContents
前に作った、日付が残っているので、カレンダーをクリアします。
startDay = Weekday(DateSerial(yearVal, monthVal, 1))
Weekday関数をつかって、1日が何曜日からはじまっているのかを求めます。
Weekday関数は、初期設定で、1を日曜日で2を月曜日、7が土曜日というように数値を割り振る関数です。
lastDay = Day(DateSerial(yearVal, monthVal + 1, 0))
28日とか30日とか31日などの、月末日を代入します。
開始位置のオフセットを決定
rowOffset = 4
A4から開始万年カレンダーが始まりますのでA4の4を代入します。
colOffset = startDay
1日が何曜日なのかに応じて、万年カレンダーの開始列を設定します。
For i = 1 To lastDay Next 文 で、日付を入力します。
Cells(rowOffset, colOffset).Value = i
行と列が代入されています。
1日が入るセルはわかっているので、そこに1をいれます。
その後、2から末日の数値まで繰り返し処理をします。
If colOffset = 7 Then
rowOffset = rowOffset + 1
colOffset = 1 ' 次の週の日曜日へ
Else
colOffset = colOffset + 1
End If
このIf Else End If文で、土曜日になったら、次の行に移動するようにしています。
7列目すなわちG列になったら、次の行に日付を入れる必要があるので、行に+1して、列は1であるA列に戻します。
それ以外は、列方向を+1させます。
これで、万年カレンダーをつくることができます。
関数で同じようなことを考えて作るよりも、Excel VBAでプログラム文をつくってみてもいいのかもしれません。
Facebookページに書いた、Excelの豆知識(Trivia)です。
7月13日
Excel。
ショートカット。
Ctrl+oで、ファイルを開くダイアログボックスが登場しますね。
7月14日
Excel。
ショートカット。
Ctrl+sで、上書き保存ですね。
7月15日
Excel。
ショートカット。
Ctrl+pで、印刷ダイヤログボックス。
7月16日
Excel。
ショートカット。
Ctrl+;で、今日の日付が表示できます。
セミコロンなんですね。
7月17日
Excel。
ショートカット。
Ctrl+:で、今の時間が表示できます。
コロンなんですね。
7月18日
Excel。
ショートカット。
Ctrlキーとスペースキーで列選択ができますよ。
7月19日
Excel。
ショートカット。
Shiftキーとスペースキーで行選択ができますよ。