| すぐマク YNxv95914 | Home | Search | Contents | Gallery | Introduction | Service | Support | What's New! |
| セルの数式の計算結果が「1」になったら隣接セルに「2.3」とセットするには? |
|
|
|||
|
誠に申し訳ございませんが、こちらのページ でご案内していますとおりEメールでのご質問はお断りしています。 私宛に毎日たくさんのEメールが送られてきますが、このところ物騒な世の中になってしまってウィルス付きEメールが頻繁に混ざっています。 そのため、知らない人からのEメールは開かない場合があります。 そのかわり、そのページの左側でもご覧いただけますが、ご質問用のページを数々設けています。今後は各ページのルールに則ってご利用いただくようご協力願います。 ですが、ちょうど今、第71回 期間限定質問 の受付中ですし、「どうしてもマクロを組みたく」 とのことですので、以下に回答を作成しました。 ある表 ・ Sheet1 ![]() 「ある表」とは左図のようなものでしょうか? 「別のシート」 のイメージがご質問文だけでは掴みかねるので、ここでは、下図を使って説明します。 別のシート ・ Sheet2
C列のセルには計算式が入っています。C2セル … =A2/B2 C3セル … =A3/B2 C4セル … =A4/B2、以下同様 あなたがしたいことは、C列の各々のセルの計算結果が 「1」 になった場合だけ、隣のセル(左図ではD列の各々のセル)に 「2.3」 とセットするだけでよいのでしょうか? もし、それで良いのであれば数式で処理可能です。 左図では D2セルの数式だけしか見えませんが、これをコピーして D3:D7セルに貼り付けてあります。 回答は以上で終わりになりますが、ちょっと疑問に思うことがあります。 わざわざ 「ある表」 を用意した目的は何でしょうか? 「ある表」 の 2〜4行は何のためにあるのでしょうか? もしも、C列の商が「ある表」のA列に羅列された値と一致した場合に、対応するB列の値をセットしたいということであれば VLOOKUP関数で処理可能で、「別の表」の E2セルに下記のとおり数式をセットし、それをコピーして E3:E7セルに貼り付ければ出来上がりです。 =IF(ISNA(VLOOKUP(C2,Sheet1!A$1:B$4,2,FALSE)),"",VLOOKUP(C2,Sheet1!A$1:B$4,2,FALSE)) 少々数式がややこしいのは、商が「ある表」で見つからなかった場合、VLOOKUP関数はエラー値(#N/A)を返すので、IF関数と ISNA関数を組み合わせて "" をセットするようにしてあるからです。 くわしい解説が必要でしたら、下記のページを参考にしてください。 参考ページ ・ 指定された値から別表を検索して目的の値を取り出すには? ・ VLOOKUPで検索可能にするには? ・ VLOOKUP関数で出たエラー値#N/Aを0にするには? 「どうしてもマクロを組みたく」ということですが、このテーマは数式だけでも処理できそうですね。マクロが必要だとすれば、「別の表」の行数が増減するのでコピー貼り付けを自動化する、または、VLOOKUP関数式をマクロでセットする(上記参考ページの中に解説あり)くらいでしょうか。 では、ご検討ください。 |
| http://www.geocities.jp/happy_ngi/ | Home | Contents | Gallery | Introduction | Service | Support | What's New! |