Excel。動画で紹介。トラブル発生!IF関数では指定の文字が含まれているか判断できない
<Youtube>
例えば、住所に横浜市という文字が含まれていたら○と判断したい。
このような場合、IF関数をつかえば、対応できるように思えます。
含まれるということで「*横浜市*」と
ワイルドカードをつかって、論理式をつくってみると…
判断の結果が!?
では、どのようにしたら、解決することができるのか。
その方法をご紹介しています。
Excel・Word・PowerPoint・Accessのテクニックや研修ネタ・テキストを紹介しております。主に、講義先や現場レベルで質問があったものを中心に書いております。
例えば、住所に横浜市という文字が含まれていたら○と判断したい。
このような場合、IF関数をつかえば、対応できるように思えます。
含まれるということで「*横浜市*」と
ワイルドカードをつかって、論理式をつくってみると…
判断の結果が!?
では、どのようにしたら、解決することができるのか。
その方法をご紹介しています。
連続する項目を表引きしたい場合、VLOOKUP関数だと何度も数式を作る必要があります。
例えば、次のような表。
VLOOKUP関数の場合、B12に設定した数式を、オートフィルで数式をコピーする場合、まず、検索値を列固定の複合参照にした上で、3番目の引数の「列番号」をコピー後に一つずつ修正する。
あるいは、COLUMN関数をつかって列番号に対応する必要があります。
慣れれば特に問題はないかもしれませんが、少々面倒です。
そこで、XLOOKUP関数をつかってみたらどうなるのか、確認をしてみましょう。
B12にXLOOKUP関数をつかった数式を設定します。
スピル機能によって、行方向には、数式をコピーする必要はありません。
列方向には、オートフィルで数式をコピーする必要があります。
これで、連続する複数項目の表引きを行うことができました。
COLUMN関数をつかわなくても大丈夫です。
では、XLOOKUP関数の数式を確認しておきましょう。
=XLOOKUP(A12,$A$2:$A$9,$B$2:$F$9,"",0,1)
最初の引数は、検索値。NOなのでA12を設定します。
2つ目の引数は、検索範囲。
検索値のある列なので、$A$2:$A$9。
オートフィルで数式をコピーする必要があるので、絶対参照を忘れずに設定します。
3つ目の引数は、戻り範囲。抽出したい列です。
連続する列なので、$B$2:$F$9。
オートフィルで数式をコピーする必要があるので、絶対参照を設定します。
ここをまとめて設定することができるので、VLOOKUP関数よりもわかりやすいかと思われます。
4つ目の引数は、見つからない場合。
見つからない場合は「””(ダブルコーテーション×2)」で空白とします。
5つ目の引数は、一致モード。
完全一致なので「0」を設定します。
最後の引数は、検索モード。
上から検索しますので、「1」と設定します。
NETWORKDAYS.INTL関数
読み方: ネットワークデイズ・インターナショナル
分類: 日付時刻
NETWORKDAYS.INTL(開始日,終了日,[週末],[祭日])
週末(曜日指定OK)と祝日を除いた日付間の日数を算出する
Facebookページに書いた、Excelの豆知識(Trivia)です。
6月8日
Excel。
範囲選択で、広い範囲の列を選択する場合は、最初の列番号をクリックして、最後の列番号のところで、Shiftキーを押しながらクリックすると選択できますね。
6月9日
Excel。
範囲選択で、広い範囲の行を選択する場合は、最初の行番号をクリックして、最後の行番号のところで、Shiftキーを押しながらクリックすると選択できますね。
6月10日
Excel。
シートの全部のセルを選択するのは、全選択ボタンをクリックします。
A列の左側と1行目の上の四角のボタンです。
6月11日
Excel。
足し算を使う記号は+。
引き算は-。
掛け算は×でなく*。
割り算は÷でなく/ですね。
6月12日
Excel。
2乗3乗のべき乗の記号は^(キャレット)ですね。
6月13日
Excel。
数学・算数のルールと同じで、()カッコの中が先に計算されます。
6月14日
Excel。
文字と文字も足す(合体)することもできます。
&を使うと、簡単にできますね。
A1:H5には、四半期の売上表があります。
このような表引きをするならば、VLOOKUP関数をつかうと対応できそうです。
しかし、B8:E8までにVLOOKUP関数をつかって、設定する場合、列番号が異なるので複数のVLOOKUP関数を設定する必要があります。
また、連続していれば、列番号に、COLUMN関数をつかうことで、対応することもできますが、今回は、表引きしたいデータが離れています。
これでは、COLUMN関数をつかうことができません。
そこで、VLOOKUP関数の列番号に配列数式をつかうことで、対応することができます。
B8にVLOOKUP関数の数式を設定します。
今回は、検索値が空欄時に発生する、#N/Aは考慮しておりませんので、考慮する場合には、IF関数かIFERROR関数で対応します。
またスピル機能によって、オートフィルで数式をコピーする必要はありません。
これで、複数の離れた列から表引きすることができました。
では、VLOOKUP関数を確認しておきましょう
最初の引数は、検索値です。A8を設定します。
この番号を変えることで、該当するデータを表引きします。
2つ目の引数は、範囲です。
A2:H5。
表引きの件数が1件なので、絶対参照は不要です。
3つ目の引数は、列番号です。
2つ目の引数で設定した範囲の左側から何列目のデータを抽出するのかという数値なのですが、離れた列になります。
そこで、
{2,4,6,8}
という配列数式にすることで、表引きすることができます。
通常の「()」ではなくて「{}」で囲むことで、配列数式にすることができます。
旧来は、先に表引きをすべて範囲選択して、数式の確定時にCtrl+Shift+Enterをすることで配列数式にすることができましたが、スピル機能によって、不要になりました。
数式の作成は、最初から「{}」で表引きしたい列番号を囲うだけです。
表引きしたい列は、2,4,6,8列です。
最後の引数は、検索方法です。
完全一致なので、FALSEを設定します。
NETWORKDAYS関数
読み方: ネットワークデイズ
分類: 日付時刻
NETWORKDAYS(開始日,終了日,[祭日])
日付の間の稼働日数を算出します
Excelは、時間計算が苦手だったりします。
例えば、夜勤とかで、21:00出勤で翌朝5:00に退勤した場合の勤務時間を算出したい場合は、「引き算」をつかえばいいはず。
ところが、結果は「#######」って。
なんで、どうして?
列幅を広げても、変わらない。
よく見るとメッセージが表示さている。
「負であるか、大きすぎる日付および時間は、######」って?
このようなケースのトラブルを回避する方法をご紹介しております。