プロが教える店舗&オフィスのセキュリティ対策術

下記の表に基づくIF関数について簡便な算出式をご教示ください。
1.横軸にはA、B、Cの順によりMまでの13列があり、A列には母数値が入ります。
2.縦軸に1~8までの8行があります。(A列としては、A1、A2、A3・・・。
   B列としてはB1、B2、B3・・・。C列としては、C1、C2、C3・・・となり、A列には
  母体となる数値が入ります。)
3.つまり、横12×縦7=84の組み合わせができることになります。
4.この84の組み合わせにはそれぞれ定められた確定値があるのです。
  例示(確定値のイメージ)
        A  B  C D E ・・・・・M
   1行目 母数値 15 16 17 18・・・・・26
   2行目  1   23 24 25 26・・・・・34
   3行目  2   35 36 37 38・・・・・46 
   4行目  3   47 48 49 50・・・・・58
     ・   ・  ・ ・  ・・・・・・・
     ・ ・  ・ ・  ・・・・・・・
     ・ ・  ・ ・  ・・・・・・・
   8行目 7    ・  ・ ・ ・・・・・・

   つまり、A2の「1」とB2の組み合わせは「23」。A4の「3」とD4との組み合わせは    
   「49」となるわけです。

5.次にご教示いただきたい算出式に戻ります。
   Excelの表にはA2には母数値の2や4、7など1~7までの母数値がランダムに入力されて   
   います。
   一方、B2には母数値の15~26までの数値がランダムに入力されているのです。
   そこでC列に算式を設定し、4項の例示にある確定値を入力させるためにIF関数のAND  
   で作成したのですが、組み合わせ数が多いため過ちが考えられますので、簡便に作る方法
   をご教示いただきたいのです。
   私が考えたIF関数は、=IF(and(A2=1,B2=15),23,IF(and(A3=2,B3=15),35・・・・
   のようにしてみたのですが、長文となってしまいます。

A 回答 (4件)

こんにちは



「下記の表」というのがどこかのシートにあるのならそれを参照して検索するのが良いです。
表が存在しない場合は、直接式に埋め込むことも可能ですが、メンテナンス等を考えると、シートに表を作成しておくことをお勧めします。

その上で、縦軸、横軸の交わるセルを検索すればよいので、「クロス検索」と言われるような方法を用いれば、長いIF関数のネストを作らずに済みます。
具体的にはVLOOKUP関数やMATCH関数(最近ならXLOOKUP関数)などの組み合わせで可能です。

詳細は、以下あたりをご覧になってください。
https://dekiru.net/article/16178/
https://prau-pc.jp/excel/match-index/
    • good
    • 0
この回答へのお礼

助かりました

早々のご教示ありがとうございます。
早速、お示しいただきましたVLOOKUP関数、MATCH関数についてネットを見させていただきました。
私にとって最善のご提案と思っており、数種類ある表を作成し、チャレンジしてみます。
ありがとうございました。

お礼日時:2023/05/24 14:32

>組み合わせ数が多いため過ちが考えられます


それならフローチャート(流れ図)を書いてごらんなさいな。
    • good
    • 1

>この84の組み合わせにはそれぞれ定められた確定値があるのです。



ご質問者のやりたいことが、

(1)上記の確定値の表を自動作成したい
(2)確定値の表は作成済みでA列、B列の値から表に基づきC列に確定値を表示させたい。

のどちらかによって回答が異なります。

No.2さんの回答は(2)の回答だと思います。

添付画像をご覧ください。ご質問者のやりたいことが、仮に(2)だとして、
A列、B列の値からC列に確定値を表示させるには、No.2さんの回答のように
表の行と列の交差するセルの値を参照する「クロス検索」を用いればよいわけです。

しかし、添付画像のように「対象範囲内で、左上隅から右方向に連番を振り、右端まで進んだら次の行に進む」という規則性がある場合、必ずしもクロス検索でなくてもよいのではないかと思います。

この場合は規則性を数式にすればよいわけですから、添付画像のC2セルの例でいえば、画像①のように

=(A2-1)*12+B2+8・・・・①

という数式でよいことになります。

もちろんクロス検索を用いて画像②のD2セルのように

=INDEX($G$2:$R$8,MATCH(A2,$F$2:$F$8,0),MATCH(B2,$G$1:$R$1,0))・・・・②

という数式で表を検索する方法でもOKです。画像でお判りのように①と②の結果は一致しています。
「ExcelのIF関数について」の回答画像3
    • good
    • 0

何をしたいのかが理解できないので、ご参考程度に。



条件に従って数値を求めるならば、論理式のほうが良いです。
IF関数は、階層が深くなるほど、収拾がつきません。

> =IF(and(A2=1,B2=15),23,IF(and(A3=2,B3=15),35・・・・
この場合は、以下のように置き換えられます。
=and(A2=1,B2=15)*23
+and(A3=2,B3=15)*35
+
    • good
    • 0
この回答へのお礼

早速のご教示ありがとうございます。
ご説明が悪く申し訳ございません。
お示しいただいた置き換えについて勉強してみます。ありがとうございました。

お礼日時:2023/05/24 14:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!