- ベストアンサー
EXCELで入力された式の値を求めて自動計算する方法
- EXCELで入力された式の値を求める際に、数式や関数を使用する方法について説明します。
- 数式を使用してデータの値を計算し、自動的に結果を求める方法や、VBAを使用して式を自動計算する方法についても解説します。
- また、マッチ関数を使用して数式の値を取得する方法や、VBAを使用して数値を入力すると自動的に計算結果を得る方法についても紹介します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
B10以下には「2/1」のように『割り算』しか入らないとします B10以下に「2/1」のように記入するため,B10以下のセルは「文字列」の書式設定を施しておきます またB2以下の1,2,3の番号も,「文字列」の書式を付けた上で1,2,3の番号の数字を改めて記入し直しておきます。(必ず行う) #ご利用のエクセルのバージョンが不明ですが,「緑の▼」が表示されて目障りなときは,セルを選んで表示される「黄色い!」からエラーチェックオプションで「文字列として保存されている数値」のチェックを外す ふつーに/の前後で番号の数字を切り分けて該当する値を参照し,割り算する: C10に事前に「数値」などの書式を設定してから次の式を入れること =IF($B10="","",VLOOKUP(--LEFT($B10,FIND("/",$B10)-1),$B$2:C$8,COLUMN()-1,FALSE)/VLOOKUP(--MID($B10,FIND("/",$B10)+1,9),$B$2:C$8,COLUMN()-1,FALSE)) 右に下にコピーする #補足 前段にごちゃごちゃ書いた説明をキチンと行っておけば,アナタが当初考えて失敗した式でも計算できたと思います。
その他の回答 (3)
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えばC3の値は=MATCH(LEFT(D34,SEARCH("/",D34,1)-1),D1:D23,0))の式ですと、この式が正しいとしてもその数値がD1からD23の間で検索されその時の行番号を求めることになるのですが、それでよいのでしょうか? お示しの表ではC3セルの値は0.3となっていますがよいのですね。 ただ行を求めるといってもお示しの式ではD1セルからD23セルの範囲に文字列があるのでしたらエラーとはなりませんが、数値の検索となるのでしたら式そのものを次の式に変えることが必要ですね。 =MATCH(LEFT(D34,SEARCH("/",D34,1)-1)*1,D1:D23,0)) 式では*1とすることで文字列を数値に変換しています。 なお、ご質問の意味がC10からE10さらにその下方に入れる式をご質問でしたら次の式をC10に入力してE10セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグすればよいでしょう。 =IF($B10="","",INDEX(C$1:C$9,MATCH(LEFT($B10,FIND("/",$B10)-1)*1,$B$1:$B$9,0))/INDEX(C$1:C$9,MATCH(MID($B10,FIND("/",$B10)+1,10)*1,$B$1:$B$9,0)))
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
>=MATCH(2,D1:D23,0)だと大丈夫なのですが・・・。 なんでD列なのだろうと思いつつ E34セルに =IF($D34="","", INDEX(E$2:E$23,LOOKUP(100,LEFT($D34,{1,2})*1)) /INDEX(E$2:E$23,LOOKUP(100,RIGHT($D34,{1,2})*1))) 右へ下へオートフィル 2桁限定。 D列が連番でないなら =IF($D34="","", VLOOKUP(LOOKUP(100,LEFT($D34,{1,2})*1),$D$2:$G$23,COLUMN(B34),FALSE) /VLOOKUP(LOOKUP(100,RIGHT($D34,{1,2})*1),$D$2:$G$23,COLUMN(B34),FALSE))
- mu2011
- ベストアンサー率38% (1910/4994)
被除数・除数をセル分割すれば簡単な関数でも出来ますが如何でしょうか。 例えば、データ範囲をB2:D4として、A10以下に被除数、B10以下に除数とすると C10に=INDEX($B$2:$D$4,$A10,COLUMN(A1))/INDEX($B$2:$D$4,$B10,COLUMN(A1)) として縦横にコピー
お礼
希望の値を得ることが出来ました。 ありがとうございました!