• ベストアンサー

Excelで、ある条件下で表示切替

以下のような条件下で表示の切替ができるかどうかをお教えください。 シート1A1セルに入力された内容を判別して、A2セルに可・不可と表示させたいのです。A1セルは文字列の会社名で規則性はなく、数も100以上。4~5個くらいならばIF文で対応可能でしょうが、以前の経験から個数に限界があったように思います。 容易な改変も考慮して、シート2に会社名をまとめられれば有難く思います。 一例として、シート1A1セルに入力された会社名をシート2のC列1-100行~D列1-100行から検索して、シート2C列にあればシート1A2セルに"可"、シート2D列にあればシート1A2セルに"不可"、無ければ空欄となるようなニュアンスです。 当然、他の方法でもお教えいただければ非常に嬉しいです。ご教授いただきたく、宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.3

=CHOOSE((COUNTIF(Sheet2!C1:C100,A1)>0)+(COUNTIF(Sheet2!D1:D100,A1)>0)*2+1,"","可","不可") 一部計算式(範囲指定)が変でした。

その他の回答 (3)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

>シート2C列にあればシート1A2セルに"可"、シート2D列にあればシート1A2セルに"不可 この部分を シート2  A  B 会社名 状況 A社   不可 B社   可 ・・・ と一列にまとめてしまえば、変更になったときも楽ではないでしょうか。 A2の式は VLOOKUP関数で済みます。 =VLOOKUP(A1,シート2!A:B,2,FALSE) なければ空白というのであれば =IF(COUNTIF(シート2!A:A,A2),VLOOKUP(A2,シート2!A:B,2,FALSE),"") といった具合です。

sanakazu
質問者

お礼

早々の回答をいただきありがとうございます、失礼とは思いますけれども、こちらでまとめてお礼&結果報告させていただきます。 複数人で使用するフォームなため、各個人で会社名を手入力させると、正確に入力していない場合は正しく判別されないことから、リストで選択させるようにしました。会社名一覧に名前を定義して入力規則からリスト選択させ、#3で回答いただいた式を流用して判別結果を表示させるようにしました。 迅速な対応に感謝いたします、本当に助かりました。

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.2

=CHOOSE((COUNTIF(Sheet2!C1:AC100,A1)>0)+(COUNTIF(Sheet2!D1:D100,A1)>0)*2+1,"","可","不可") こんな感じでも可能かな

  • mako_sea
  • ベストアンサー率47% (62/130)
回答No.1

Sheet2のC列に「可」の会社リスト、 D列に「不可」の会社のリストと考えて良いのですよね。 以下の式ではどうでしょうか。 =IF(ISERROR(VLOOKUP(A1,Sheet2!$C$1:$C$100,1,FALSE)),IF(ISERROR(VLOOKUP(A1,Sheet2!$D$1:$D$100,1,FALSE)),"","不可"),"可")

関連するQ&A

  • エクセル 複数の条件に一致

    複数の条件に一致したセルの内容によって、別のセルに別の文字を自動で表示したいのですが可能でしょうか? 詳細はこのような形で、 【シート1】       A     B       C 1      0001     3/1    有 2      0002     3/1    無 3      0001     3/2    不明 【シート2】       A     B       C 1             3/1      3/2 2      0001       ○      △ 3      0002       ×     "空欄" ・シート2のB2からC3を自動で表示できるようにしたい。 ・シート1のA列とシート2のA列が一致、更にシート1のB列とシート2の1行が一致。 ・シート1のC列が「有」の場合「○」、「無」の場合「×」、「不明」の場合、「△」、「空欄」の場合、「"空欄"」と表示。 知りうる限りの関数を合わせてみましたが、できませんでした。 どなたかいい方法を教えて頂ければと思います。 環境はXPpro、エクセル2000です。 宜しくお願いします。

  • エクセルマクロで条件に該当する数値を探す

    エクセル初心者です。 シート1のA1~A18に1~18の数値がランダムに入っています。(重複した値は無し) シート2の3行目C3~T3にも1~18の数値がランダムに入っています。(空欄あり、重複した数値は無し) シート2の2行目C2~T2までは左から順に1~18の数値が入っています。(順位表示) 以上の条件下で下記の作業をマクロで実行させる式を教えてください。 シート1のA1~A18の値と同じ値を、 シート2の3行目C3~T3の中からどのセル(列)に入っているかを確認して、さらに該当する列の2行目C2~T2の値を、シート3の1行目A1~R1に表示させる。 例:シート1のA1=3、A2=2、A3=1の時、 シート2のC3=3、D3=1、E3=2でした。 シート2のC2=1、D2=2、E2=3です(この行の数値は毎回同じ) 上記の時シート3にはA1=1、B1=3、C1=2となります。 *シート1のA列A1~A18とシート3の1行目A1~R1の位置関係はリンクしています。(列→行) シート1 A列 1 3 2 シート2   A列 B列 C列 D列 E列 2行見出し見出し1  2  3 3行見出し見出し3  1  2 シート3 A列 B列 C列  2  1  3 ご理解頂けたでしょうか? 初心者ですので分かりやすい回答を宜しくお願いいたします。

  • エクセル関数 条件適合時にゼロ値を表示したい。

    エクセルの計算結果のゼロ値の表示方法について教えてください。 セルは、A列・B列・C列に各7行があります。 A1 B1 C1 A2 B2 C2 A3 B3 C3  ・  ・  ・  ・  ・  ・ と言う感じです。 A列とB列は任意の数値を入力し、C列は(A列-B列)の計です。 例えば、C列の計算結果として、次のように数字を表示させたいのです。     A列  B列  C列 1行   8   6   2 2行             (A列に未入力なので、C列にはゼロ値も表示しません) 3行   5   5   0 (計算結果として、C3にはゼロ値を表示します) 【A列に数値が入るかどうかは、その度に変わります。次の時にはB1せるにも数値が入る可能性があります】 C1セルに計算式を入力し、下のセルにはフィルドラッグで入力できるような式はあるでしょうか? よろしくお願いします。

  • エクセル データの入力規則

    いつも参考にさせていただいています A列B列はロックをかけず、C列D列はロックをし、シートの保護をかけています。 A3~A10 入力可 B3~B10 条件により入力可 C3~C10 入力不可 D3~D10 入力不可 C列D列は 一定の条件で保護を解除し入力しています。 B列の条件は、 入力規則で C列D列が空欄でないときは 停止のエラーメッセージが出るようにしていました。 通常に入力すると停止メッセージが出て入力が出来ないのですが、 貼り付け入力をした場合入力が可能となっております。 貼り付けなどでも入力が出来ないような設定方法 (入力をしようとすると、エラーメッセージが出るような)があればと思い、質問させていただきました。

  • 複数の条件によって表示させたい

    図のように結果を関数で表示させたい。 A列(正社員と嘱託の場合)BセルとDセルが一致していて、CセルとEセルも一致している場合は「前後○」と表示させたい。 A列(正社員と嘱託の場合)BセルとDセルが一致していて、CセルとEセルも不一致している場合は「後×」と表示させたい。 A列(正社員と嘱託の場合)BセルとDセルが不一致していて、CセルとEセルも一致している場合は「前×」と表示させたい。 A列(正社員と嘱託の場合)BセルとCセルがDセルが一致していて、Eセルが空欄の場合は○と表示させたい。 A列(パート)の場合はBセル、Cセル Dセル,Eセルが空欄でも〇

  • 条件一致した際、和を表示する。

    A1のセルに、 D5:D15のセルに『2008/8/1~2008/8/31』記入されていた場合 一致した行のC列の合計を表示させる場合どうしたら良いでしょうか。 ※ちなみにD列は、年月日が入力されているのですが年月だけの検索をさせてたいです。 A2は、『2008/9/1~2008/9/30』 例えば D6とD10とD11が、2008/8/2、2008/8/5、2008/8/10だったとします。 (他は、2008/9/1とか、2008/8/*ではない) すると、C6とC10とC11のセルの和が表示されるようにしたいです。

  • エクセルの使い方で困っています

                   A   B  C   D     1   a   b   c  空欄 上記のように1行目のA列にa, B列にb, C列にcというある数字が存在するときに、 aが正の値のときにD列の空欄のセルに値bを、 aがそれ以外(0か負)の値のときにD列の空欄のセルに値cを表示させたいとき、 どのように関数などを設定すればよいでしょうか? エクセル初心者なので、このような条件付き抽出の方法がよく分かりません。 よろしくお願いします。

  • エクセルでHLOOKUP関数の選択範囲について

    エクセルでHLOOKUP関数を使って、検索したいのですが、 シートは、一覧表のシートと データが入っているA101、B203、C305、...シートは300シートくらいあります。 一覧表のシートには、下のような表になっていて、      A列  B列  C列  D列 ...          1003、1004、1005、1006、... 2行目 A101  3行目 B203 4行目 C305       .       .       . データのはいっているシート、A101は下の表になっています。      B列 C列 D列、・・・、Z列 2行目 1004、1005、1006、... 3行目 100、 200、 150、... 一覧表のB列の2行目には HLOOKUP(B2、シートA2のB2:Z3、2行目、FALSE) という感じで、シート名をセルA2のものを参照にして 探して表示させ、B列、C列、D列の2行目から下の行も 表示させたいのですが、うめくできませんでした。 INDIRECT関数を使ってみましたが、セル範囲が無効という エラーがでてしまいます。↓こんな感じで入力してみたのですが... SUMPRODUCT((INDIRECT($A2&"!$B$2:$Z$3"))=$B$1,(INDIRECT($A2&"!$B$2:$Z$3"))) 1つづつデータを見て手打ちはデータが多く、 どんどんデータが増えていくので できれば関数を使って表示させたいと思っています。 詳しい方いらっしゃいましたら、どうか教えてください よろしくお願いします。

  • EXCEL 文字列条件抽出

    特定の文字列を検索条件として別シートに抽出する方法を御教授願います。 使用する関数はLEN,MID,LEFT,ISERR,もしくはワイルドカードなどを使用すればいいのかと考えておるのですがいまいちやりたいような数式を組めず悩んでおります。 やりたいことを言葉で表現するならば以下のような感じとなります。 「sheet1のF列に<107>という文字が含まれていた場合」 ・顧客別シートのD列に顧客ごとに分けて抽出 ・含まれていない場合、抽出しない と、単純なことなのです。が、制約がある為にうまくいきません。 制約は以下となります。 ・検索対象の文字列が以下のように決まった形ではない。 (1)A-BB-107○#----- (2)A-BB-107○#----- (3)ABB107○C #----- (4)ュウリABB-107○#----- (5)ュウリABB107○#----- (6)BB-107○C-D9#-----  など、その他にも数種類存在。(○部分には違う数字が入ります) ・上記でも分かるように<107>が始まる文字列の位置が決まっていない。 という具合です。 操作しているブック構成は下記のとおりです。 ・sheet1・・・参照用シート 4行目 /D列・・・顧客No / E列・・・顧客名 / C列・・・製品仕様 (A列,B列,G~AD列まで使用中) 5行目 / 1 / A / A-BB-107○#----- 6行目 / 2 / B / ュウリABB-107○#----- 7行目 / 1 / A / BB-107○C-D9#----- 8行目 / 3 / C / A-BB-107○#----- 9行目 / 3 / C / BB-107○C-D9#-----  10行目 / 4 / D / A-BB-107○#----- (会社のサーバーで管理している情報がそのままエクセルに打ち出されたシート。 情報量として約1000行ほど) ・sheet2,3,4,5(開始行,項目列は同じ位置)・・・特定の顧客別ごとに分け、特定の製品仕様だけを抽出したシート(参照用から引用)。 4行目/ B列・・・顧客No / C列・・・顧客名 / D列・・・製品仕様 5行目 / / A-BB-107○#----- 6行目 / / ュウリABB-107○#----- 7行目 1 / A / BB-1234C-D9#----- 8行目 / / A-BB-1115#----- 9行目 / / BB-107○C-D9#-----  10行目 / / A-BB-3498○#----- 特定の顧客NoをB列(一つのセルになってます。C列も同様一つのセルになってます)に入力すると、製品仕様すべてを抽出するように作成したシート。このシート内のG列から新たに表を作成し<107>の文字列が含む製品仕様を抽出しようと考えております。 出来れば、このような一度段階を踏んでから特定の仕様を抽出するのではなく各シートに対象となる顧客Noを入力すると特定の仕様が一回で抽出できるようなシートを作成したいのですが、関数初心者の為、うまく組めずこのような形となりました。(現在、参照用シートに作業列を作り対応。作業列ばかりが増えて正直困っているのも確かなのです) 【御教授頂きたいこと】 ・<107>の文字列を条件として別表に抽出する関数の数式 です。 また、出来ればでいいのですが、 ・顧客Noを入力すると特定の仕様が一回で別表に抽出できるような方法が御座いましたら、そちらも合わせてお願いしたいと思っております。 長々と書き綴り、大変申し訳御座いませんが、宜しくお願い致します。

  • Excel 任意の数値を上から順に参照、表示する方法

    図1   A B    C D 1   3    1 3 2 1 4 ⇒ 2 5 3   5 4 2 (1) 図1の様に、A列の任意のセルに入力された値を上から順に選択して、C列の1行目から表示させる方法 (2) 上記同様B列の任意のセルに入力された値を上から順に選択して、D列の1行目から表示させる方法、但しB列の左側に値が有る場合(図1の場合はB2セル)は次の値から参照する 以上2点の回答(C、D列に入力するべき関数)をお願いします。 ※A列及びB列には値が入らない(空白)場合もあります ※今回、関数のみでの回答を希望しております(マクロ不可) ※実際の表では選択と表示させるシートは分かれています 返答が一時遅れる場合も有りますがご了承下さい。

専門家に質問してみよう