Excel IF関数 使い方
今回はExcelのIF関数を解説していきます!
- IF関数
- セルの値を検索し、条件が一致した場合に特定の操作を行う関数
Excel関数は多いため覚える必要はないです。
しかし、ああいう関数があったなと覚えておき、使おうと思ったときにネットで使い方を検索して使用してください。
IF関数はよく使います。
使い方のバリエーションも豊富です。
セルに入っている値を判別することもできます。
=IF(A1=1, ”〇“, ”✕“)
といった使い方や
また判別した結果によって計算方法を変える
=IF(A2=3, A2*A2, A2*A1)
という使い方もできます。
具体的な使用方法
具体例として、Excelの表に「東京」が入力されているデータを抜き出したいとします。
元データは下記とします。
判定値のセルに次の関数を入力します。
=IF(C3="東京", "●", "×")
隣の入力欄のセルに「東京」が入力されていると●になり、それ以外の都市の場合は×が出力されます。
これをオートフィルを用いて一番下のデータの隣まで関数を入力します。
すると、全ての入力欄に対しての判別が行われます。
そして横に貼り付けします。(元データを壊さないためです)
次にデータの並び替えを行います。今回はフィルターを使用します。(この際、氏名・住所・判定を選択してください)
すると、判定の横に▽がつきます。▽をクリックし、降順を選択します。
すると、、、以下のようになります。
●になっているものが上に来るので、「東京」が入力されているデータが抜き出せました。
※今回は「東京都」と入力されているデータは抜き出していません。「東京」が含まれているデータを抜き出すには、IF関数とCOUNTIF関数を同時に使う必要があります。
余談 ソートについて
ソートの方法は非表示にする方法を使用してやっている方もいますが、元データを非表示にして使用していると勘違いを起こす方もいるので複数人で使うデータについては上記の方法で行ったほうが無難です。(戻す手間もなくなりますし)
終わりに
今回はIF関数の使用方法の一例を紹介しました。
工夫次第で使用方法はいくらでもあるので応用してください。
- IF関数は使い方が豊富
- IF関数の条件式の使い方が重要
こういう時はどうするの?とかの質問をもらえればその都度ブログもしくは更新していきますので、質問がある方はコメントお願いします。
ここまで読んで頂き、ありがとうございました。
表のセルを指定するVBA(マクロ) CurrentRegion
今回は表全体のセルを指定するVBAの解説を行います。
Excelで使用するデータは表がほとんどだと思いますが、CurrentRegionを知らない場合と知っている場合とでは、VBAの便利度が変わってくると思います。
- CurrentRegion
- 基準とするセル.CurrentRegionとすることで、基準とするセルが含まれる表をすべて操作対象とするプロパティです。
使用方法
表全体を指定する場合は下記のようにVBAプログラムコードを書きます。
Cells(2, 2).CurrentRegion.Select
とすることで、セルB2を含む表全体を選択した状態になります。
実行する前と実行した後のExcelがどうなるかの画像を下記に表示しておきます。
使用方法は以上です。
CurrentRegionにて表全体を指定する場合、Excelで作成している表の周り1セルは空白セルでないと表が広がってしまいます。注意してください。
文章だけではわからないかと思いますので、実際にやってみます。
表データを下記のようにします。
そして上記と同様のマクロコード
Cells(2, 2).CurrentRegion.Select
を実行すると下記のようになります。
このように表の周りが空白セルでない場合、どこまでも表として扱われてしまいます。
データを作る際に気を付ける部分です。しかし、注意してまでもやるメリットは大きいと思います。
- CurrentRegionで基準とするセルが含まれる表全体を操作対象とする。
- 選択する表の周りの1セルは空白セルでないと周りのセルも表として認識されてしまう。
以上です。
ここまで読んでいただき、ありがとうございました。
Pythonの初歩的なエラー
Pythonにて、UUIDを生成するプログラムを作成した時に検出されたエラーについて書きます。
エラー文
AttributeError: partially initialized module 'uuid' has no attribute 'uuid4' (most likely due to a circular import)
python のプログラム
さて、ここでなんでこのエラーが出るのかを結論から言うと・・・
プログラム文のせいではなく、プログラムを保存しているファイル名が原因となっています。
このプログラムを書いたファイル名を「uuid.py」にして保存すると上記のようなエラー文が返ってきます。
プログラミングをする上で、やってはいけないとされているのが関数名やモジュール名などをファイル名にするのがNGと言われています。
しかし、初心者だとやっちゃうことも多いと思います。
ファイル名を「uuid.py」とすると1行目
によるところで、自分のファイルをimportしようとするので
AttributeError: partially initialized module 'uuid' has no attribute 'uuid4' (most likely due to a circular import)
というエラーがでます。
※またエラー文の内容をgoogle翻訳で翻訳すると
AttributeError:部分的に初期化されたモジュール 'uuid'には属性 'uuid4'がありません(ほとんどの場合、循環インポートによる)
となります。これで気づく人もいるのかな?
何かのモジュールをインポートするときのファイル名は同じファイル名が保存されていないか注意する必要がある。
説明なんか読まないでもどこを直せばいいかだけ教えてほしい方は
ファイル名「uuid.py」を「sample.py」に変更すればおk!
以上です。
ここまで読んで頂き、ありがとうございました。
残業代の計算方法
今回は残業をすると誰もが気になるであろう残業代の計算方法について解説していきます。
残業代の計算方法を説明する前に基本給について説明します。
基本給は総支給される給与から残業手当や通勤手当、家族手当や住宅手当などの各種手当を差し引いた給与のこと。
※総支給は税引前の支給額のこと。総支給から各種税金や健康保険料などが引かれ手取額になる。
基本的に基本給は総支給からすべての種類の手当額を差し引いたこと言います。なので、どの手当を差し引いた額が基本給なの?と思う方は全ての手当を差し引いた額が基本給だと考えてもらって大丈夫です。
基本給の特性
- 出勤さえしていれば特段の事情がない限り減額されません。
- 必ず支払いが保証されている額と言い換えても大丈夫です。※ただし、企業の業績が悪化したので、基本給を下げるという行為は特段の事情に含まれますので、認められます。
- 最低賃金との比較対象になります。
- 基本給が時給計算の元となりますので、基本給から時給を計算し、その額が最低賃金を下回る場合は労働基準法違反となります。
- ※住宅手当が全ての従業員に一律に支給されている場合、基本給に加えることができます。
- ※資格手当も加えることはできますが、全ての従業員に支給される手当ではないので加えないで計算を行い、最低賃金を下回っていたら資格がない人は最低賃金以下なのかもしれません。
たとえば、Aさんはマンションを借りていて、月1万5千の支給がある。Bさんは実家暮らしなので、住宅手当が支給されていないという会社では、住宅手当を基本給に含むことはできません。
- 残業手当を計算する元になる。
- 残業代は基本給を時給換算して支給額を計算しています。︎今回はこれを使います。
- ※残業代を計算する元となる基本給の支給額は最低賃金との比較対象になる基本給額と同額になります。ここでは資格手当を含めた額で計算を行い、あなた自身の時給を求め、残業代がきちんと払われているか確認してください。
具体的に数字を入れて残業代を計算します。
ここでは、週40時間で月給制。また下記の内容の給与。ただし、住宅手当は従業員全員に支給されているとする。
だとすると…
残業代の元となる時給は
残業代計算時給=残業代計算月額÷1ヶ月所定労働時間
(1ヶ月所定労働時間は会社によって変わります。週休二日制と完全週休二日制でも変わってきます。今回は完全週休二日制で計算します。※22日×8時=176×8時=176時間)
残業代計算月額=(200,000+35,000+40,000)=275,000
残業代計算時給=275,000÷176時間=1562.5円
これで時給が計算されました。
この額が働いた時間に掛けられて支給されるわけではなく、これに以下の表の数字の倍率を加算した(加えた)額以上の額が、支給されます。
※深夜労働とは22:00〜翌5:00までの労働時間のこと。基本の就業時間が深夜の仕事は深夜残業には該当しません。
ここも表を見ただけでは分からないので、具体的にどういう残業をしたか決めていきます。
ここで、就業時間は9:00〜18:00の8時間労働、法定休日は日曜日、法定外休日は土曜日とします。
・18:00〜20:00まで残業した。
この場合先ほど計算した時給額に普通残業の割増率を足して計算された時給額が支給されます。
¥1562.5(時給)×1.25(割増率)×2(時間)=3906.25
なので、¥3907以上が支給されます。
・18:00〜翌1:00まで残業した。
この場合は18:00〜22:00までは普通残業の割増率(1.25)。22:00〜翌1:00までは普通残業の割増率に深夜残業の割増率を加算した割増率(1.5)を用いて時給額が計算され、支給されます。
なので、¥14,844以上が支給されます。
・土曜日に9:00〜20:00まで働いた。
土曜日は法定外休日なので、休日残業の割増率(1.25)が加算されます。18:00〜20:00までの2時間は休日残業の普通残業だが、休日残業としかならない。
¥1,562.5(時給)×1.25(割増率)×10(時間)=15,625
なので、¥15,625以上が支給されます。
・日曜日に10:00〜23:00まで働いた。
10:00〜18:00までは日曜日が法定休日なので割増率(1.35)が加算されます。18:00〜22:00までは休日残業になるので法定休日労働の割増率に休日残業の割増率が加算された割増率(1.6)を用いて計算されます。また22:00〜23:00までは法定休日残業かつ休日残業かつ深夜残業なので、割増率が1.85となる。
下記のようになります。
なので、¥27,657以上が支給されます。
以上のような計算方法で残業代が計算され、支給されます。ここに記載したのはあくまで一例ですので、残業代計算月額に含まれる手当等は会社によって変化します。
また、就業規則等によっては上に記入している割合以上の割合で残業代が計算されている可能性もあります。
※上記はあくまで最低のため、普通残業が1.25の割増率でなく、1.5の割増率でもいいため、高い場合がありますので「¥##,###以上が支給される」と記載しています。
- 残業代は基本給から計算されている。
- 最低割増率は時間帯によって違う。
- 法定休日も最低割増率が変わる。
以上です。
ここまで読んで頂き、ありがとうございました。
Excel VBA(マクロ)オブジェクト・プロパティの詳細説明
今回は前回のブログで解説したRange・Cellsオブジェクトとプロパティについての詳細を解説していこうと思います。
オブジェクトは目的物という意味から何となくですが、意味が分かると思います。
しかし、プロパティについては前回の説明もざっくりした説明だったので、オブジェクトとの違いを理解していない方もいるかと思います。
それでは、オブジェクトとプロパティの違いで何ができるというのかを解説していきます。
- オブジェクト
- VBA(マクロ)では、操作対象として指定するセルの範囲やシート、Excelブックのことを言います。(実際にはExcel以外でもマクロを動かすことができるのでこれら以外にもあるのですが、すべてを知っているわけではないので、とりあえず確実に知っている範囲で記載します。)
- プロパティ
- オブジェクトの操作対象範囲からさらに細分化できる範囲を指定する場合に使用するものです。
今回はこちらの解説がメインです。
具体的にプロパティを設定している例をいくつかあげて解説していきます。
1.シートをオブジェクト指定してシート内の特定範囲のセルをRangeプロパティ指定するコード
ActiveSheet.Range("B2", "D6").Select
これはアクティブシートをオブジェクトとしてそのB2からD6を選択するコードです。
実行すると下記のようになります。
2.セル範囲をRangeオブジェクト指定して、選択範囲内の特定範囲内のセルをRangeでプロパティ指定するコード
Range("C2", "I10").Range("B2", "D6").Select
これはC2からI10をオブジェクトとしてそのB2からD6を選択するコードです。
実行結果は下記のようになります。
1.との違いを解説します。
簡潔に説明すると2.のプロパティでは相対参照が使用されています。
C2からI10を一つのシートと考えてC2(=A1のセル)、I10(=G9のセル)ととらえられ、次のプロパティで選択されています。なので、上記のような結果になります。
以上がRangeのオブジェクトとプロパティの違いです。
Cellsについても同様のことが言えます。
具体例を下記に示しますが、内容は上記と同じなので解説は省略します。
3.シートをオブジェクト指定してシート内のセルをCellsプロパティ指定するコード
ActiveSheet.Cells(2, 4).Select
実行結果は下記になります。
解説は上記1.のRangeプロパティと同様です。
4.基準セルをCellsオブジェクトで指定して、Cellsを用いてセルを相対参照にてプロパティ指定するコード
Cells(2, 2).Cells(2, 4).Select
実行結果は下記になります。
解説は上記2.のRangeのオブジェクト・プロパティ指定と同様です。
- オブジェクトは目的物(大枠)のこと
- プロパティはオブジェクトの補足(相対参照で指定)
他の例として挙げてみると…
森をオブジェクトとして指定すると一本の木や複数の木をプロパティで指定するといった感じです。
また木の指定は右から何本目といったものから、一つを指差し指定するといった感じでしょうか。
いかがでしたでしょうか、オブジェクトとプロパティの違いは理解していただけたでしょうか。
以上で今回の解説は終了となりますが、何か気になることがあればコメント等で気軽に質問していただけたらと思います。
ここまで読んで頂き、ありがとうございました。
Excel VBA(マクロ) Range Cells
今回はマクロにてオブジェクト(対象)を指定する際に使用するRange・Cellsについて解説します。
Rangeはオブジェクト指定するためのプロパティとして使用します。(わからない方は呼び飛ばしてもらって構いません。)
Rangeオブジェクトはセルを指定しています。
Rangeプロパティはアクティブシート等に対して範囲指定を行うものとなります。
セル範囲に対しても相対参照で範囲指定を行うことが出来ます。
Rangeオブジェクト、Rangeプロパティ共に意味はほとんど変わらないので、今回は同様とみなして解説します。
CellsもRangeと同様にオブジェクト、プロパティに分けられますが、Rangeと同様に意味はほとんど変わらないので今回は同様とみなします。
※CellsとRangeはまったく違います。
(オブジェクトとプロパティの意味については同様という意味です。)
簡単に説明します。
Rangeは複数セルを指定する際に使用します。また、文字列でセルを指定できます。
Cellsは変数を用いてセルを指定する際に使用します。また、数値でセルを指定できます。(文字列でもできます。文字列を使用する場合(4,"B")と記述する必要があります。具体的には後ほど書きます。)
※変数を用いて複数セルを指定する場合はCells、Rangeの両方を使用して指定します。具体的な説明は後ほど行います。
説明文ではよくわからないと思いますので、具体的にコードを書いて行きます。(筆者もVBAを学び始めたときはオブジェクト指向とはなんぞや?からでしたので、わからなくても大丈夫です。コードを書いていれば次第にわかるようになります。)
1.Rangeオブジェクト
Range("B2").Value = 12
とすると下記のようになります。
2.Rangeプロパティ
ActiveSheet.Range("E4").Value = 14
どすると下記のようになります。
1と2の違いを説明します。
これは上記でも述べたオブジェクトであるのか、プロパティであるのかの違いです。
1のRangeはオブジェクトとなります。
2のRangeはプロパティとなります。
2ではActivesheetがオブジェクトとなっています。
考え方としては、
1番左にオブジェクトがきます。(これの)
それ以降にプロパティがきます。(何をどうする)
オブジェクトとプロパティが一つずつである場合は「オブジェクト」を「プロパティ」するとなります。
※オブジェクトとプロパティについては後日記事を上げます。
1では「セルB2の値を12にする」というコードになります。
2では「アクティブシートのセルE4の値を14にする」となります。
3.Cellsオブジェクト
次にCellsのコードを書きます。
Cells(4, 3).Value = 12
もしくは
Cells(4, "C").Value = 12
とすると下記のようになります。
※CellsプロパティについてはRangeプロパティと同じ方法で行えば、セル指定できます。(オブジェクトにセルもしくはセル範囲を指定した場合は相対参照にてセル指定を行います。これらについては次回のブログで上げたいと思います。)
以上がRangeとCellsの違いです。
Rangeは複数セルを選択する際に使用します。Cellsはマクロ内で変数の値を用いてセルを指定したい際に使用します。
具体的にコードを書きます。
4.Rngeオブジェクトで複数セルを選択
Range("A1:E4").Select
とすると、下記のようになります。
これで複数のセルが指定できます。
Cellsを用いて複数セルを選択する場合
Cellsだけでは複数セルの選択することができません。
しかし、Rangeを使用することで変数を使用してセルを選択することができます。
具体的にコードを書きます。
5.Rangeオブジェクト・Cellsプロパティを使用して複数セル選択
Range(Cells(1, 1), Cells(4, 3)).Select
とすると、下記のようになります。
この数値の部分(1や4、3の場所)に変数を入れることで変数を使用して複数セルを指定できます。
これも具体的にコードを書いておきます。
6.Range・Cellsの両方を用いて変数に順じたセル選択を行う。
i = 4 + 3
j = i + 1
Range("A1", Cells(i, j)).Value = 11
とすると、下記のようになります。
これはRange(セル1,セル2)とするとセル1とセル2の間の範囲を指定できることからセル2にCellsで変数を用いたセル指定を行うことにより、複数セルを指定する方法になります。
これで変数を用いても複数セルを選択することができます。
- Range、Cells共にオブジェクト・プロパティがある。
- Rangeは文字列で、複数のセルを指定できる。
- Cellsは数値で、変数の値で1つのセルを指定できる。
- 変数を用いて複数のセルを指定する場合は、RangeとCellsの両方を使用して行う。
以上です。
ここまで読んで頂き、ありがとうございました。
厚生年金保険料額の決まり方
会社に勤めている方は給料明細を見たらわかると思いますが、厚生年金保険料が引かれていると思います。(引かれていない場合は労働条件を確認してください。社会保険が完備されていません。事業規模が大きい場合は、加入義務があるので、きちんと確認してください。)
最近何かと引かれる税金や保険料が高いと何かと話題ですが、今回はその税金や保険料のうち最も引かれる額の大きい厚生年金の保険料について書いていきたいと思います。
厚生年金の保険料額は毎月の給料から標準報酬月額・標準賞与額という金額を求め、それぞれに厚生年金の保険料率を乗じて得た金額となります。
保険料率は平成30年以降、18.3%となっています。しかし、標準報酬月額に保険料率を掛けた額をそのまま支払うことになるのではなく、会社と折半して支払うことになります。(厚生年金基金に加入している場合一定の金額が免除されます。)
つまり、標準報酬月額の9.15%を支払うことになります。
標準報酬月額は、三か月分の給料を平均したものを29万円から31万円までは30万円とするといったような区分で分けています。また標準報酬月額の区分はお住いの都道府県によって変わってくるので気を付けてください。(簡単な説明ですが、大枠はあっていると思います。詳細に説明すると難しくなってしまいます。)
お住いの都道府県の標準報酬月額については下記を参照ください。
https://www.kyoukaikenpo.or.jp/g3/cat330/sb3150/r02/r2ryougakuhyou4gatukara/
住所:東京都
三か月の平均給与351,934円とします。
この場合標準報酬月額は360,000円となります。
よって従業員が負担する厚生年金保険料は
360,000(円) × 0.0915 = 32,940(円)となります。
よって、この具体例の方が引かれる厚生年金保険料の額は32,940円です。
厚生年金保険は正社員の場合は加入させなければならないので、正社員でも厚生年金保険料が引かれていないという場合は気を付けてください。※会社でも半分支払わなくてはならないので、支払をしたくない使用者(事業主・社長・会長)などが支払わないために引かれていない場合もあるかもしれません。
以上です。
ここまで読んでくださり、ありがとうございました。