アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下の基準セルを右方向にフィルコピーした際に、参照範囲が99ずつ増えるような式を組みたいのですが、ご教示いただけないでしょうか。
お手数おかけしますが、なかなか上手くいかご協力いただけますと幸いです。

基準となるセルの数式
=SUMIF('2019'!$F$1200:$F$1299,設定シート!$C$2,'2019'!$J$1200:$J$1299)

基準となるセルの右横のセルの数式
=SUMIF('2019'!$F$1300:$F$1399,設定シート!$C$2,'2019'!$J$1300:$J$1399)

A 回答 (3件)

INDIRET関数が便利です。



なお、最初のセルの行番号が 1200であることを示す補助行が必要です。
補助行を1行目、数式を2行目とします。

A1: 1200
B1: =A1+100

A2(基準となるセルの数式):
=SUMIF(INDIRECT("2019!$F$"& A1 &":$F$"& A1+99),設定シート!$C$2,INDIRECT("2019!$J$"& A1 &":$J$"& A1+99))

B2(基準となるセルの右横のセルの数式):
A2を入力後、A2をセルコピーすれば作成可。以下になれば問題なし

=SUMIF(INDIRECT("2019!$F$"& B1 &":$F$"& B1+99),設定シート!$C$2,INDIRECT("2019!$J$"& B1 &":$J$"& B1+99))

ここまで完成したら、
続き(C1&C2以降)は、B1&B2を選択して横にコピーすれば伸ばせます。
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます!
解決しました。

お礼日時:2019/02/26 14:03

質問の例ではどう見ても100ずつ増えているように見えるんですけど、


ひょっとして「1200から1299」「1300から1399」を「99増えている」と表現しているのでしょうか。
これ、100増えてますよ。範囲も100です。

・・・本題・・・

INDIRECT関数で範囲を指定するかな。
あるいは
OFFSET関数かな。

・・・
横という事ですので、基本はCOLUMN関数を使うことになるでしょう。
試しに
 =1100+100*COLUMN(A1)
と入力したセルを横にフィルでコピーしてみてください。
1200と表示された右のセルには1300と表示されるようになるはずです。
更にその右側にフィルすると1400となるはずです。

COLUMN関数が返す値が分からなければ、COLUMN関数だけの式を使って結果を確認してください。
 =COLUMN(A1)
です。
この数式が入力されたセルをフィルして結果を確認しましょう。

・・・
INDIRECT関数は文字列を範囲として認識させる関数です。
 INDIRECT("A1" & ":" & "B1")
とすると
 「A1:B1」
を範囲として返します。
 =SUM(INDIRECT("A1"&":"&"B1"))
なら、
 =SUM(A1:B1)
の結果が返ります。

A1セルに
 「100」
B1セルに
 「199」
と文字が入力されていて
 =SUM(INDIRECT("A"&A1":"&"A"&B1))
であれば、
 "A"&A1":"&"A"&B1

 "A"& 1 &":"&"A"& 100
なるので 
 =SUM(A1:A100)
という事になります。

この「1」とか「100」の部分をCOLUMN関数を使った式に置き換えてしまえばいいってこと。

・・・
OFFSET関数でも同様です。
OFFSET関数の行を示す数値をCOLUMN関数を使った式で与えてやればいい。

試行錯誤してみましょう。


・・・余談・・・

答えの数式を示しても良いのですが、それでは「分かったつもり」になるだけで質問者さんは同様の問題を解決できないままになります。
自力で問題を解消できるようにならないと「問題の解決」にはなりませんよね。
目の前にある問題は解決したように見えても、それは「問題の先送り」にすぎません。

試行錯誤しても分からない時は、どのような数式を作ったのかを示してアドバイスを求めると良いでしょう。
がんばれ。
    • good
    • 0

ごめんイメージがつかめない。


サンプル画像見せて。
どーゆーことがしたいのかな?
    • good
    • 0
この回答へのお礼

解決しました。
説明が不足しており失礼いたしました。

ありがとうございました!

お礼日時:2019/02/26 14:02

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