• ベストアンサー

多数の計算セルに一括で同一の関数を追加したい

エクセル2007で、 A1:=X/Y A2:=S/T A3:=A/B といった、すでに数式の入力されたセルに、 A1:=round(X/Y,3) A2:=round(S/T,3) A3:=round(A/B,3) となるようRound関数を追加したいのですが、手入力でコピーアンドペーストする以外に何か方法はあるでしょうか? 後々に計算が続くため、出来れば「B1=round(A1,3)」の様なやり方は避けたいと思っています。 置換でまずroundを追加しようとしても、括弧が対応していないとエクセルに怒られました。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 以下の様に操作されると宜しいかと思います。 A1~A3の範囲をまとめて範囲選択   ↓ Excelの置換機能を使用して、A1~A3の範囲内にある全ての「=」(鉤括弧は不要)を「 =」(「『空白+『=』」、鉤括弧は不要)に置換   ↓ 適当な未使用の列(ここでは仮にB列とします)の1行目のセル(B1セル)に次の関数を入力 =REPLACE(A1,2,1,"=ROUND(")&",3)"   ↓ B1セルをコピーして、B2~B3の範囲に貼り付け   ↓ B1~B3の範囲をコピー   ↓ A1セルを右クリック   ↓ 現れた選択肢の中にある[形式を選択して貼り付け]をクリック   ↓ 現れた「形式を選択して貼り付け」ダイアログボックスの中にある「値」と記されている箇所をクリックしてチェックを入れる (或いは、「貼り付けのオプション」の中にある「123」と記されたアイコンをクリック)   ↓ 「形式を選択して貼り付け」ダイアログボックスの[OK]ボタンをクリック   ↓ A1~A3の範囲をまとめて範囲選択   ↓ Excelの置換機能を使用して、A1~A3の範囲内にある全ての「 =」(「『空白+『=』」、鉤括弧は不要)を「=」(鉤括弧は不要)に置換  以上です。  列記しますと長くなりますが、それほど複雑な操作では御座いません。

DICEKE3
質問者

お礼

試してみましたが確かに簡単で、ちゃんと意図通りの結果になりました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.4

こんばんは。 置換を使ってROUND関数を追加するのはまぁどうにかなりますが、問題は置換を使って最後に「)」を追加する方法が無いってことです。 限定的ですが一応可能な手順: いまシート1にそういう数式が並んでるとして A1:A3をコピーする シート2のA1に「形式を選んで貼り付け」の「数式」にマーク、「加算」にマークして貼り付ける シート2で =0+ を ROUND にすべて置換する ) を ,3) にすべて置換する ROUND を =ROUND にすべて置換する。 #言わずもがなですが、元のセルに記入されている具体的な内容に応じて実際の工夫が必要です。

DICEKE3
質問者

お礼

「別シートにコピーした後に戻す」と「一度目の置換で式ではなく文字列化する」で問題をクリアするところに目から鱗が落ちました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

そのA列は計算に使わない? 表示だけそれらしい結果になればよいなら、 A列で「=」を「=4/10000+」に置換し、表示を小数点以下3桁表示にする、、、

DICEKE3
質問者

お礼

後に計算で使う上、丸め誤差を統一するためにroundする必要があったため、ご教授の方法は、、、

全文を見る
すると、全ての回答が全文表示されます。
  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.2

簡単な方法です。 隣に作業列を挿入して、その1行目のセルに、=Round(A1,3)と入力して、下へ必要な行だけオートフィルコピーします。 次に、元の列を非表示または削除します。

DICEKE3
質問者

お礼

A1-A3を参照するセルが以降に続くため、出来れば別セルでのround(A1)は避けたいと注記したのですが、やはりこれが一番簡単といえば簡単ですよね。

全文を見る
すると、全ての回答が全文表示されます。
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.1

マクロを少し使うとかなり楽ちんです。 ひとまず、とっかかりだけ紹介。 Sub test()   With Range("A1")     .Value = "=ROUND(" & Mid(.Formula, 2, Len(.Formula)) & ",3)"   End With End Sub A1セルの数式に文字列を足すマクロです。

DICEKE3
質問者

お礼

そう何度も遭遇する事態ではないのでマクロは意識の外だったのですが、案外簡素に出来そうなのでショートカットにでも登録して今後も活用しようと思います。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ExcelのROUND関数を一括解除したい。

    ExcelのROUND関数を一括解除(削除)したいのですが、 やり方を教えてください。 具体的には、 以下のような計算式 =ROUND('収入データ'!A176/'収入データ'!A181,3) を ='収入データ'!A176/'収入データ'!A181 にしたいのです。 sheet内の表中あちこちに、 =ROUND('収入データ'!A26/'収入データ'!A31,3) =ROUND('収入データ'!A56/'収入データ'!A61,3) =ROUND('収入データ'!A86/'収入データ'!A91,3) などのROUND関数が設定されています。 置換で、*や?を使って試してみましたが、 「入力した数式にはエラーがあります。」という エラーメッセージが出て、うまく実行できません。 そもそも置換機能では一括解除(削除)できないのでしょうか。 以上、よろしくお願いします。

  • エクセルでセルの値によって数式を変えたい

    エクセル2003を使用しておりますが、セルの値によって数式を変えることはできますでしょうか。 例えば A1に切り上げの文字が入っていれば、B1はROUNDUP(100/3,0)に、 A1に切り捨ての文字が入っていれば、B1はROUNDDOWN(100/3,0)に、 A1に四捨五入の文字が入っていれば、B1はROUND(100/3,0)に、 のようにしたいです。 IF文を使えばもちろんできるのですが、すでに指定されている多数の 数式を、一括で置換したいと思っております。

  • EXCEL IF関数 AND、OR関数

    数式がわからず、お力添えください。 以下の「D」の「○」「×」を数式で入力するのが目標です。 数式で表すことができますでしょうか? 条件としましては、 B>Cのとき、Aの文字列が「X1またはX2」の場合は、「○」、それ以外は「×」 C>Bのとき、Aの文字列が「Y1またはY2」の場合は、「○」、それ以外は「×」 それ以外のとき、(B=C,どこかが空白のとき)は、空白  A  B  C  D  X1 37 63 ×  X2 78 22 ○  Y1 45 55 ○  Y2 29 71 × ご教授お願いいたします。

  • エクセルのことで質問いたします。既にセルに入力された数式に、マクロでIF関数を一発追加することは可能でしょうか?

    エクセルで質問です。どなたかご教授ください…。 既にセルに入力された数式に、マクロでIF関数を一発追加することは可能でしょうか? =B6*10 という数式が入力されているセルを、ボタンひとつで =IF(B6=0,”” ,B6*10) という具合にしたいのです。 相対参照でどのセルにでも効くマクロ、もしあれば教えてください。

  • 金利計算について

    金利・月数・元金から毎月の掛金を求める数式があります。 掛金=元金(月利(1+月利))÷((1-(1+月利)^-月数)(1+月利)) そこから金利・元金・月額から月数を求める数式に変えたいのですが、数学に暗くうまくできません。 当方社会人ですが、情けない事に中学レベルの数学で悩んでいます。 持てる知識を総動員して下記までやったのですが・・・ 元金 a  月利 b 月数 x 掛金 y y=a(b(1+b))÷((1-(1+b)^-x)(1+b)) y=a(b+b²)÷ ((1+b)(1-(1+b)^-x)) y=(ab+ab²)÷((1+b)(1-(1+b)^-x)) ※^はべき乗です。Excelでやってるもので・・・ 掛金(y)イコールを月数(x)イコールの数式にしたいのですが、お助けください。

  • エクセルのIF関数とVLOOKUP関数について教えてください。

      A B C 1 A1 B1 C1 2 A2 B2 C2 ・ ・ ・ 上記のような表があり、セルX、Yに入力した値が2つの条件に合致した場合、セルZにC列の値を返すような数式を作っています。 たとえば、セルXの値がA1より小さく、かつ、セルYの値がB1より小さい場合にはセルZにC1の値を表示する、という数式を作りたいのです。 (ちなみにAn、Bn、Cnにはそれぞれ数字が入ります) =IF(AND(X<=A1,Y<=B1),C1,IF(AND(X<=A2,Y<=B2),C2,・・・ AND関数を利用してこのように数式を入れると、途中まではうまくいくのですが、引数が多いため途中からエラーが出てしまいます。 (引数の数は10個以上あります) IF関数とVLOOKUPを組み合わせればいいというところまではわかるのですが、どのように条件設定をすればいいのかがわかりません。 エクセル初心者で恐縮ですが、どなたか詳しい方いらっしゃいましたらご回答よろしくお願いいたします。

  • IF関数以外の関数で条件付けしたいです。

    ある値Xがあって、X<=aの時F(y), a<X<=bの時G(y), b<X<=cの時H(y), c<X<=dの時I(y),……と入力したいのですが、IF関数を使用すると、括弧がいっぱいになって大変です。何か他に良い関数はありませんか?

  • エクセルでセルの結合について

    Excel2000を使用してます。 A列B列C列に入力した文字をD列に全て表示させたく、 下記のようにしました。   A列  B列  C列   D列     あ   い    う    あいう(計算式を=A1&B1&C1)   か   き    く    かきく(計算式を=A2&B2&C2)   上記のように、計算式を入れて希望通りの文字表示は 出来るんですが、それをメモ帳などにペーストすると "あいう" "かきく" のように"が入ってしまいます。 置換によって取ろうとしますが、エクセル上では該当がありませんとなります。 メモ帳に一旦ペーストして置換すると、”は取れますが、 横列も長い為エクセルにペーストし直すと、一つのセルに入らず、 複数の行に分かれてしまいます。 ””が入らずに、一つのセルに結合の値を出すには どうしたらよいのでしょうか?

  • Excel計算式

    Excelで以下の計算を行いたいのですが、  b=X/2+a*sinh^(-1)(Y/(2a*sinh(X/(2a))))  bを"A1"として、=X/2+a*sinh^(-1)(Y/(2a*sinh(X/(2a))))を計算式として入力したのですが、エラーになります。 どのように、入力したら良いのでしょうか?

  • エクセルで数式が入ったセルを空白にしたい。

    エクセルで数式が入ったセルを空白にしたい。 A1に"100"と言う数字、 B1はA1と同じ数値を自動入力させているので"=A1"という式が 入ってます。このB1の数式をB2からB10までコピーしているのでA2からA10に入力した数値が 反映されます。しかしA列にはいつも数値が入力されているわけではなく空白にする場合もあります。 でもB列の数式はコピーされてるので"0"が残ります。 そこですべて入力終了後にこのB列に自動で入力された"0"を削除したいのですが 置換で"0"にしても入ってるのは数値じゃなくて数式なので該当なしになるし、 数式も列ごとに移動されてるので一定ではありません。 この"0"を一括で削除するにはどうすればいいでしょうか? 入力範囲は500行まで及ぶのでいちいち"0"を探して削除するのが大変です。 分かりにくい質問ですいませんがよろしくお願いします。

VBAでOutlook365が起動しない
このQ&Aのポイント
  • VBAでOutlook365が起動しない原因や対処方法について教えてください。
  • メール一括作成のボタンを押してもOutlook365が起動せず、メッセージが保存されません。Excelのマクロは正常に動作しています。Outlookのセキュリティ設定も有効です。何か問題があるでしょうか。
  • ExcelのVBAからOutlook365を起動する方法を教えてください。メール一括作成のために必要です。
回答を見る

専門家に質問してみよう