• 締切済み

Excelのセルに式を設定

いつもお世話になってます win2000、Excel2000 以下のことは可能でしょうか? もしご存知の方がいらっしゃればご教授お願いします 例えば、セルA1、A2、A3に100、200、300と値が設定されていたとし セルのB1に「=ROUNDUP(100* 1.5, 1)」とあったとします ここでなのですが、B1内にある式をA1、A2、A3に反映させることは可能でしょうか? 結果として、     ↓ここはA列の値 A1は「=ROUNDUP(100* 1.5, 1)」 B1は「=ROUNDUP(200* 1.5, 1)」 C1は「=ROUNDUP(300* 1.5, 1)」 にしたいです。 宜しくお願いします

みんなの回答

回答No.3

まだよくわからん。 B1 にもともと入ってる式を元にする必要があるってことは、質問文に提示した "「=ROUNDUP(100* 1.5, 1" ってのも変更される可能性があるのかなぁ。 変更されるとすれば 100 のところだけでいいのかなぁ。。。 変更される可能性がないんだったらマクロの中で式をハード コーディングしちゃってもいいと思うんだけど。 Cells(1, 1).Formula = "=ROUNDUP(" & Cells(1, 1).Value & " * 1.5, 1)" Cells(2, 1).Formula = "=ROUNDUP(" & Cells(2, 1).Value & " * 1.5, 1)" Cells(3, 1).Formula = "=ROUNDUP(" & Cells(3, 1).Value & " * 1.5, 1)" もし B1 の式を利用しつつ、B1 の式の 100 の所だけを A1, A2, A3 の値に置き換えるだけってんなら、 Sub test() Dim anteriorHalf As String Dim lastHalf As String anteriorHalf = Left(Cells(1, 2).Formula, InStr(Cells(1, 2).Formula, "(")) lastHalf = Mid(Cells(1, 2).Formula, InStr(Cells(1, 2).Formula, "*")) Cells(1, 1).Formula = anteriorHalf & Cells(1, 1).Value & lastHalf Cells(2, 1).Formula = anteriorHalf & Cells(2, 1).Value & lastHalf Cells(3, 1).Formula = anteriorHalf & Cells(3, 1).Value & lastHalf End Sub とかみたいに面倒くさいしパッと見、意味不明なコードだし。

Tori_Mayo
質問者

お礼

お世話になります 返信遅れましてすみません やはり、マクロを組まないとダメですね 上記の内容を参考にさせて頂きます ありがとうございました

回答No.2

> B1内にある式をA1、A2、A3に反映 > A1は「=ROUNDUP(100* 1.5, 1)」 > B1は「=ROUNDUP(200* 1.5, 1)」 > C1は「=ROUNDUP(300* 1.5, 1)」 A1、A2、A3? A1、B1、C1 どちらが正しいのでしょう? セルA1、A2、A3に100、200、300 セルB1、B2、B3に =ROUNDUP(A1* 1.5, 1) =ROUNDUP(A2* 1.5, 1) =ROUNDUP(A3* 1.5, 1) と書くだけではだめなのでしょうか? あくまでA1,A21,A3に書き移すのでしょうか? それなら何かアクションが必要です。 アクションでVBA マクロを実行したらできます。 アクション ・ファイルを開くとマクロ実行 ・ショートカットキーを押すとマクロ実行 など マクロは例えば次の様に登録します。 セルA1、A2、A3に100、200、300が書かれた状態で 1.[ツール]→[マクロ]→[新しいマクロの記録] 2.ショートカットキーを適当に設定してOK 3.セルB1にROUNDUP(A1* 1.5, 1)と書く。 4. セルB1をコピーしセルB2,B3に貼り付け。 5.セルB1,B2,B3を同時に選択しカット。セルA1を選択。 6.[編集]→[形式を選択して貼り付け]で値にチェックをいれOK 7.[ツール]→[マクロ]→[記録終了] セルA1、A2、A3に100、200、300が書いた状態で ショートカットキーを実行すると A1、A2、A3に結果が写ります。

Tori_Mayo
質問者

お礼

返信ありがとうございます 記述ミスでした >「A1, B1, C1 に式を仕込みたい」 はA1,A2,A3です。失礼しました >=ROUNDUP(A1* 1.5, 1) >と書くだけではだめなのでしょうか? もともとA1に、B1の式だけを有効にしたいと思ってます >A1は「=ROUNDUP(100* 1.5, 1)」 結果がこのようになればと思ってます >それなら何かアクションが必要です。 そうですか。 マクロでの対応を行ってみようと思います 細かくご指導していただきましてありがとうございました

回答No.1

もともと B1 にある式と、A1, A2, A3 の関係がわかりません。 というか後半では 「A1, B1, C1 に式を仕込みたい」 と読み取れますが、これも関係が分かりません。 もし質問文が正しいのであれば、A1 と B1 は完全に式で上書きされちゃいますが。 補足して正確に教えてください。 一応、私なりの脳内解釈 1. A1, A2, A3 に入っている値を式に埋め込んでしまうパターン Cells(1, 2).Formula = "=ROUNDUP(" & Cells(1, 1).Value & " * 1.5, 1)" Cells(2, 2).Formula = "=ROUNDUP(" & Cells(2, 1).Value & " * 1.5, 1)" Cells(3, 2).Formula = "=ROUNDUP(" & Cells(3, 1).Value & " * 1.5, 1)" この場合、式を仕込んだ後に A1 の値を変更しても式の結果に変化はありません。 2. A列の値を式で参照するパターン Cells(1, 2).Formula = "=ROUNDUP(A1 * 1.5, 1)" Cells(2, 2).Formula = "=ROUNDUP(A2 * 1.5, 1)" Cells(3, 2).Formula = "=ROUNDUP(A3 * 1.5, 1)" この場合、埋め込んだ式は A1 ~ A3 を参照する式になっているので、後から A1 の値を変更すると式の計算結果も動的に変化します。

Tori_Mayo
質問者

補足

返信ありがとうございます 記述ミスでした >「A1, B1, C1 に式を仕込みたい」 はA1,A2,A3です。失礼しました >もともと B1 にある式と、A1, A2, A3 の関係 例題としてこのようにあげたので、B1のセル内の式が質問の様に設定できるのかという意味で書きました 脳内解釈なのですが、この式をマクロで組んでしまうと言うことでしょか? 宜しくお願い致します

関連するQ&A

  • Excel セル内の式

    Win2000 Excel2000 いつもお世話になっております A列に「○」と「×」の2種類の値が設定されます B列には手入力した、数値が入ります(ここに式は設定しません) 上記内容でデータがN件設定されます ルールとしましては A列が○の時B列の値はプラス A列が×の時B列の値はマイナスとなります 但し、B列にプラスやマイナスの記号は表示しません B列の合計をC1に式を組むことにより、求めたいのですが可能でしょうか? Ex) A列  B列    C1 = 25 ←(式により25を求めたいです) ○    10 ○    20 ×    5  ・    ・  ・    ・

  • Excelの非セル位置依存関数式の動作検証をお願…

    お世話になります。 MACOS10.12.3 Microsoft Excel for Mac 2011 Version14.7.2 です 同式を 異セルに、入れたところ 違う値が、戻され 困って、しまった の、ですが 此が、 当方環境依存の、動作か 普遍的、動作か 調べたく、思いました。 其処で、出来れば 以下に、ついて お付き合い、頂ければ 幸いです。 宜しく お願い、致します。 では、此所より =SMALL(INDIRECT("A"&((($B$2:$B$9=$F$1)*($C$2:$C$9=$F$2))*ROW($A$2:$A$9)+SIGN(($B$2:$B$9<>$F$1)+($C$2:$C$9<>$F$2))*20)),1) と、いう式を F4に、書き込み F5に、フィルし F6の、セル内に 文字列と、して 貼り付けた の、ですが 結果が、違っています。 なのですが ご覧、頂ける 通り そもそも 同じ式、なので 当然ながら スコープも、変わりません しかし、 何度も、申します通り 結果が、変わります。 此は 私の、環境の 固有の、問題 なのでしょうか? 出来れば より多くの、Version での、検証が 叶えば… と、考えております。 ご協力の、程を 宜しく お願い、致します。 通報する

  • EXCELの関数式内に他のセルの値を取り込む方法?

    EXCEL2002、OSはWIN XPです。よろしくお願いします。 セルのA1にランダムな数字が入ります(実際はマクロでシートの最下行が書き込まれるようになっています。) セルのB1に以下のような式で「xx」の部分にA1の値を入れたいのですが、どのようにすればよいのでしょうか? =countif(C1:Cxx,"") つまりセルB1にはC1からその時使用されている最下行までの空欄セル数を常に表示したいのです。マクロでやれば簡単だと思いますが、できれば関数で表示させたいと思っています。よろしくお願いします。

  • エクセル”検索条件はセル内のあいまい値”

    どうにも検討がつかず調べても対応したものができないのでお力添え願います。 D列に”A”と入力し、C列へ「D列のセル値が含まれた場合C値からB値をマイナスし それ以外は上のセル値を反映させる」としたいのですがどうするのがいいでしょうか。 直接値を指定してあいまい検索は『=IF(COUNTIF($A2,"*A*"),C1-$B2,C1)』でできたのですが この "*A*" 部分を”B”というときもあるのでD列のセル値であいまい検索としたいです。 A列の値は以下のように”A”の後ろに複数の数字がつくことがあります。 A列 A2 A3 B4 B3 B4 A2 A4

  • 複数の条件に合う行の特定のセルを返す

    ほぼ同じ質問をいくつか見かけたのですが、その式を自分の内容に置き換えても全く希望通りの結果が出ず、質問させてください。 2 1 Aさん 4 1 Bさん 5 1 Cさん 2 2 Dさん 5 2 Eさん セルのA1には「2」、B1には「1」、C1には「Aさん」と入ったシートがあり、例えばセルのD1に A列、B列ともに「2」が入力されている4行目のC列「Dさん」という値が反映して欲しいのですが、その関数が分からなく困っています。 他にもA列が「5」、B列が「1」の結果が(Cさん)が欲しい時もあり、条件にはA列の値とB列の値を使う方法で考えています。 お知恵を貸してください。

  • 関数の結果を""ではなく設定されていないセルにしたい

    EXCEL2000を使用してます。Sheet1シートのA列のセルには、値(文字数値)が設定してあって、B列のセルで以下のような関数を設定してあります。 たとえばB10セルの場合、 =IF(A10="","",T("2"&TEXT($B10,"0000")) A列に何も値がない場合、B列には何も表示されないのですが、Sheet1をSheet2へ「形式を選択して貼付け」→「値」をした場合、B列に""が結果として設定されたセルに何かの値が残っているようです。(A列は改行等の制御文字はありません。)CSVファイルに出力してテキストエディタで参照すると半角スペースのように見えます。貼付け時に「空白を無視する」をチェックしても何かの値がセルに残っているようです。Sheet2にコピーしたときに関数で設定されたセルを何も入力されていないセルにする方法をご教授願います。

  • 【エクセル】あるセルの値次第で別セル上の式を変える

    エクセルで質問でございました。 例えばセルA・Bの2つがあり、 セルAの値(もしくは文字列)がxxxであればセルBの式は”式α” セルAの値がyyyであればセルBの式が”式β” といったようにすることは可能なものでございましょうか? 5個ほど選択できるようにしたいと思っております。

  • エクセルで(A1:C1)のセルにD1をかけるには

    例えばA1,B1,C1のセルが以下のようになっていて、  [ 20 ][ 30 ][ 40 ] D1のセルに式を書く事で、A1,B1,C1の表示を10倍にしたり20倍にしたりしたいのですが、  [ 200 ][ 300 ][ 400 ][ 式 ] (10倍の例) そのような事は可能ですか。 A1,B1,C1セルには値だけが書かれていて、これらのセルは変更したくありません。 D1の式を弄るだけで、A1,B1,C1の値が指定した倍率になって表示されるようにしたいです。 D1の式を削除すれば、元通り[ 20 ][ 30 ][ 40 ]が表示されてほしいです。 D1にかける数を入れておいて、各セルに[ =20*D1 ][ =30*D1 ][ =40*D1 ] とするのは避けたいです。 (このような列がたくさんあるので) よろしくおねがいいたします。

  • Excelの入力式について

    Excelの入力式について教えてください。 たとえば、A1セル~F1セルに数値が入っていて、G1セルA1+B1の値、H列にC1+D1の値 I列にE1+F1の値としたい場合、 G1セルに数式を入れてH列にコピーするとB1+C1になってしまいます。 上手くやる方法はないのでしょうか。 1列ずつわざわざ空白列を作るのは嫌ですし、たくさんあったら数式を打ち込むのも大変です。。。

  • 式の入ったExcelのセルについて

    お世話になっております。 http://okwave.jp/kotaeru.php3?q=2297836で質問したのですが、 1つのセルに2つのセルの内容を入れることができました。 例えばA1とB1の内容を合わせて、C1に入ったとします。 その後にA1とB1の列を削除しなければならなくなったのですが、 削除するとC1には式が入っていたので、表示されなくなってしまいます。 A列とB列を削除してもC列の表記はそのままというやり方はあるのでしょうか? よろしくお願いします。

専門家に質問してみよう