- 締切済み
Excel複数条件に対して、文字列をかえす関数
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No2,3です。 作業列などを作らずに式だけでということなら次の式をB5セルに入力します。 =INDEX(Sheet2!C$1:C$1000,SUMPRODUCT((Sheet2!A$1:A$1000=B$3)*(Sheet2!B$1:B$1000=D$3),ROW(A$1:A$1000))) B6セルには次の式を入力します。 =INDEX(Sheet2!D$1:D$1000,SUMPRODUCT((Sheet2!A$1:A$1000=B$3)*(Sheet2!B$1:B$1000=D$3),ROW(A$1:A$1000))) しかし、上の方法は計算に負担がかかりますので推奨しません。
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No2です。 勿論、D3セルに入力規則からのリスト表示をさせない場合でもお示しの式を入力しておくことで対応することもできます。
- KURUMITO
- ベストアンサー率42% (1835/4283)
難しい式や関数を使うよりも簡単な関数と作業列を使って対応することで支店コードを選んだ段階で迅速に本店名や支店名を表示させることができます。 お示しの表で次のようにします。 支店コードの入力は本店のコードを入力した段階で、本店のコードに関係する支店のコードのみから選択すればよいようにします。そのためにはシート1のD3セルでは「データの入力規則」から「リストを表示させ選択できるようにします。 そこでシート2では次のように作業列を用意します。 シート2のA列からD列にはお示しのような表が有るとしてE2セルには次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>COUNTIF($A:$A,Sheet1!$B$3),"",INDEX(B:B,MATCH(Sheet1!$B$3,$A:$A,0)+ROW(A1)-1)) これでシート1のB3セルに本店コードが入力されることで関連する支店コードが表示されます。 シート2のF2セルには次の式を入力してG2セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(ROW(B1)>COUNTIF($A:$A,Sheet1!$B$3),"",INDEX(C:C,MATCH(Sheet1!$B$3,$A:$A,0)+ROW(B1)-1)) 本店名と支店名が表示されます。 そこでシート1に戻っての作業ではD3セルを選択してから「データ」タブの「入力規則」で表示の画面の入力値の種類で「リスト」を選択します。元の値には =Sheet2!E:E と入力してOKします。 B5セルには次の式を入力してB6セルまで下方にドラッグコピーします。 =IF(COUNTIF(Sheet2!$E:$E,$D$3),INDEX(Sheet2!$F:$G,MATCH(D$3,Sheet2!$E:$E,0),ROW(A1)),"") これで、B3セルで本店コードを入力すれば関連する支店のコードがD3セルで選択することができ、選択した段階で瞬時に本店名や支店名が表示できるようになります。
- yosifuji20
- ベストアンサー率43% (2675/6115)
図が小さくて見えないので、一般論で答えます。 「本店コード」と「支店コード」で直接引くのではなくて、「本店コード」+「支店コード」 と言う擬似コードを作ります。 「本店コード」 A列 「支店コード」 B列 「擬似コード」 G列 とした場合 G2 =A2&B2 会社名と支店名のテーブルを別に用意します I列 擬似コード J列 会社名 K列 支店名 このテーブルをI列で昇順にソートしておき、答えの「会社名」と「支店名」(文字列)はVLOOKUP関数で擬似コードをキーにして検索します。 以上で目的の答えになると思いますが。