条件は以下の通りです。
sheet1とsheet2があります。
sheet1のZ100セルにTRUEかFALSEで表記
sheet1のB100セルにNo.の値
sheet1のE100セルにユーザ値
sheet1のF100セルにグループ値
sheet1のG100セルにpermission
sheet2のA:Aにランダムで数字が記載
sheet2のB:Bにpermission
sheet2のC:Cにグループ値
sheet2のD:Dにユーザー値
例題
sheet1のB100セルに299
sheet1のE100セルにroot
sheet1のF100セルにsys
sheet1のG100セルに644
sheet2のA3.A4.A5セルに299
sheet2のB3.B4.B5セルに644
sheet2のC3.C4.C5セルにsys
sheet2のD3.D4.D5セルにroot
このように記載されてた時、
sheet1のB100セルとsheet2のA3.A4.A5セルが一致かつ、sheet1のE100セルとsheet2のD3.D4.D5セルご一致かつ、sheet1のF100セルとsheet2のC3.C4.C5セルが一致してた時、sheet1のZ100セルにTRUEと記載
ユーザー、グループ、permissionが一つで異なっていた場合はFALSEと記載
また、sheet1のB100セルがsheet2のA:Aに存在しなかった場合は’-‘と記載
僕の知能では難しく、どなたかご教授をお願い致します。あくまでも関数です。
No.2ベストアンサー
- 回答日時:
まず、ご質問者の説明の辻褄があっていません。
>sheet1のB100セルとsheet2のA3.A4.A5セルが一致かつ、sheet1の
>E100セル>とsheet2のD3.D4.D5セルご一致かつ、sheet1のF100セル
>とsheet2のC3.C4.C5セルが>一致してた時、sheet1のZ100セルに
>TRUEと記載
>ユーザー、グループ、permissionが一つで異なっていた場合はFALSE
>と記載
との説明ですので、permissionの一致も確認しなければならないのに、permissionの一致条件である【sheet1のG100セルとsheet2のB3.B4.B5セルが一致】という条件が漏れているのではないかと思います。
そこで、それを補完した上で、ご質問者の説明に従って数式を組立てると以下のようになります。
=IF(COUNTIF(Sheet2!A:A,B100)=0,"-",(COUNTIFS(Sheet2!A3:A5,B100,Sheet2!D3:D5,E100,Sheet2!C3:C5,F100,Sheet2!B3:B5,G100)=3))・・・①
①の数式を解説すると、
>sheet1のB100セルがsheet2のA:Aに存在しなかった場合は’-‘
とのことなので、数式①の冒頭
=IF(COUNTIF(Sheet2!A:A,B100)=0,"-"・・・②
でこれを実現します。そうでなかったら、
>ユーザー、グループ、permissionが一つで異なっていた場合はFALSEと記載
とのことなので、【一つでも異なっていたら】ということは完全一致が3セットあることを意味します。ですから、sheet1のB100,E100,F100,G100がsheet1のA列、D列、C列、B列の3行目~5行目にセットで3回登場するかチェックして、登場したらTRUE、登場しなかったらFALSEを返せばよいことになります。そこで、②の数式の後に
(COUNTIFS(Sheet2!A3:A5,B100,Sheet2!D3:D5,E100,Sheet2!C3:C5,F100,Sheet2!B3:B5,G100)=3)・・・③
を付けて、括弧でくくれば③の数式がTRUE、FALSEを返します。
No.3
- 回答日時:
No.2です。
>sheet1のB100セルにNo.の値
>sheet1のE100セルにユーザ値
>sheet1のF100セルにグループ値
>sheet1のG100セルにpermission
>sheet2のA:Aにランダムで数字が記載
>sheet2のB:Bにpermission
>sheet2のC:Cにグループ値
>sheet2のD:Dにユーザー値
というご説明のように、sheet1の項目の並び順とsheet2の項目の並び順が異なるので注意が必要です。
前回回答の数式
=IF(COUNTIF(Sheet2!A:A,B100)=0,"-",(COUNTIFS(Sheet2!A3:A5,B100,Sheet2!D3:D5,E100,Sheet2!C3:C5,F100,Sheet2!B3:B5,G100)=3))・・・①
を実際のデータに適用した状態の画像を添付します。
ご覧いただいておわかりのように、
>全ての値が一致してもFALSEになってしまいます。
という症状にはなりません。
>範囲が下記のようにしたいのですが、式はあっておりますか?
=IF(COUNTIF(Sheet2!A:A,B100)=0,"-",(COUNTIFS(Sheet2!A:A,B100,Sheet2!D:D,E100,Sheet2!C:C,F100,Sheet2!B:B,G100)=3))・・・②
提示された数式②は数式としては成立していますが、ご質問の説明である
>sheet1のB100セルとsheet2のA3.A4.A5セルが一致かつ、sheet1の
>E100セル>とsheet2のD3.D4.D5セルご一致かつ、sheet1のF100セル
>とsheet2のC3.C4.C5セルが>一致してた時、sheet1のZ100セルに
>TRUEと記載
>ユーザー、グループ、permissionが一つで異なっていた場合はFALSE
>と記載
とは全く異なるものになっています。最終的に何をしたいのか判りません。
仮に、ご提示の数式②を用いて、sheet1のNo.、ユーザー値、グループ値、permissionの4項目のセットが、sheet2のA列、D列、C列、B列に3セットあるかチェックしたいというのが最終目的だとすると、当初の説明の「A3~A5のように【連続した行に、続けて】3セットあるか」という条件のうち【連続した行に、続けて】という条件は無視されることになります。
つまり、No.、ユーザー値、グループ値、permissionの4項目のセットが、離れた位置にあっても3セットあればOKという数式になっているということです。
No.1
- 回答日時:
以下は、条件に基づいてExcelの式を表現したものです。
sheet1のZ100セルに次の式を入力してみてください:```excel
=IF(AND(ISNUMBER(MATCH(B100, Sheet2!A:A, 0)), B100=INDEX(Sheet2!A:A,MATCH(B100, Sheet2!A:A, 0)), E100=INDEX(Sheet2!D:D,MATCH(B100, Sheet2!A:A, 0)), F100=INDEX(Sheet2!C:C,MATCH(B100, Sheet2!A:A, 0))), TRUE, IF(ISNUMBER(MATCH(B100, Sheet2!A:A, 0)), FALSE, "-"))
```
この式は、各条件を確認して、一致する場合はTRUE、一致しない場合はFALSE、B100がSheet2のA:Aに存在しない場合は'-'を表示します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- その他(プログラミング・Web制作) python文字化けエラーが発生しているようです 3 2022/04/13 19:41
- Excel(エクセル) VBAにてエクセルをpdf化する方法 1 2023/03/10 16:20
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Excel(エクセル) こんなことできますか?例えば、sheetに貼り付けた図形のタイトルを、セルA1の文字で表示する。 5 2022/04/22 15:25
- Visual Basic(VBA) VBA Userform転記のみ編集可 1 2023/06/29 11:03
- その他(プログラミング・Web制作) パイソンでエクセルマクロを動かしたいのだが 3 2021/12/12 07:23
- Visual Basic(VBA) VBA active sheetをPDF化して指定フォルダに保存 1 2022/07/07 11:27
- Excel(エクセル) Excel VBAについて【図形を組み合わせて作成した、料金別納表示の削除の仕方】 5 2023/11/16 01:27
- Excel(エクセル) 関数を教えていただきたいです。 添付のような「data sheet」があります。 他に、「集計 sh 3 2023/11/02 17:11
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Excelでの頻度計算
Excel(エクセル)
-
エクセルの関数でわからないことあるのでコード付きで教えてください
Excel(エクセル)
-
Excelの関数での合わせ方がわかりません!!!!!!!!
Excel(エクセル)
-
-
4
Excel関数かなにかでスムーズに処理するにはあなたならどうしますか?
Excel(エクセル)
-
5
数値から名前が作成できなくなっているッ!?
Excel(エクセル)
-
6
当番表の作成について
Excel(エクセル)
-
7
Excel関数について
Excel(エクセル)
-
8
Excelでこういう年を切り替えられる簡易なカレンダーを作ったのですが、 年や月を変えると、色が付い
Excel(エクセル)
-
9
Excelの関数について
Excel(エクセル)
-
10
エクセルで、複数のマスに構文を一度に入力する方法を教えてください
Excel(エクセル)
-
11
Excelで文字合成
Excel(エクセル)
-
12
Excel表について(2)
Excel(エクセル)
-
13
Excel表について(1)
Excel(エクセル)
-
14
SUMIFでの判定条件が異なるために正確に計算されない
Excel(エクセル)
-
15
Excelの関数に関する質問です
Excel(エクセル)
-
16
この関数の意味を教えてください。
Excel(エクセル)
-
17
Excel(2019)の枠線の表示方法を教えてください。
Excel(エクセル)
-
18
Excelについて。
Excel(エクセル)
-
19
アルファベット順にソートする方法を教えてださい
Excel(エクセル)
-
20
エクセルでプルダウンから5つ条件を選択し、金額を出力するツールを作りたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelでSUBTOTAL関数を設定した...
-
エクセル ボタンを押すとセルの...
-
エクセルで片方のセルに入力し...
-
セルの値を取得してSQL文に組み...
-
EXCELで、結合されたセルに連続...
-
エクセルで作業した日の日付を残す
-
セルを結合した場合の関数(COU...
-
VBAで結合したセルがクリアでき...
-
Excel セルを結合したものを抽...
-
Excel 離れたセルへの連続デー...
-
エクセルでたくさんのセルを小...
-
VBAで困っています。
-
文字列の結合、改行、空白削除
-
エクセルでセルをクリックして“...
-
Excelでnullになるような式のセ...
-
Excelの表に自動でナンバリング...
-
曜日を判定して、曜日ごとに特...
-
エクセル 結合セル内に空白なら...
-
vba 結合されたセルの列番号を...
-
エクセルの複数のセルを一括で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelでSUBTOTAL関数を設定した...
-
EXCELで、結合されたセルに連続...
-
エクセル ボタンを押すとセルの...
-
セルを結合した場合の関数(COU...
-
エクセルで片方のセルに入力し...
-
VBAで結合したセルがクリアでき...
-
Excel 離れたセルへの連続デー...
-
エクセルでセルをクリックして“...
-
セルの値を取得してSQL文に組み...
-
エクセル 結合セル内に空白なら...
-
【EXCEL】条件に合致するセルの...
-
Excelのカウントアップボタンに...
-
エクセルで作業した日の日付を残す
-
VBAで困っています。
-
EXCEL VLOOKUP的コメント自動表示
-
Excelでnullになるような式のセ...
-
Excel セルを結合したものを抽...
-
Excelの表に自動でナンバリング...
-
エクセルでたくさんのセルを小...
-
Excel2007 セルの削除について
おすすめ情報
返信ありがとうございます。
僕の頭の理解が追いつかないのですが、全ての式を繋げた場合、どうなるのでしょうか?
この後がわからないです。
=IF(COUNTIF(Sheet2!A:A,B100)=0,"-",(COUNTIFS(Sheet2!A3:A5,B100,Sheet2!D3:D5,E100,Sheet2!C3:C5,F100,Sheet2!B3:B5,G100)=3))???ら
goomania様
ありがとうございます。
早速、試したのですが、全ての値が一致してもFALSEになってしまいます。
また、範囲が下記のようにしたいのですが、式はあっておりますか?
=IF(COUNTIF(Sheet2!A:A,B100)=0,"-",(COUNTIFS(Sheet2!A:A,B100,Sheet2!D:D,E100,Sheet2!C:C,F100,Sheet2!B:B,G100)=3))
ご教授お願い致します。