Excel2007を使用して、特定の条件に応じて計算式を変える方法を教えてください

このQ&Aのポイント
  • Excel2007を使用して、特定の条件に応じて計算式を変える方法を教えてください。
  • 例えば、C列の値によってE列の計算式を変えたい場合、国AならE列にB列の数字×1.50、国BならE列にB列の数字×2.00というように条件を設定します。
  • データが数百個ある場合は、マクロを使って作業することが効率的です。Visual Basicを使用して、条件に応じた計算式を自動的に適用するマクロを作成することができます。
回答を見る
  • ベストアンサー

文字によって計算式を変えたい

excel2007を使用しています。 ある列の文字によって計算式を変えたいのですがどのようにしたらよいか教えて頂けますでしょうか? 例えば A列 B列 C列 D列 E列 9/18 100 国A 車  9/17 500 国B 野菜 のようなデータが数百個以上あります。 C列が国AならE列にB列の数字×1.50 C列が国BならE列にB列の数字×2.00 このようにC列の文字によってE列に計算させる式を変えたいです。 国Aから国Gまであるので7種類あります。 データが数百個あるので、マクロを使った方が良いのでしょうか? マクロであれば、VisualBasicを開いて教えてもらったソースを貼りつけて実行するくらいしかできません。 恐れ入りますが、わかる方教えて頂けますでしょうか?

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

どこかに国名と倍率の表を作ってください。 E3=B3*IFERROR(VLOOKUP(C3,表の座標,2,FALSE),0) でできます。 表の座標は、絶対座標にするか、名前付けした名前にしてください。

itatwaok
質問者

お礼

他の方の方法でもみな上手くいったためどのようにベストアンサーを選べばよいのか非常に悩ましいのですが、一番先に回答頂いたmshr1962様を選ばせて頂きました。とても助かりました。また宜しくお願い致します。

その他の回答 (3)

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.4

E1: =B1*VLOOKUP(C1,G$1:H$7,2,FALSE)

itatwaok
質問者

お礼

画像付きで回答ありがとうございます。 教えて頂いた方法でもできました。わかりやすく教えて頂きありがとうございます。

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.3

E列に、こんな関数を埋め込んでみてはどうでしょう。 =IF(C1="国A",B1*1.5,IF(C1="国B",B1*2,"以下同様"))

itatwaok
質問者

お礼

回答ありがとうございます。 国の数が7個あり、ちょっと大変そうですね。 でもいろいろな方法を教えて頂きありがとうございます。

回答No.2

次のような方法ではどうでしょうか? 1) 表をもう一個作成します F列  G列  (※別シートまたは元のシートの邪魔にならないところ) 国A  1.5 国B  2.0 国C  2.5 国D  3.0 国E  3.5 国F  4.0 国G  4.5 その上で、E列に以下のように入れます。 =$Bn*VLOOKUP($Cn, $F$1:$G$7, 2, FALSE)

itatwaok
質問者

お礼

回答ありがとうございます。 $Bn、$Cnのままだとエラーになってしまいました。nを数字に直すとうまくいきました。数字に直さなくてもうまくいくものなのでしょうか。。。 いずれにせよ、目的のことが出来ましたのでありがとうございます。

関連するQ&A

  • Excel2007のマクロで文字列を結合

    Excel2007のマクロで文字列を結合したいのですがうまくいきません。 1、セルA1からU1までデータが1つずつ入ってます。 2、1のデータを3列ずつ結合してA3からG3にコピー。 例えば、セルA1あ、B1い、C1う、D1え、E1お、F1か、ならセルA3あいう、セルB3えおか、のようにマクロで一機にできるソースをお願いします。

  • Excel2007のVBAで文字列を結合

    Excel2007のマクロで文字列を結合したいのですがうまくいきません。 下記がお題になります 1、セルA1からU1までデータが1つずつ入ってます。 2、1のデータを3列ずつ結合してA3からG3にコピー。 例えば、セルA1あ、B1い、C1う、D1え、E1お、F1か、ならセルA3あいう、セルB3えおか、のようにマクロで一機にできるソースをお願いします。

  • <文字列マクロについて>

    <文字列マクロについて> 皆さま お力を貸して下さい。 初心者で、何もわからず書いておりますがすみません。 下記の2つのマクロを教えて下さい。 ?横に並んだ「ある行」に在るデータを「列」に変換し、  指定した数だけ並べる    あいうえお    ←A1セルからE1まで5列(これは状況により変わる)       ↓(マクロ実行:3行同じ数だけ並べるという指定)  あ        →A1セルから下にひたすら、同じ文字が続き順に並ぶ  あ  あ  い  い  い  う  う        →A1セルから下に並べる(3行は指定できれば別の数字にも変えたい  う  え  え  え  お  お  お ?規則的に並んだデータのまとまりをセットで移動する。  例だと5つの塊(これは変数とおきたい)    あ A              a  い B              b  う C               c   え D               d  お E              e    ↓(マクロ実行)  あ  い  う  え  お  A  B  C  D  E      ・  ・  ・  ・    a b c d e    

  • Excel2007のマクロで文字列を分解

    Excel2007のマクロで文字列を分解したいのですがうまくいきません。 1、セルA1からU1までかそれ以上にデータが3つずつ入ってます。 2、1のデータの1つずつをを3列ずつに分解してA3から列上にコピー。 例えば、セルA1あいう、セルB1えおか→ならA3あ、B3い、C3う、D3え、E3お、F3か という具合に。だれかお願いします。

  • エクセルで文字列の計算をしたいのですが。

    エクセルで文字列の計算をしたいのですが。 セルの表示は文字列ですが、実際のデータは数字(だけ)が入っています。 これを計算する事は可能でしょうか?。 例えば A1セル:00001 と入っていて B1セルには、A1セル+1=00002 とさせたいのです。 よろしくお願いいたします。

  • エクセル(excel)の計算式(関数)について

    エクセル(excel)の計算式(関数)でよいアイディアがありましたら教えてください。 1行目は項目行です。 セルA1から右に15列=セルO1まで、 a | b | c | d | e | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 と入っています。 2行目からデータとして、 セルA2から右に5列=セルE2まで、 4 | 2 | 2 | 1 | 1 と入力したとします。(データ例(1)) あるいは、 セルA3から右にセルE3まで、 6 | 3 | 0 | 0 | 0 と入力したとします。(データ例(2)) 1つのデータの5個の数字のルールは2つで、 「合計で10以下である。」 「左から順に小さくなるか、同じ数字となる。」 です。 (目的は、) このとき、F列からO列にかけて、 データ例(1)のケースでは、 a | a | a | a | b | b | c | c | d | e データ例(2)のケースでは、 a | a | a | a | a | a | b | b | b | と表示されるように、 つまり、項目行の下にある数だけ、その列の1行目の記号を 1(F列)から右に向かって順に埋めていくような、 F列からO列までの2行目以下に入れる適当な計算式(関数)は ないでしょうか。 拙い説明で申し訳ありません。どなたかよい考えをお持ちの方がいらっしゃいましたらと存じます。 どうぞよろしくお願い致します。

  • Excel2010で日時にする計算

    Excel2010で数字を日時にする関数の計算方法を教えてください。 例えば、左のA1から順に年、月、日、時刻です。これをE1に「2011/1/5 0:00」のように表示したいです。 A1  B1 C1 D1 2011 1  5  0:00 文字列形式ではできるのですが、日付形式ではうまくいきません。 回答よろしくお願いします。

  • 特定の文字の時だけ計算されます。

    リストから選択し計算させるようにしているのですが、「3φ3W」だけが計算されます。 他は計算されないのです.....なぜ??? 文字列の大文字小文字にも気つけましたが解消されず。 お力添え宜しくお願い致します。 =IF(E2="","",ROUND(IF(A2="1φ2W",(2*C2*B2*E2)/1000,IF(OR(A2="1φ3W",A2="3φ4W"),(1*C2*B2*E2)/1000,IF(A2="3φ3W",(1.73205*C2*B2*E2)/1000))),2)) 他に良い方法が有ればご教授頂ければ幸いです。 宜しくお願い致します。

  • 文字だけ残して数字だけ消す

    Excel2003 VBAで文字だけを残して数字だけを消す方法を色々と考えたのですが 上手くマクロが作れずにおります。 例として、 A列    B列  C列 7月1日  東京  ABCDEF123456GHIJK のような、C列の部分のみ、文字と文字の間にある数字の部分だけを消したいのです。 理想的な結果としては 7月1日 東京 ABCDEFGHIJK という状態にしたいのですが可能でしょうか? ctrl+Gでは、全部消えてしまって困っています。 以上、宜しくお願いします。

  • 行列データ?の文字列操作についてです。

    行列データ?の文字列操作についてです。 ----------------------------------------------- ID A B C D E 1 1.5 1.1 a 6 2 7.4 b 1 3 7.2 c 1 4 3.2 3.1 a 1 5 1.9 1.6 a 4 6 4.0 d 3 8.0 (上手く張れませんので、画像ファイルをつけました。 実際のデータはこのようにtabが入っています。) ----------------------------------------------- 上記のような文字列?をテキストボックスのようなところに入力(ペースト)し、 変換ボタンを押すことにより、 変換後文字列 1.1-1.5(6, a), 1.6-1.9(4, a), 3.1-3.2(1, a), 4.0(3, d, 8.0), 7.2(1, c), 7.40(1, b) と変換させたい。 行っていることは下記になります。 1、B列の数字が入力されていて、A>Bの時にはAとBを入れ替える。 2、A列の数字で昇順でソートする。 3、B列の数字が入力されているものは「A-B」とする。 4、それぞれの行を「A-B(D, C,E)」として「,」でつなぐ。 今回文字列の例として6行のものを示しましたが、行数は増減します。 列はE列まででこちらは増減しません。 Excel VBAを用いて行っているのですが、javascriptで組みたいと考えています。 可能なものでしょうか?

専門家に質問してみよう