- ベストアンサー
入力セルが○○の時に計算される値を書き出す
お世話になります。以下、もし可能ならVBAを使わずにできる方法があれば(簡単ならVBAでも)、ご教示いただけると大変助かります。 47都道府県の各都道府県と他のどの都道府県が最も似ているかを見つけるに当たり、人口、面積の広さ、県民所得などいくつかの数値を基準に探します。たとえば、京都と似たものを探す時、他の46都道府県の人口、面積、所得と、京都の人口、面積、所得の差の二乗の和が最小になるものを類似都道府県とします。具体的には(人口差の2乗+面積差の2乗+所得差の2乗)÷3。数値はそれぞれ基準化しておきます。 一つの列(A列)で二乗和を求めて、最小値を探し出し、その値に該当する都道府県を表記するところまでは来ました。 47の都道府県に対し、47の答えを出すには47回インプットセルに入力して出てきた結果をコピペするか、47の列を作って解決するかのどちらかですが、できれば一つの列で計算をし、京都の場合に山口となるなら、都道府県を書いた別の列の「京都」の隣の列に「山口」が記入されるような形にしたいと思っています。 と言いますのは、本当にやりたい分析は、約1000のものに対して、それぞれ1000の答えが出てくるので、個別に列を作ってやる場合は1000列作る必要があるので、できれば避けたいと思っています。 「入力セルが○○の時に計算される値を書き出す」、というイメージで、もしWhen関数なるものが存在するなら、そういうイメージです。if関数、match関数などで何とかできないかと画策しましたが、うまく行っていません。 分かりにくくて恐縮ですが、よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
お礼
ありがとうございます! ビンゴで出ました!感激です。これで睡眠時間が確保できそうです。 しかも、分かりやすい関数のご説明、ありがとうございます。完全に構造を理解することができて助かります。今後、いろんなことに生かせそうです。 ちなみにですが、1,000行x4列の中に空白行が含まれている場合には#valueとなってしまいますが、空白行が含まれている場合でも計算できたりするものでしょうか?