ラベル and関数 の投稿を表示しています。 すべての投稿を表示
ラベル and関数 の投稿を表示しています。 すべての投稿を表示

11/15/2024

Excel。1回目から3回目まですべて80以上かを判定したい【AND】

Excel。1回目から3回目まですべて80以上かを判定したい

<IF+AND関数>

条件判断する関数はExcelには多く用意されています。


次のような表があります。

IF+AND関数

B列からD列には、1回目から3回目のポイントが入力されています。


この1回目から3回目までのポイントすべてが80以上ならば、「○」と表示したいのですが、どのようにしたらいいのでしょうか。


IF関数を複数重ねたネストでも判定することはできますが、少し複雑な数式になりますし、面倒です。


そこで、今回は、IF関数と、AND関数をつかった数式で、対応していきます。


E2に数式を設定します。


E2に設定した数式は、

=IF(AND(B2>=80,C2>=80,D2>=80),"○","")

あとは、オートフィルで数式をコピーします。


これで、1回目から3回目まですべてが80以上の場合に、○が表示されていることが確認できました。


AND関数は、「○○かつ○○」というAND条件の関数です。


AND関数の引数に条件を3つ設定する必要がありますが、とてもわかりやすく、数式を作ることができます。


仮に4回目以降に増えたとしても、AND関数の条件を追加するだけで、すみますので、比較的容易に対応することができます。

5/28/2024

Excel。複数条件「~かつ~」のAND条件が成立したら行全体を塗りつぶしたい。【fill in】

Excel。複数条件「~かつ~」のAND条件が成立したら行全体を塗りつぶしたい。

<条件付き書式+AND条件>

次の行があります。

条件付き書式+AND条件

店舗名が「新宿店」で商品名が「消しゴム」のデータをわかりやすくしたいので、行全体を塗りつぶすことにしました。


では、どのようにしたらいいのでしょうか。


条件によって、塗りつぶすわけですから、「条件付き書式」をつかうわけです。

その条件式を考えるわけですね。


「新宿店で”かつ”消しゴム」という条件です。

このように「~かつ~」は、AND関数をつかうことで、対応することができます。


では、条件付き書式を設定します。

A2:D11を範囲選択します。

ホームタブの条件付き書式にある「新しいルール」をクリックします。


新しい書式ルールダイアログボックスが表示されます。


「数式を使用して、書式設定するセルを決定」を選択したら、条件式を設定します。


設定する条件式は、

=and($B2="新宿店",$C2="消しゴム")


あとは、書式ボタンをクリックして、塗りつぶす色を選択します。

OKボタンをクリックして完成です。


このように、複数条件で合致するデータ全体を塗りつぶしたい場合には、AND条件をつかった条件付き書式で解決できます。


設定したAND条件の数式について補足をします。

=and($B2="新宿店",$C2="消しゴム")


$B2や$C2のように、列固定の複合参照に設定することで、行全体を塗りつぶすことができます。

4/05/2024

Excel。AND関数の欠点。ワイルドカードがつかえないので、どうしたらいいの。【trouble】

Excel。AND関数の欠点。ワイルドカードがつかえないので、どうしたらいいの。

<AND関数・IF+COUNTIFS関数>

AかつBという条件をつくることができる「AND関数」ですが、欠点があります。


それが、ワイルドカードをつかった条件式には対応してくれないということです。


次の表をつかって説明します。


判定しないのは、所属はAからはじまり、かつ、住所には横浜市が含まれるデータなら、「○」を表示して、そうでなければ、「空欄(空白)」としたい。


AND関数をつかってみたところ、思っているように算出されません。


C2に設定した数式は、

=IF(AND(A2="A*",B2="*横浜市*"),"○","")

AND関数とワイルドカードの組み合わせは、うまくいかないようです。


AND関数で、ワイルドカードをつかわない数式にすれば、算出することはできます。


ワイルドカードを使わない数式は、

=IF(AND(MID(A2,1,1)="A",MID(B2,5,3)="横浜市"),"○","")

ただ、MID関数をつかうので、可読性が下がってしまいます。


そこで、COUNTIFS関数をつかうことで、対応することができます。


C2の数式を次のように設定して、オートフィルで数式をコピーします。

=IF(COUNTIFS(A2,"A*",B2,"*横浜市*"),"○","")


COUNTIFS関数は、ワイルドカードをつかった条件をつかうことができます。


数式を確認しておきましょう。


IF関数の引数であるCOUNTIFS関数から説明します。

COUNTIFS関数の最初の引数が、「検索条件範囲1」です。A2を設定します。


2番目の引数は、「検索条件1」。ここに「”A*”」とワイルドカードをつかっています。

「A*」とすれば、「Aで始まる」という意味です。


3番目以降は条件範囲と、条件の繰り返しです。

B2のあたいに、「*横浜市*」なのかを確認する条件式を設定します。

「*横浜市*」はB2に「横浜市という文字が含まれる」という意味です。


この2つの条件が合致したら「TRUE」、合致しない場合は「FALSE」と判定結果がでます。


IF関数をつかってTRUEならば「”○”」と表示します。

2/20/2024

Excel。空白は除き、ゼロがある行全体を手早く塗りつぶしたい。【Exclude blanks】

Excel。空白は除き、ゼロがある行全体を手早く塗りつぶしたい。

<条件付き書式+AND関数>

フィールド内のデータが「0(ゼロ)」の場合に、行全体を塗りつぶすとしたら、どのようにしたらいいのでしょうか。

空白は除き、ゼロがある行全体

条件付き書式をつかうのはもちろんなのですが、今回のポイントは、「0(ゼロ)」の場合だけということ。


空白は対象になっていないということです。


条件付き書式の条件式を単純に「=$B2=0」とすると、空白も対象になってしまいます。


なぜ、空白も条件と合致してしまうのかというと、空白は0と同じと判断されているからです。


そのため、空白と0と区分けができず、どちらでも行全体を塗りつぶしされてしまったというわけです。


では、どのような条件式を設定すればいいのでしょうか。


条件式を次のように設定します。


=and($B2=0,$B2<>"")


これで、「0(ゼロ)」だけを塗りつぶすことができます。


条件式は、AND関数をつかって、0(ゼロ)でかつ、「<>””」は空白ではないという条件をつくることで、対応することができるというわけです。


なお、行全体を塗りつぶす場合には、「$B2」というように、列固定の複合参照にする必要があります。

11/16/2023

Excel。データがすべて合致するなら、行全体を塗りつぶしてわかりやすくしたい。【fill the row】

Excel。データがすべて合致するなら、行全体を塗りつぶしてわかりやすくしたい。

<条件付き書式+AND関数>

フィールドのデータがすべて条件に合致するならば、わかりやすいように、行全体を塗りつぶしたい場合には、どのようにしたら、手早く設定することができるのでしょうか。


今回は、C:E列のデータが、すべて70点以上ならば、行全体を塗りつぶしたいとします。


まず、条件で塗り分けたいので、つかうのは、「条件付き書式」ですね。


あとは、条件の設定です。

「~かつ」というのが条件になります。

つまり、「AND条件」ということなので、AND関数をつかった条件式をつくればいいわけですね。


ただ、判定が合致するかしないかだけなので、IF関数は不要です。


では、設定をしていきましょう。

A2:E10を範囲選択して、ホームタブの「条件付き書式」にある「新しいルール」をクリックします。


「新しい書式ルール」ダイアログボックスが表示されます


「数式を使用して、書式設定するセルを決定」を選択して、条件式の設定ボックスに、数式を設定します。


=AND($C2>=70,$D2>=70,$E2>=70)


あとは、書式ボタンをクリックして、塗りつぶしたい色を設定したら、OKボタンをクリックして、完成です。


条件が満たされるか満たされないかだけなので、IF関数は不要です。


AND関数の引数は、「$C2」のように、複合参照にしています。

複合参照の列固定にしてあげることで、行全体を対象として、書式を反映することができます。

12/12/2022

Excel。AND関数はワイルドカードをつかった条件はつかえません【Wildcard】

Excel。AND関数はワイルドカードをつかった条件はつかえません

<AND関数>

AND関数は、IF関数と組み合わせてつかうと条件の可読性も向上しますが、AND関数でワイルドカードを使おうとしても、つかうことができません。


次の表をつかって、確認してみます。


C列は、A列のデータには、「B」が含まれていて、かつ、B列の住所には「横浜市」が含まれている場合「○」を表示するようにしたいとします。


C2にAND関数をつかった数式を設定します。

=IF(AND(A2="B*",B2="*横浜市*"),"○","")


AND関数の引数には、「B*」や「*横浜市*」というようにワイルドカードをつかっています。

問題ないようにみえますが、C2には、該当データであるにもかかわらず、「○」が表示されていません。


数式をつかった、AND条件でデータを確認する場合には、AND関数ではなくて、IF+COUNTIFS関数をつかうことで、解決することができます。


C2には、

=IF(COUNTIFS(A2,"B*",B2,"*横浜市*"),"○","")


とオートフィルで数式をコピーしました。


A列のデータにBが含まれていて、かつ、B列には横浜市が含まれているデータに「○」を表示することができました。


COUNTIFS関数ならば、引数内の条件にワイルドカードをつかうことができます。


ちなみに、IF+AND関数で算出するならば、

=IF(AND(MID(A2,1,1)="B",MID(B2,5,3)="横浜市"),"○","")

とすることで、対応できますが、ワイルドカードは使用していません。


この場合、含まれるではなく、横浜市が、5文字目に必ずある場合と固定されているならば、対応することが可能だということです。


AND条件だからといって、AND関数を選択するまではいいのですが、「含まれる」などの条件の時、AND関数ではワイルドカードをつかって、算出することができないので、注意が必要です。

7/08/2022

Excel。表から指定した交差するセルを手早く、塗りつぶしたい【Cross table】

Excel。表から指定した交差するセルを手早く、塗りつぶしたい

<条件付き書式+AND関数>

大きなクロス表で、指定したセルがどこにあるのかを見つけるのは、なかなか見つけにくいですね。


セルを塗りつぶしすることができれば、手早くそのセルの内容を把握確認することができます。


B1に日付を入力して、B2に時間を入力します。


10月2日14時のセルを塗りつぶしすることで、該当するセルをすぐに確認することができるわけですが、どのようにしたらいいのでしょうか?


条件付き書式をつかうことで、対応することができます。

ポイントは、どのような数式をつかった条件をつくるかです。


では、早速設定していきましょう。


条件付き書式を設定するところを範囲選択しますので、B5:D9を範囲選択したら、ホームタブの条件付き書式をクリックします。


「新しいルール」をクリックします。

 


「新しい書式ルール」ダイアログボックスが表示されます。


「数式を使用して、書式設定するセルを決定」をクリックしたら、ルールを設定します。


数式を入力するボックスに、次の数式を設定します。

=AND(B$4=$B$2,$A5=$B$1)


あとは、書式ボタンをクリックして、セルを塗りつぶしする色を設定します。

最後に、OKボタンをクリックすれば完成です。


設定したAND関数の数式を確認しておきます。


AND関数は、引数内で設定した条件をすべて満たした場合「TRUE」と判断する関数です。


最初の引数 「B$4=$B$2」で、列を対象として検索しています。

列方向に参照が変わってほしいので、行番号だけを固定した、複合参照として設定します。


B2は、セル参照先が変化してほしくないので、絶対参照を設定します。


次の引数は、日付である行を検索します。

そのため、列は固定したいので、列を固定した複合参照をつかった「$A5=$B$1」と設定します。


クロス表から指定した交差する値を算出するならば、INDEX+MATCH関数をつかいますが、セルの値を抽出するわけではないので、INDEX+MATCH関数など複雑な関数を使わなくても大丈夫です。


条件付き書式のルールに、色々な数式を設定することで、使い勝手がよくなるかもしれませんので、試してみると面白いかもしれませんね。

2/09/2022

Excel。AND関数は、複数の条件をすべて満たすかどうかを調べることができます。【AND】

Excel。AND関数は、複数の条件をすべて満たすかどうかを調べることができます。

<関数辞典:AND関数>

AND関数

読み方: アンド  

分類: 論理 

AND(論理式1,[論理式2],…)

AND関数


複数の条件をすべて満たすかどうかを調べる 

11/10/2021

Excel。条件付き書式で指定日以前を設定すると空白セルも対象になってしまう【Conditional formatting】

Excel。条件付き書式で指定日以前を設定すると空白セルも対象になってしまう

<条件付き書式+AND関数>

Excelには、簡単にできそうと思うと、そう簡単にできないものというのが結構あります。

たとえば、次のような場合。


提出日が、E1よりも前の日だったら、行全体を塗りつぶししています。


簡単なのではと思ったら、ちょっと厄介なんですね。


まずは、行全体を塗りつぶしたいわけなので、数式による条件を作る必要があります。

そして、次に問題になるのが、空白セルの問題です。


とりあえず、E1よりも前の日だったらという条件式をつくって、該当するセルが塗りつぶされるように設定していきます。


A2:C11を範囲選択します。


ホームタブの「条件付き書式」にある「新しいルール」をクリックします。


新しい書式ルールダイアログボックスが表示されます。

ルールの種類を「数式を使用して、書式設定するセルを決定」を選択したら、「次の数式を満たす場合に値を書式設定」のボックスに、

=$C2<$E$1

そして、書式ボタンで、塗りつぶしの色を設定します。


OKボタンをクリックします。


行全体を塗りつぶすことはできました。

セル参照を、「$C2」のように、列固定の複合参照で設定することで、行全体を塗りつぶすことができます。


しかし、よくみると、空白セルになっている行も塗りつぶしの対象になってしまっています。


この原因は、シリアル値にあります。


日付はシリアル値で管理されています。

そのため、指定の日付より前という条件だと、空白セルは「0(ゼロ)」として認識されるために、塗りつぶしの対象になってしまうのです。


そのため、「0(ゼロ)」を除く、すなわち、「空白セルではない」という条件を先程の条件式に追加する必要があります。


「次の数式を満たす場合に値を書式設定」のボックスに、

=AND($C2<$E$1,$C2<>"")

と今度は、AND関数をつかった数式を設定します。


まずは、結果を確認してみましょう。


空白セルの行は、対象外になったことが確認できます。


では、設定した数式を確認しておきます。

=AND($C2<$E$1,$C2<>"")

AND関数をつかうことで、複数条件が成立したもの以外は対象外にすることができます。


そして、「$C2<>""」を追加することで、空白セルを除くことができます。


このように、条件付き書式で日付を使うときには、ちょっと注意する必要がありますね。

10/29/2021

Excel。複数条件に合致するデータの行全体を塗りつぶして、わかりやすくしたい【Multiple conditions】

Excel。複数条件に合致するデータの行全体を塗りつぶして、わかりやすくしたい

<条件付き書式+AND関数>

大きなデータがあって、複数条件に合致するデータがどこにあるのかを知りたい場合、目視では大変ですね。

自動的に、セルに色を付ける。できることなら、行全体を塗りつぶしたい。


たしかに、オートフィルターをつかって、複数条件に合致するデータを抽出する方法もありますが、抽出の欠点は、そのデータだけになってしまうことで、データ全体としてみるのは難しくなってしまいます。


今回のように、条件があるセルの塗りつぶしをするには、「条件付き書式」を使うに限ります。


次のデータを用意しました。


今回は、「店舗名が秋葉原」で「売上高が500以上」という条件でレコード(行全体)を塗りつぶすようにしていきます。


条件付き書式をつかっていきますが、用意されているメニューでは対応できないので、数式を使って条件を設定していきます。


数式をつかって、条件を表すには、AND関数を使うと、煩雑な数式にならずにすみます。


今回のように、「店舗名が秋葉原」で「売上高が500以上」というように、フィールド(列)ごとに条件がある場合には、AND関数を使うと条件を設定しやすくなります。


もし、「店舗名が秋葉原か品川」というように、フィールド(列)内の複数条件だった場合には、OR関数を使うといいわけです。


A2:B11を範囲選択して、ホームタブにある「条件付き書式」の「新しいルール」をクリックします。


新しい書式ルールダイアログボックスが表示されます。


ルールの種類には「数式を使用して、書式設定するセルを決定」を選択します。


書式設定のボックスには、次の数式を設定します。

=and($A2="秋葉原",$B2>=500)

数式の説明は後に回すとして、塗りつぶしの色を設定したら、OKボタンをクリックします。


条件に合致したデータのレコード(行)だけが塗りつぶしされていることが確認できました。


このように、複数条件でわかりやすくしたい場合には、条件付き書式という方法もあります。


さて、先程設定した数式についてです。

=and($A2="秋葉原",$B2>=500)

AND関数はさておき、ポイントになるのは、「$A2」「$B2」です。


列番号は、絶対参照で、行番号は、相対参照が設定されている、複合参照で設定しています。

列番号を固定してあげることで、行全体を塗りつぶすことができます。


ある種、「決まり事」のようなものなので、条件付き書式で行全体を塗りつぶしたい時には、列番号固定の複合参照を設定すると覚えておくと、便利です。

9/17/2021

Excel。空白は除いて0(ゼロ)と入力されたセルだけを塗りつぶししたい。【Conditional formatting】

Excel。空白は除いて0(ゼロ)と入力されたセルだけを塗りつぶししたい。

<条件付き書式+AND関数>

条件付き書式は、とても便利な機能なのですが、ちょっとしたことで悩むことがあります。


たとえば、次のような、0(ゼロ)と入力されたセルを塗りつぶしたい場合です。


簡単に処理できるでしょうと思ったら大間違いです。

確認してみるとわかります。

ホームタブの条件付き書式にある「セルの強調表示ルール」から「指定の値に等しい」をクリックします。

指定の値に等しいダイアログボックスが表示されますので、「0(ゼロ)」と設定します。


すると、「0(ゼロ)」だけではなくて、「空白」のセルも塗りつぶしされていることがわかります。


これは、空白セルを「0(ゼロ)」としているために、このような結果になってしまうわけです。


なので、「0(ゼロ)」のみを塗りつぶすことは、簡単ではないわけです。

 

数式をつかったとしても、結果は同じになります。

ホームタブの条件付き書式にある「新しいルール」をクリックして、新しいルールダイアログボックスを表示します。

 

「数式を使用して、書式設定するセルを決定」から、次の数式を満たす場合に値を書式設定に、=B2=0 と設定しても、先程と同じように、空白セルも塗りつぶしされてしまいます。


アイディアとして、数式を使うのはいいのですが、

=B2=0

という、条件では不十分というわけです。


空白は対象外にするという条件を追加しないといけないわけです。


数式の条件を次のように設定します。

=AND(B2=0,B2<>"")


AND関数をつかって、「0(ゼロ)でかつ「空白」ではない」という条件にしてみました。


書式を設定してOKボタンをクリックします。


これで、「0(ゼロ)」だけのセルのみを塗りつぶしすることができました。


条件付き書式はアイディアで、色々使うことが出来ますが、簡単に設定することが出来ないものもありますので、注意が必要ですね。

6/07/2021

Excel。ファイル添付時用に強固なパスワードを使って作りたいけどどうしたらいい?【Strong password】

Excel。ファイル添付時用に強固なパスワードを使って作りたいけどどうしたらいい?

<RANDBETWEEN関数・IF+OR+AND+CHAR関数・CONCAT関数>

ファイルを添付してメールなどで送信する場合、パスワードを付けて送信することが多々あります。


その場合のパスワードを同じにするのも、ちょっとどうかと思いますし、かといって、「Squt!kYmx9」のようなパスワードを、その都度、自分で考えるというのも、大変です。


そこで、Excelをつかって、パスワードを生成するシートをつくっていきます。


Excel VBAでマクロをつくってもいいのですが、作ることまでもなく、関数で対応できます。


考え方として、適当な文字を10個組み合わせたいわけですね。

なお、今回は重複OKとします。


直接ランダムな文字を表示させる方法はExcelにはありません。


まずは、使えそうな関数を考えみることにします。


文字は、文字コードという数値をもっていますから、数値から文字に変換する関数が、CHAR関数です。


その数値をランダムで表示することができるのが、RANDBETWEEN関数です。


この2つの関数があれば、どうにかなりそうですね。

ただし、注意しないといけないのが、文字が文字コードに綺麗に割り振られていない点です。


文字コードの48が「0」で57が「9」

文字コードの65が「A」で90が「Z」

文字コードの97が「a」で122が「z」


というように割り振られています。

そのため、ランダムの数値を48~122という単純な条件で算出するだけではダメということになるわけです。


58~64を除くなど、除外する必要があるわけです。


それを踏まえたうえで、次のようなランダムパスワードを作成するためのシートを作りました。


E1のパスワードは、4行目に算出したランダムな文字を結合させています。

E1に設定した数式は、

=CONCAT(A4:J4)

CONCAT関数は、文字結合することが出来る関数です。


CONCATENATE関数だと、範囲選択では文字結合することができません。

セルごとに「,(カンマ)」で区切る必要があるので、新しく登場したCONCAT関数を使うほうが便利です。


A3には、ランダムで数値を算出する関数。RANDBETWEEN関数をつかって、48~122の間の乱数を算出しています。


=RANDBETWEEN(48,122)

本当ならば、文字コードがない数値を算出させないようにしたいのですが、一筋縄ではいきませんので、単純に48~122の間の数値を表示させるようにしています。


逆にA4の数式は、文字コードに該当するようにしてあげる必要があります。


A4の数式は、

=IF(OR(AND(A3>=48,A3<=57),AND(A3>=65,A3<=90),AND(A3>=97,A3<=122)),CHAR(A3),"!")

数式が長くなっていますが、

文字コードの48が「0」で57が「9」

文字コードの65が「A」で90が「Z」

文字コードの97が「a」で122が「z」

に対応させるために、OR関数とAND関数をミックスしてつかっています。別にAND関数のみでも大丈夫です。


文字コード以外の数値だったら、「!」(感嘆符:エクスクラメーション)を表示するようにしております。


あとは、A3:A4を範囲選択して、まとめて、オートフィルで数式をコピーしていきます。

パスワードの文字数が10文字なので、それにあわせて数式をコピーします。


これで、ランダムパスワードを作成することができます。

あとは、運用上の注意で、RANDBETWEEN関数は、セルに文字を入力するなど、アクションをしてしまうと、値が変わってしまうので、ランダムパスワードを作成したら、すぐに、値のコピーをつかって、管理する必要があります。

5/23/2021

Excel。条件付き書式を設定したら空白は除きたいのに反映しちゃうのでどうにかしたい【Exclude white space】

Excel。条件付き書式を設定したら空白は除きたいのに反映しちゃうのでどうにかしたい

<条件付き書式・AND関数>

条件付き書式を設定したら、まれに、意外なリアクションをすることがあります。

例えば、次のような表。


D1の日付よりも前日だった、該当データの行全体に塗りつぶしをする条件付き書式を設定してみます。


A1:B9まで範囲選択をして、ホームタブの条件付き書式から「新しいルール」をクリックすると、新しい書式ルールダイアログボックスが表示されます。


「数式を使用して、書式設定するセルを決定」を選択して、

=$B2<$D$1

と数式を設定して、塗りつぶしの書式を設定してみます。


この数式は、

D1の日付よりも、B列の日付が小さい。

すなわちD1より前の日付だったら。

という意味になりますから、空白は除外されているハズです。


ところが、OKボタンをクリックして確認してみると、空白のデータの行まで塗りつぶしされてしまっています。


B列には数式が設定されていて、その結果が空白になっているわけではありません。

完全な空白なのに、リアクションしてしまっています。


では、どうやったら、空白を除くことができるのでしょうか?


条件付き書式で設定する数式を修正することで対応するしか方法がありません。


A2:B9を範囲選択して、改めて、条件付き書式の「新しい書式ルール」ダイアログボックスを表示して、「数式を使用して、書式設定するセルを決定」を選択して、数式を設定します。


=and($B2<>"",$B2<$D$1)

あとは、塗りつぶしの書式を設定したらOKボタンをクリックしてみましょう。


今回は、空白データの行は対象から外れて、塗りつぶしされていないことが確認できましたね。


設定した数式を確認しておきましょう。


=and($B2<>"",$B2<$D$1)

どうやったら、空白を除くことができるかというのが、この数式のポイントです。


「<>」の比較演算子をつかうことで対応しました。


「空白じゃない」ものが塗りつぶしのターゲットになるわけですから、「空白だったら」という条件設定にしては、うまくいきません。

なので、今回は、「$B2<>""」とすることで、「B2が空白じゃない」という条件で判断させることができたわけです。


そして、そもそもの条件である、D1の日付以前ということですから、「$B2<$D$1」も合わせて条件にする必要があります。

AND関数をつかうことで、2つの条件を満たした場合。

すわなち「TRUE」になったら、セルを塗りつぶすという条件式を設定できたというわけです。


条件付き書式はとても便利で、様々な用途で使われていると思います。

数式をうまくつかうことで、色々対応することが可能になりますので、試してみるといいかもしれませんね。

4/22/2021

Excel。AND関数はピンよりも組み合わせることで威力を発揮する関数です。【function:AND】

Excel。AND関数はピンよりも組み合わせることで威力を発揮する関数です。

<AND関数>

AND条件とかOR条件でもおなじみのAND関数。

AND関数単体では、なかなか使用することはないかもしれませんね。


Excelで使うとしたら、やっぱり、IF関数とのネストというのが多いですね。

IF関数との組み合わせもバッチリですが、特徴を知っておくことは悪くないので、ちょっと確認しておきましょう。


AND関数の読み方は「アンド」です。

カテゴリーとしては、「論理」に属しています。

AND関数の引数も確認しておきましょう。

AND(論理式1,[論理式2],…)

使うことはないかもしれませんが、論理式は255個設定することができます。


設定した引数のすべてが成立(TRUE)したら、「1」を返します。

逆に、設定した引数のうち、一つでも成立していなければ(FALSE)、「0」を返します。


このAND関数。知らなくても算出することはできるものも多いのですが知っていると便利でわかりやすくなる数式は多々あります。

次の場合の数式を確認してみると、一目瞭然です。

E列の判定は、英語・国語・数学のすべてが80以上なら○。そうでなければ、×とします。


E2の数式は、IF関数のみで構成した場合です。


E2の数式は、

=IF(B2>=80,IF(C2>=80,IF(D2>=80,"〇","×"),"×"),"×")

一つずつ、IF関数で質問していくことになりますから、数式は煩雑にあります。

「×」は質問数分必要になってしまいます。


E3の数式は、IF+AND関数のネストで作った場合です。


E3の数式は、

=IF(AND(B3>=80,C3>=80,D3>=80),"○","×")


質問を1回だけで済むことができるので、シンプルな数式となり、わかりやすくなりました。


AND関数は単独では、なかなか使わないかもしれませんが、パートナーとしてはとても重宝する関数なので、知っているといいかもしれませんね。

4/14/2021

Excel。複数列に個別の条件で合致するデータを抽出するにはどうしたらいいの?【Matching data】

Excel。複数列に個別の条件で合致するデータを抽出するにはどうしたらいいの?

<オートフィルター:AND関数>

オートフィルター機能をつかうことで、条件に合致したデータを抽出することができますが、ちょっと条件が複雑になると、オートフィルター機能単独だと、太刀打ちできないことがあります。


例えば、次のような表で見てみましょう。


B1:D1の数値は、各月の平均値です。

B1の数式は、

=AVERAGE(B4:B10)


今回やりたいことは、4月~6月までの各月の平均以上のもの、すなわち、全部の月で兵員以上だった店舗はどこの店舗なのか、わかるように抽出したいわけです。


抽出とすれば、オートフィルター機能をつかうわけですが、今回のような複数列を対象にした抽出方法はありません。


また、一つだけのフィールドだけであったとしても、平均以上を抽出することは容易ではありません。

オートフィルター機能の数値フィルターで項目にある「指定の値以上」をつかってみても、オートフィルターオプションダイアログボックスが表示されるので、平均値が算出されているセルをクリックすることはできませんし、B1と入力しても、対応してくれません。


つまり、オートフィルターオプションをつかってみても、抽出することができないわけです。


それが、今回は、複数の列が対象となっているわけですね。

では、このようなことは出来ないのでしょうか?


このような場合には、判定用の列をつくってあげる方法が一番わかりやすいと思います。


E4に次の数式を設定します。

=AND(B4>=$B$1,C4>=$C$1,D4>=$D$1)


AND関数をつかうことで、引数内の条件が合致していればTRUEを算出することができます。

IF+AND関数という方法でもいいのですが、条件に合致するかどうかだけわかればいいわけなので、わざわざ、IF+AND関数というネストにしなくてもいいと思いますが、わかりにくい場合には、合致する場合には、「○」とかしておくといいかもしれませんね。


算出できたらば、オートフィル機能をつかって、数式をコピーします。

結果をみてみましょう。


条件が成立していると、「TRUE」を算出して、成立していない場合には「FALSE」を算出しています。


算出することさえできれば、あとは、オートフィルター機能をつかって、「TRUE」のみを抽出してあげれば、いいわけですね。


このように、オートフィルター機能のメニューにない場合は、アイディアによって抽出することができるようになりますので、色々考えてみると、今まで以上に作業効率が改善できるかもしれませんね。