• ベストアンサー

【関数】セル全体に式をコピーしたい場合

例えばセルH2に100(本体価格)、セルI2にH2の8%を反映させたい場合の式は以下ですが =IF(H2="","",INT(H2*1.08)) I列全てに反映させたいのですが、I列全てを選択したあと、この式を入力(して列全体に反映)するにはどうしたらよいのでしょうか?

noname#206454
noname#206454

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! >I列全てに反映させたいのですが Excel2007以降の場合は最終行は104万行を超えてしまいます。 実際問題としてそこまでの数式は必要なのでしょうか? すでに回答されている方法で可能だとは思いますが、おそらくかなりの時間を要し「応答なし」になってしまうのでは? そこで余計なお世話かもしれませんが、仮に10000行まで数式を入れたい場合は J列を使用している場合はJ列を挿入 → J2セルに 「2」と入力 → 画面左上のフィルのアイコン(Σのアイコンの下にある下向き矢印のアイコン)をクリック → 連続データの作成 → 「列」を選択し「停止値」に 10000 と入力しOK これで2~10000の連番が表示されます。 その後I2セルのフィルハンドルをダブルクリックしてみてください。 これでI2~I10000セルまでオートフィルでコピーした状態になります。 最後にJ列を削除して完了です。m(_ _)m

noname#206454
質問者

お礼

訂正です。 補足のこと、忘れてください。 I2セルのフィルハンドルをJ2と読み間違えていました。 ただI2セルのフィルハンドルをダブルクリックしているのですが、オートフィル設定したはずの任意の行10を超えてもずーっと反映されているのですが…なぜでしょう?

noname#206454
質問者

補足

ご回答ありがとうございます。 確かに最終行まで使うことはありませんので助かります。試してみましたが…まだよくわかりません。 回答No.2の方法も試したところ、これはできました。(応答なしにはなりませんでした)。 しかし一度リセットして新規作成をだしてやり直しました。 H2セルに式 =IF(H2="","",INT(H2*1.08)) を入力。ここになんらかの数値を入れるとI2に反映することはできました。 問題はここからで、ご回答すべてそのまま実行しましたが、HとIに、Jをどう関連づけるのかわかりません。 数式をコピーするというのは、 >J2セルに 「2」と入力 という部分ですか? これに代わり式を入れるのだと思いまして2の代わり =IF(H2="","",INT(H2*1.08)) と入力、次に連続データの作成で設定しても、行10まで数式はコピーされないのですが… Jでオートフィル設定することで、自動でHに式が反映すると思っていたのですが、もう少し具体的に手順を教えていただけると助かります。

その他の回答 (5)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

続けてお邪魔します。 >この「左右」というのは、H列とI列のことで、「どちらか少ない」というのは、HかIの数値か数式のいずれかが少ない場合ということでしょうか? 今回の質問の場合、隣接する列とはH列・J列になります。 I2セルのフィルハンドルでダブルクリック!という回答をしましたので、 H列もしくはJ列のどちらかの少ない方の最終行までのフィルとなります。 試しにH10までデータを入れておいて、J列は何万行でも良いのでNo.3で説明した方法で 何らかのデータ(連番でもOK)を入れておいてください。 I2セルに数式を入れ、I2セルのフィルハンドルでダブルクリック! 数式はI10セルまでしか入らないはずです。 (途中に空白セルがあるとその前の行までのフィルとなります) H列にデータがなく、J列のみにデータがある場合はJ列の最終行まで数式がコピーされます。 すなわちNo.3の方法はH列にデータを入れる前の操作でないと、 指定した行までのフィル&コピーにはなりません。 この説明がないばっかりに余計に判りにくくしてしまいましたね。 どうも失礼しました。m(_ _)m

noname#206454
質問者

お礼

補足ありがとうございます。 試してみましたところ、分かりました。 tom04さんから教えてもらった方法がいちばん現実的ですので、この方法を活用したいと思います。 ありがとうございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.3です。 >ただI2セルのフィルハンドルをダブルクリックしているのですが、オートフィル設定したはずの任意の行10を超えてもずーっと反映されているのですが…なぜでしょう? について 前回のJ列は単純にJ10000まで何らかのデータを入れるためだけです。 一番簡単な連番を入れる方法でした。 これは隣接するセルの最終行までダブルクリックでフィルできる機能を利用したものですが、 もし、H3以降にデータが入っている場合は左右どちらかの少ない最終行までのフィルになってしまいます。 他の方法としては直接どのセルまでコピーするか!と決める方法があります。 I2セルの数式が入っているとして、I10000セルまでフィル&コピーする場合は I2セル上で右クリック → コピー → 名前ボックス(画面左上のI2)と入っているところの 「I2」を消してI10000と入力 → Shiftキーを押しながらEnter → I2~I10000セルが範囲指定されている状態で右クリック → 貼り付け これで完了です。 ※ ショートカットキー操作の場合は I2セル上でCtrl+C → 名前ボックスにI10000と入力 → Shift+Enter → Ctrl+V でも同じ結果となります。m(_ _)m

noname#206454
質問者

補足

補足回答ありがとうございます。 再び試してみたところ、数値が入っていることで違いがでるということが分かりました。 H列に数値が入っている場合には、フィルで指定した範囲を超えてもなお、Iに反映し続けるけれど、数値が入っていない場合、指定した範囲内でのみ、反映されました。 あと >これは隣接するセルの最終行までダブルクリックでフィルできる機能を利用したものですが、 もし、H3以降にデータが入っている場合は左右どちらかの少ない最終行までのフィルになってしまいます。 この「左右」というのは、H列とI列のことで、「どちらか少ない」というのは、HかIの数値か数式のいずれかが少ない場合ということでしょうか? ここだけ気になりましたので、再度補足しました。

回答No.4

オートフィルを使えばいいのではないでしょうか。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/input_autofir.htm 全く同じにするなら、数式バーでH2を$H$2にしてオートフィル、 H2に対してI2、H3に対してI3を対応させるのであればそのままでオートフィルでもいいと思います。 ちなみに、 http://okwave.jp/qa/q6890720.html の回答No.8でも同じことができるのですが、今回は不向きかと。 ただ、関数を含む表を複製する場合はかなり便利です。

noname#206454
質問者

補足

ご回答ありがとうございます。 >H2を$H$2にして =IF($H$2="","",INT($H$2*1.08)) このような式に直し、I2に入力しました。 リンク先でいえば最後の「数式のコピー(オートフィル)」のことだと思いましたので、I2を任意のところまでドラッグしましたが、I2と同じ数値がコピペされるだけでHで入力しても反映しません。 この方法でよかったのでしょうか?

回答No.2

  申し訳ない、一部訂正 別の方法 I2セルに=IF(H2="","",INT(H2*1.08))を入力する Ctrl+c でコピーした後 「Shift」と「Ctrl」を押しながら「↓」キーを押す 「Enter」を押す こちらが正解です  

noname#206454
質問者

お礼

幸いエラーもでることなく、列の最後尾までコピペできました。

回答No.1

方法は二つあります 反映させたいセルを全て選択した後で =IF(H2="","",INT(H2*1.08)) をキーボードから入力し 「Ctrl」を押しながら「Enter」を押す 別の方法 I2セルに=IF(H2="","",INT(H2*1.08))を入力する Ctrl+c でコピーした後 「Shift」を押しながら「↓」キーを押す 「Enter」を押す  

noname#206454
質問者

補足

ご回答ありがとうございます。 まず、キーボード入力とは「fx」とある空欄のバーに入力することだと思いますが、最初の方法を試したところ、ずれが生じました。 1行目は列のタイトルを入れるため、セルは2としたのですが、最初の方法では反映される側の列の一行目にも反映してしまっています。(なぜか108という数値が入っているのですが)そして同列の最後のセルは空欄になっているのです。 それを気にせず、本体価格の方に、続けて数値を試し入力すると、この空欄に結果が反映するという変な現象が… もしおわかりになるのでしたら、訂正方法を教えてください。

関連するQ&A

  • 【Excel】演算の式でセルの位置を変えたい

    このたび8%の消費税になったので、家計簿の方法を変更しなくてはなりません。 これまでは税込でしたが、まだ税抜きがあるところがありますので、ひとつひとつの商品に対し、数値(価格)を入力すれば自動的に8%で計算される方法です。 たとえばセルに100円と入力すれば、自動で108円となる。それを列全体に反映するようにしたいのです。 数式は以下のようですが、 =IF(A1="","",A1*1.08) この例だと「A1に入れたらB1に表示される」場合です。 しかし、セルH2に税抜きを入れてI2に税込を反映させたいのですが、この数式を =IF(I2="","",H2*1.08) このように変えてセルI2にコピペしたのですが、セルH2に100と入れても108と反映してくれません。 この場合、どこをどう変えたらよいでしょうか?

  • エクセル vlook関数、可視セルのコピーについて

    大量のデータを編集している仕事をしており、 教えて頂けないでしょうか。 ・可視セルから可視セルへのコピー ・vlookの結果を、関数式が入っていない状態で表示したい(TEXT関数ではなく) 説明が下手かもしれませんが申し訳ありません。 ある大量データのエクセルシートが二つあります。 それを合わせて、vlookで結果を出します。 結果を出したいシートの列には、予めいくつか入力されている消せないセルがあります。 この消せないセルは、vlookの結果を出すセルではありません。 ソートをかけて、vlookの貼り付け先であるセルを出します。 結果が反映されます。 この場合、結果先のセルにはvlookの関数式が入ったデータが入ります。 この結果を関数式が入っていない数値や文字にしたいのです。 私のやり方は、結果先の列の横に新たに列を挿入し そこにvlookの結果を出し、それをコピー、反映させたい列へ形式を選択して値を貼り付けています。 しかし一度に選択してコピーしようとしても、ソートがかかっており 可視セル状態にしても、うまく貼り付けができません。 なので、一つ一つのセルをコピーして値にし、横のセルに貼り付けています。 上記のどちらか一つがわかれば、できると思うのですが 何か良いやり方はないでしょうか。 あまり詳しくなく、教えてもらえればと思います。

  • Excel:セル枠外にはみ出た文字列全体の表示

    お世話になります。WindowsXPでExcel2002を使用しております。是非教えてください。 Excelで入力した文字列がセルの横幅を越えた長さとなった場合、右隣のセルが未入力であれば、自動的に全体が表示されるようになっています。 しかし、右隣のセルに、例えば関数を入力していた場合など何らかのデータを入力していた場合には、枠内までの文字しか表示されなくなります。 右隣のセルが、関数計算の結果、何らかの数値、文字列が表示される場合には致し方ないと思いますが、特に何も表示されない時、左隣のセルの文字列全体が表示されるようにしたいのですが、何らかの方法はございますでしょうか。 ちなみに、具体的な状況については以下の通りです。  |A|B| 1| | | ・A1、B1セルにはそれぞれ同じIF関数(=IF([論理式],A21,""))を入力。 ・A1セルのIF関数が「真」となったため、A21の文字列("浜崎総務部長の来訪")が表示される。 ・B1セルのIF関数が「偽」となったため、何も表示されず。 宜しくお願い致します。

  • 関数式が入っているセルのみ入力不能にしたい

    関数式を組み込んだ現金出納帳を 作成しました。 その関数式とその式による出た数値を触られてくないので、 関数式が入っているセルのみ入力不能にしたいと考えております。 1.関数式が入っているセルについて   「セルの書式設定」→「保護」→「ロック」 2.「ホームタブ」→「編集グループ」→「検索と選択」   →「数式」を選択 3.「校閲タブ」→「シートの保護」→「ロックされていない範囲の選択」 1~3の作業をすると、シート全体に保護がかかってしまい、 収入金額や支出金額が入力されません。 ちなみに「2」の「検索と選択」ところで「条件付き書式」や 「定数」を選択すると、「該当するセルが見つかりません」 とエラーを返されてしまいます。 関数式が入っているセルのみ入力不能にするには、 どうすればよいでしょうか? ご存知の方ご教示願います。パソコンはWindows Vistaを 使用しています。  

  • エクセルで特定のセルにある関数式を複数の場所で利用できる?

    エクセルで特定のセルにある関数式を複数の場所で利用できる? ある別シートのセルに作った条件式を本シートの複数の場所から式自体を参照して利用することは エクセルで可能でしょうか? 具体的には、シートAのH2セルにH5で入力された番号から自動で分類番号を入れる関数式 =IF(H5="","",IF(COUNTIF(H5,"*42*"),1,IF(COUNTIF(H5,"*LA*"),2,IF(COUNTIF(H5,"*67*"),3・・・ をページ毎に入力してあります。 コピー&ペーストするだけで複製は可能なのですが、分類番号が増えると1箇所で修正を行い それを全ての場所にコピーする必要が出てきます。 そこで、シートBに関数式を入力しておき、その式をH3で読み出してH5の状態から最終的に H3へ分類番号を表示する・・・ こんなことはできるのでしょうか? ちなみに、可能となれば関数式中のH5では2ページ以降に適応できなくなるので (INDIRECT(ADDRESS(ROW()+3,COLUMN())) に置き換えて自分より3つ下のセルという形で参照させる予定です。 よろしくお願いします。

  • セル 関数について

    エクセルについて質問です。下記のような関数を教えてください。      D     I      L      M      Q     入金   内訳   支払日  支払金額  合計 201  100    20     5/4     20     370 こんな会計諸表を作りたいと思っています。 上のアルファベットはセルの列。左側はセルの行と見てください。 【入金額】と【内訳】は自分で手入力していきますが、その先の(L、M、Q)の各所に入る関数が作れません。 作りたいものを言うと・・・      D     I      L      M       Q     入金   内訳   支払日  支払金額   合計 201  100    20            20      390 まずこんな感じで、内訳が入力されると、Mの支払い金額に反映される。 この辺は簡単なので、「=I201」とか入れておけばセルができるのはわかります。 ここでLのセルに日付が・・・・      D     I      L      M       Q     入金   内訳   支払日  支払金額   合計 201  100    20     5/4     20      370 こんな感じで入力されたときに、合計額から支払額を引いて行きたいんです。 ちなみに【L】全体の書式設定として、ユーザー定義から【MM/DD】と指定しています。 IF関数を使うのか、はたまたそれ以外の関数なのかわかりません(泣) どうか、教えてください。

  • エクセルでの関数について

    お世話になります。 仕事で各商品の単価を比較するためのリスト作成を頼まれたのですが、条件が複雑なため、 関数で悩んでいます。画像を参考に、順を追って説明させて下さい。 1.まずリストに、各商品の単価を入力 2.入力された単価は作業列(1)~(3)に反映されます。このセルに入っている計算式は、   セルG6 =IF(C6="","",C6)   セルH6 =IF(D6="","",D6)   セルI6  =IF(E6="","",E6)   が入っています。 3.ここからが分からないところなのですが、採用単価に入る式で迷っています。条件は、  (1)A資料があれば、A資料が優先的に採用単価になる  (2)B資料とC資料の2つがあれば、平均の値(1円未満切捨て)が採用単価になる  (3)空白の欄には何も入れない  とのことです。 試しに(セルJ6の場合) =ROUNDDOWN(IF(G6="",AVERAGE(H6:I6),G6),0)  を入れてみましたら、(1)と(2)の条件はクリアしたように見えますが、空欄のある所はエラーの #DIV/0!が出てしまいました。 式自体が違うのか、それとも式に何か追加するのか分かりません。 分かりにくい説明かと思いますが、どうぞお知恵をお貸し下さい。宜しくお願いします。       

  • Excelの関数がうまく使えません。

    Excelで関数がうまく使えません。 「=IF(E2>=2000,200,IF(E2>=1000,100,IF(E2>=500,50," ")))」というのをH列のセルに入力しています。 計算はうまく?いくのですが、偽の場合に空白にしているのに、E列が空白でも200と反映されてしまいます。 ちなみにE列には「=IF(ISNUMBER(D2),(C2*D2)," ")」このような関数を使っております。 H列が空白のときに正しく空白にするにはどうしたらよいのでしょうか? 教えてください。

  • エクセルの条件式について教えてください。

    タイムシート風お小遣い計算表を作っています。1日3時間以上お手伝いしたら750円、3時間未満なら500円、0時間なら空欄、という条件で、C列に開始時間、D列に終了時間、G列に休憩時間、H列に稼働時間をそれぞれ入力し、I列にお小遣いの金額を自動計算で表示させるようにしたいのですが、お手伝い0時間の時がきちんと反映されません。 I列のお小遣いの金額欄にこのように入力しました。 =if(H5>=3/24,750,if(H5<=3/24,500,if(H5=0/24,""))) 例えばC5に11:00、D5に16:30、H5は=D5-C5-G5で4:50、でも日曜日は開始時間も終了時間も休憩時間も稼働時間すべて0:00としている(入力忘れと区別するため)のですが、それでもI列のお小遣い欄に500と表示されてしまいます。 このような場合、どうやって条件式を修正したらよいでしょうか。 お知恵をお貸しください。よろしくお願いします。

  • プロットを補完する為に、関数をどう扱うか

    データを入力したシートとグラフを作成するためのシートの2種類で構成しています。 【データのシート】 具体的な数値と簡単な計算式が各セルに入力してあります。 【グラフのシート】 データのシートで計算された数値の一部をそのまま自動表示されるようにしています。 表示された数値を使ってプロットして、グラフを作成しようとしました。 しかしながら、このとき、見かけ上、空白セルが存在するために、0として認識してしまう為に補完設定をしても反映されません。 具体的には、以下の通りです。 【データ】 セルI9に =IF(ISERROR(AVERAGE(D9:H9)),"",AVERAGE(D9:H9)) セルI12に =IF(ISERROR(AVERAGE(D12:H12)),"",AVERAGE(D12:H12)) セルI15に =IF(ISERROR(AVERAGE(D15:H15)),"",AVERAGE(D15:H15)) 以下、同じ規則で続きます。ここで計算された数値をグラフのシートに反映させます。 【グラフ】 現在は、 =データ!I9  =データ!I12  =データ!I15 と表示させています。 この方法で表示された値で、グラフ化したところ、見かけ上、空白のセルの箇所が0として認識されている為に、要素で線を結ぶプロットの補完がされません。 NA()を使えば、良さそうなのですが、うまくいきません。 =IF(=データ!I12=0,NA(),データ!I12)のような式を考えましたが、ダメでした。 何か解決方法があればよろしくお願い致します。

専門家に質問してみよう