数式のコピーのズレを直す方法、マクロ、関数のいずれかの方法を教えてください!!

このQ&Aのポイント
  • 数式のコピーのズレを直す方法、マクロ、関数のいずれかの方法を教えてください!Sheet1には計算結果が表示されるようにしてあります。入力された数式をSheet1 A2にコピーすると、数式がズレてしまいます。具体的な解決方法について詳しく教えてください。
  • 数式のコピーのズレを直す方法、マクロ、関数のいずれかの方法を教えてください!Sheet1には計算結果が表示されるようにしてありますが、数式のコピーをSheet1 A2に行うと、数式がズレてしまいます。このズレを修正する方法について詳しく教えてください。
  • 数式のコピーのズレを直す方法、マクロ、関数のいずれかの方法を教えてください!Sheet1には計算結果が表示されるようにしてありますが、数式のコピーを行うと、セルの位置がズレてしまいます。正しい数式のコピー方法について詳しく教えてください。
回答を見る
  • ベストアンサー

数式のコピーのズレを直す方法、マクロ、関数のいずれかの方法を教えてください!!

数式のコピーのズレを直す方法、マクロ、関数のいずれかの方法を教えてください!! Sheet1には、計算結果が表示されるようにしてあります。 その結果の数式は、 =IF(Sheet2!A1="","",IF(Sheet2!A1<2,"<",ROUND(Sheet2!A1,2))) と、入っています。 計算結果の表示上、「Sheet1 A1とA2」の2行のセルを結合して1行にしてあって、対して「Sheet2はA1」の1行です。 これをつぎの「Sheet1 A2」に数式をコピペしていくと、 =IF(Sheet2!A2="","",IF(Sheet2!A2<2,"<",ROUND(Sheet2!A2,2))) と、していきたいのですが、 =IF(Sheet2!A3="","",IF(Sheet2!A3<2,"<",ROUND(Sheet2!A3,2))) となってズレてしまいます。 これを300行ほど作らなければならないのです。 数式、1行のセルを2行の結合したセルにコピペできる方法、もしくはマクロや他の関数があれば教えていただきたいです。 わかりにくくて申し訳ありませんが、お願いします。

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

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

 やり方はいろいろあろうかと存じますが、要は、「連続で300行数式を入れておいて、1行ずつ空ける」という考え方が簡単かと存じます。 1)新規にシートを1つ作ります(これを SheetN とします)。  これより SheetN での作業になります。 2)B1 に「1」、B2 に「2」と入力し、これをB3:B600 にコピーします。 3)C1 に「1」を入力し、次のいずれかの方法で連番を振ります。 ・[Ctrl] キーを押しながら C600 までドラッグする。 ・C1:C600 を選択して [編集(E)] - [フィル(I)] - [連続データの作成(S)] 4)B列をキーにしてB・C列を並べ替えます。 5)A1 に =IF(Sheet2!A1="","",IF(Sheet2!A1<2,"<",ROUND(Sheet2!A1,2))) と入力し、A2:A300 にコピーします。 6)C列をキーにA~C列を並べ替えます。  この時点で、A列には1行飛びに数式が入っています。 7)A1:A600 を選択してコピー([Ctrl] + [C])します。 8)Sheet1 A1 に [編集(E)] - [形式を選択して貼り付け(S)] - [貼り付け] - [数式(F)] の ラジオボタン をオンにして、[OK] します。 9)[コピーまたは移動先のセルの内容を置き換えますか?] というメッセージが出たら [はい(Y)] をクリックします。 10)SheetN を削除します。

mrs_bee
質問者

お礼

な、なるほど! 置換を使う方法にこんな方法があったんですね! 途中で行を入れ替えたりするかもしれないので関数をもうちょっとがんばってみます。 関数ができないとこの方法を使わしていただきます。 ありがとうございます。

その他の回答 (2)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

No.2です。 回答した式はExcel2003で確認しています。お使いのExcelは何ですか? この程度の式でしたら他のバージョンでもおそらく問題ないと思うのですが……。 また、式はSheet1のA1とA2を結合したセルに入れていますか?

mrs_bee
質問者

お礼

結合したセルか・・・。 変更になってしまいまして、奇数行と偶数行にわけて数式をいれなくてはいけなくなってしまいました。。。 結合して入れる時は利用させていただきます! ありがとうございます!

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

あまりスマートとは言えませんが↓こんな式でも出来るかと =IF(INDEX(Sheet2!A:A,(ROW()+1)/2)="","",IF(INDEX(Sheet2!A:A,(ROW()+1)/2)<2,"<",ROUND(INDEX(Sheet2!A:A,(ROW()+1)/2),2)))

mrs_bee
質問者

お礼

ありがとうございます。 試してみたんですが、「引数が足りません」ってメッセージがでてきちゃいます。 なにが足りないんでしょうか??

関連するQ&A

  • 数式を奇数行と偶数行を別々に貼り付け!

    数式を奇数行と偶数行を別々に張り付け の方法ってあるんですか?? Sheet1で計算表をつくっています。 B列~列Hまで1行と2行を結合さしていて、I列~X列は1行、2行別々です。 I列~X列に1行2行別々の数式をいれたいんです。 偶数行に =IF(Sheet2!AC52="","",IF(Sheet2!AC52<2,"<",ROUND(Sheet2!AC52,2))) として、2行・4行・6行・・・・ 奇数行に =IF(Sheet2!D52="","",IF(Sheet2!D52<Sheet2!$B52,Sheet2!$A52,ROUND(Sheet2!D52,4))) として、3行・5行・7行・・・・ でいう感じでしていきたいんですが、関数はありますか?? 関数以外でも方法があれば教えてください。 お願いします。

  • エクセルの数式、関数でコピーはできるか

    エクセルで、たとえば、 A1、A2,A3セルを使って A1セルの値が順次変化していく場合、変化する前の古い値をA2、A3セルに保存しておきたいのです。 プログラム的に書くと、 IF A1が変化したとき THEN A3=A2 A2=変化する前のA1 ENDIF みたいなことをしたいのです、VBAを使ってマクロで作るのは簡単ですが、 できれば、マクロは使わず、ワークシート上だけで、関数や数式だけで作ることはできませんか たとえば、=IF( A1<>A2, COPY A2 TO A3 ) みたいなある条件があったときにコピーできるようなことが出来れば可能だと思うのですが

  • 関数計算の結果が表示されない・・・・・(エクセル)

    こんにちわ。 エクセルで =IF(A20="一般",IF(Y20>=G20,0,G20-Y20),"") のような計算式をあるセルにいれています。 この場合A20は一般、Y20は10000,G20は20000とします。 fxボタンを押して関数の計算式を見てみると 「数式の結果」は確かに、正しい「10000」と表示されているにも関わらず、なぜかセル上には「0」としか表示されてません。 セルの書式設定は「標準」になっており、とくにほかの規制?をかけた覚えもないのですが・・・。 この関数式をほかの行にもコピペしてもやはり「0」になってしまいます・・・・。 思い当たるフシがあれば、教えていただきたいですM(__)M

  • エクセルのif関数で

    エクセルのif関数でこれができるのかわかりませんが、 C1~C10の中の文字列の中にA1と同じ文字列があればB1に「1」を入れ、なければ「2」を入れるということをやりたくて B1のセルに IF(OR(C$1:C$10=A1),1,2) という計算式を入れました。 関数の引数の中の数式の結果では、正しい結果が表示されてるのですが、B1のセルには間違った結果が表示されます。 また、B2以下B20まで計算式をコピーするとB11以下は#VALUE!になってしまいます。 一つ一つを見てみると、どうやらセルに正しく表示されるのはAの行とCの行が=だった場合のみのようです。 #VALUE!が表示されているセルも含めて、数式の結果では正しい結果が出ているのにセルの表示が違っているのが納得できませんが、おそらく何かが間違っているのでしょう。 間違いを教えてください。 よろしくお願いします。

  • 一度入れた数式がエラーになってしまいます。

    一度入れた数式がエラーになってしまいます。 一度入れた計算式がエラーになってしまい困っています。 関数を事前にフォーマットに入力しておいて、マクロを使って数値が以下のように入ります。 A  B  C  D 1    a    k    y    l 2    a    k    y    h 3    a    k    y    j 4    a    k    y    a ※列がずれて表示されていますが、A列B列… ということです。 「Dの行に文字が入っている、かつA行がaであるセルの数」を 以下のようにカウントしました。  =COUNTIFS(D1:D4,"*",A1:A4,a) マクロを組んであって、1~4の行は他シートから転記するようにしてあります。 このとき、 (1)数式の入っているセル、及び数式に関わるセルの書式は「数値」になっています (2)「ブックの計算」は「自動計算」になっています (3)マクロを動かした後、全く同じ数式を再入力すると正しく表示されます(エラーになりません) ご存知の方、ぜひ教えてください。 宜しくお願い致します。

  • エクセル印刷で上下の結合セルが別ページにならない方法?

    エクセル2000です。 一枚のシートに表が複数あります。 表中のセルはすべて数式が入っています。 A列は続き番号がふってあります。 B列~E列は上下のセルが結合しています。(2行分) F列は結合していません。 G列は上下の結合あります。(2行分) このような様式の表が、同一シートに1行あけて上から下へ続いています。 しかも、計算結果により表中の行が空白になる場合がよくあります。 その場合、は表中の空白行は非表示になるようにマクロで設定しています。 このシートを印刷した場合、2行を上下で結合したセルが、別ページに分かれてしまうことがよくあります。計算結果で表示がかわるので改ページを事前に入れておけません。 結合セルがページで分割されないようにするにはどうしたらよいでしょうか?

  • 関数を入力したセルがグラフに表示されない方法

    エクセルのグラフについて質問です。 A.Bの2枚のシートがあります。 シートBには、一部、IF関数を入力したセルが含まれています。 このセルを含め、シートB上の複数行のデータをグラフ化したいのですが、以下のような誤表示がされてしまいます。 ○問題点 シートBの数値が入っているセル(入力した関数の計算の結果(数字)が表示されているもの)は、グラフ上に正確に表示される。 しかし、上記IF関数が入力されているセル(表示部は#VALUE!となっている)を反映するグラフの該当部分は、数字が入っていないにもかからず、グラフから見切れてしまう。 ○解決したい点 #VALUE!表示のセルのデータは、グラフにも反映させたくない。 何とか、結果が出ているセルのみをグラフに反映させ、数式が入っている状態のセルの内容はグラフ上は非表示にする、ということはできないでしょうか? ご存知の方、よろしくお願いします。

  • Excelの関数またはマクロを教えて下さい。

    Exsel2000の関数で、現在以下の関数まで出来たのですが、これを応用して検索値「A1」を2つのセル「A1&B1」にしたいのですが、どうすればよいのでしょうか?どなたか方法を教えて下さい。 =VLOOKUP(A1,Sheet1!$A$1:$E$2000,4) 上記の関数から判るように、これは 例えばSheet2のC1のセルにこの式を入れる場合、A1と同じ内容の値を、Sheet1のA列から検索して、そして同じ行のSheet1のD列の値をSheet2のC1のセルに返すという関数です。 これを応用して、「A1と同じ内容…のA1を、A1&B1の2つが一致するセルを検索して、同じ列のSheet1のD列の値をSheet2のC1のセルに返すという関数にしたいのです。 どなたかおわかりになる方がおりました宜しくお願いいたします。 また、マクロを使う方法でも良いのですが、当方マクロは詳しくないので出来るだけ判りやすくお願いいたします。

  • Excelのコピー&ペーストについて

    関数や計算式等をコピペしたいのではなく、関数や計算式等でセルに表示された文字自体をコピペしたいのですが方法はありますか? <例> Sheet1のA1に「=B1」と入力して、B1が2だったためセルには「2」と表示されます。 そのセルをコピーしてSheet2のA1にペーストすると「=B1」となります。 そうじゃなくて、セルに表示された「2」自体をコピペしたいんです。 皆様の知識をお貸しください。

  • 一つのセルでIF関数を二つ使いたい

    二つのセルの値を割って、%を表示させるために、三つ目のセルには 「=1-(B1/A1)」を入れていたのですが、そこに、二つのセルが空白の時にはエラー表示にならないようにIF関数を使い、三つ目のセルは 「=IF(ISBLANK(A1),"",(1-(B1/A1)))」 という数式にしました。 その数式にさらに、もし二つのセルの値が「0」の時には、結果を「0%」として表示させたくて、三つ目の数式の中にもうひとつのIF関数を同時に使いたいのですが、 一つのセル内に、IF関数を使って結果をうまく表示させるには、どのような数式にすれば良いでしょうか??

専門家に質問してみよう