教えて!gooにおける不適切な投稿への対応について

=(B10/30*100)の計算式を下のセルにコピーする際、10列目だけ固定にし(B$10/30*100)、(c10/30*100)、(D10/30*100)、(E10/30*100)
とABCD…のアルファベットのみかわるようにしたいのですがB10が固定になり変わりません。
他のシートでは行参照のみはできたのですが、コピー出来ない条件があるのか、異なるやり方があるのか分かりません。
どう調べて良いかも分からず仕事の締切に間に合いそうもありません。。。
どなたか助けてください。

質問者からの補足コメント

  • 銀鱗さん
    早速のご回答ありがとうございます!

    教えていただきましたやり方でやってみたのですがうまくいきません。
    具体的に書きますので再度教えていただけると大変助かります!
    宜しくお願いいたします!

    シート1のN2セルに=M2/シート2!B$42
    シート1のN列に42行のみ固定し、列のみ(C42、D42、E42)かわるようにオートフィルにて縦にコピーしたいのです。
    シート1のN3にM3/シート2!C$42、N4にはシート1のM4/シート2!D$42…
    といった具合です。
    N2にオートフィルをしてみましたがB42が固定されてしまいます。

    せっかく教えていただいたのにうまく活用出来ずお恥ずかしいのですが、どうかお力をお貸しください。

    No.2の回答に寄せられた補足コメントです。 補足日時:2015/10/25 10:06
gooドクター

A 回答 (4件)

OFFSET関数とROW関数の使い方を理解されていないようですね。


このままでは問題の先送りになってしまいそうですが、答えてみましょう。
(問題の解決を他の人に肩代わりしてもらい、目の前の問題を解決しても
 理解していないため、同様な問題を自力で解決できない…)
解説を加えてみますので理解するよう努めてください。


OFFSET関数は指定したセルから「どれだけずれたセル」を指定する関数だ。(Offset:オフセット:ずれ、差)
基準になるセルを指定し、そのセルから行、列方向にいくつずれるかという形で記述する。
=OFFSET(基準,行数,列数)
=OFFSET(A1,9,1)
A1セルから下へ9つ、右へ1つ目のセルを指定。(B10がセル範囲として返る)

ROW関数は指定した範囲の左上のセルの行番号を返す関数だ。(Row:ロウ:並び)
範囲の指定がない場合は関数が入力されたセルの行番号を返す。
=ROW(範囲)
=ROW(A11:C15)
A11からC15の範囲の左上のセルの行番号。(11が数値として返る)
=ROW(A11)
A11の行番号。(11が数値として返る)
=ROW(A12)
A12の行番号。(12が数値として返る)
=ROW()
その関数が入力されている行番号。(D4セルに入力されていれば4。など)

数式が入力されたセルを下にフィルでコピーした場合、数式に含まれるセル番地の行数が自動で増加する。
この特性を活かしROW関数で連続した数値を得ることができる。
この場合、ROW関数で得た数値をOFFSET関数の列数に入れることで
縦にコピーしても横方向にセルを選択できるようにしている。


・・・
説明・解説・前置き…はこのくらいでよいだろうか。
少し試行錯誤すれば理解できる程度の説明はしたつもりだ。

N2 =M2/シート2!B$42
N3 =M3/シート2!C$42
N4 =M4/シート2!D$42
ならば
N2 =M2/OFFSET(シート2!A$1,41,1) …(=M2/OFFSET(シート2!A$42,0,0) でも間違いではない)
N3 =M3/OFFSET(シート2!A$1,41,2)
N4 =M4/OFFSET(シート2!A$1,41,3)
と書き直せる。
増えている箇所にROW関数を入れればよい。
N2 =M2/OFFSET(シート2!A$1,41,ROW(A1))
N3 =M3/OFFSET(シート2!A$1,41,ROW(A2))
N4 =M4/OFFSET(シート2!A$1,41,ROW(A3))
このように書き換え、完成。
N2セルを下にコピーすればよい状態になった。



OFFSET関数はセル単体を指定するのではなく、セル範囲も指定することができる。
=OFFSET(基準,行数,列数,高さ,幅)
高さと幅の指定を省略すると単体のセルを指定することになる。
SUM関数など、範囲を指定する関数に使用することもできるので覚えておくとよい。
    • good
    • 0
この回答へのお礼

助かりました

やっと理解できました。
少しアレンジ加え何とかできました。
本当にありがとうございました。

お礼日時:2015/10/26 00:26

えっと仕事で行っておられるのでしたらExcelの勉強本や解説本は入手済でしょうか?


ネット上にもたくさんの解説サイトがあります。
行参照の固定を行いたいのでしたら「Excel 行コピー 固定」といったキーワードで探すと見つかるかと思います。

参考まで。
    • good
    • 0

まさかとは思うが…


行方向(縦)にコピーなら
=(B$10/30*100)
これで固定されて正解。
行(この場合10行)を固定するために”10”の前に”$”が付けられている。

行方向にコピーして、C10/30*100、D10/30*100・・・とすることはできない。
列方向(横)にコピーしよう。

縦方向で行うのであれば、別の関数式を作る必要がある。
自分ならOFFSET関数とROW関数を組み合わせる。
=OFFSET($A$1,9,ROW(A1))/30*100
とか。

この数式は、
10行目を指定するためA1セルから9個下を指定。
B列から右を順に指定するため、A1セルから右に何個目になるかをROW関数(行番号)で指定。
こんなことをやっている。
この回答への補足あり
    • good
    • 1

同じ列の下の行にコピーするなら、列番号(BやC)は変わらず行番号(10や11)のみが変わります


ですので
下ではなく一度横にコピーして、更にそれを転置して貼り付け
別の複数の関数を組み合わせる
辺りになると思います
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

gooドクター

このカテゴリの人気Q&Aランキング