10列目から5行づつ離れたデータを合計したいと思っています。
例えばA10に1,A15に2,A20に3....とデータが続いているとします。
この5行離れているというのはかわりません。Excelの組み込み関数で
このような計算をすることができるでしょうか?
VBAを利用して5行間隔、X行間隔でデータを合計するというプログラムは作ることができたのですが、組み込み関数を利用してX行間隔のものを合計するといったことができるのかなと思い質問させていただきました。

A 回答 (4件)

例データ


A1:A11
1
2
3
4
5
6
7
8
9
10
11
空きセルに =SUM(IF(MOD(ROW(A1:A15)-1,5)=0,A1:A15))
と入れて、SHIFT、CTRL,ENTERを同時押し。
配列数式。
結果
18
=1+6+11 
--
ROW(A1:A15)-1の部分を細工するとスタートセルを決められる。
また5のところで何行おを左右できる。
ーーー
判りやすいのは,
(作業列B列を使うが)
1
0
0
0
0
をB1:B5まで入れ、コピーして、下まで範囲指定して貼り付け。
ここで
=SUMPRODUCT((A1:A15)*(B1:B15))
    • good
    • 2

敢えて SUMPRODUCT関数を使わない別解です。


={SUM((MOD(ROW(A10:A500),5)=0)*(A10:A500))} ← 配列数式
    • good
    • 1

組み込み関数で計算は可能です。


=SUMPRODUCT((MOD(ROW(A10:A200),5)=0)*(A10:A200))
(No.1さんのはMODのところにROWが抜けてるようです。)
    • good
    • 2

例えば、A10~A200 まで5行おきの合計



=SUMPRODUCT((MOD(A1:A200,5)=0)*A1:A200)

 
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルでセル12個間隔で合計する方法?

A列にタイトルB列以降に横長にたくさんのデータがあります。
これをたとえば
=B2+N2+Z2+~略~+BJ2
のような計算をしたい場合、もっと簡便な関数はないでしょうか?
(VBAならどってことないんですが・・・。ワークシート関数で何とかしたいのです。)

Aベストアンサー

B1,N1,Z1に共通の項目名があるなら
=SUMIF(B$1:BJ$1,"項目名",B2:BJ2)
上記がない場合
=SUMPRODUCT((MOD(COLUMN(B2:BJ2)-2,12)=0)*(B2:BJ2))

Qエクセルで等間隔のセルの抽出

例えば、A1~A100にデータが入力されている状態で、A1,A11,A21というように等間隔のデータだけを列Bに空白のセルを作らず連続して抽出したいのですが、どうしたらよいでしょうか。
即ち、A1 → B1,A11 → B2、A21 → B3、・・・・

エクセル不慣れなもので、よろしくお願い致します。

Aベストアンサー

一例です。
■数式で抽出
 B1に=INDEX(A:A,(ROW(A1)-1)*10+1)を入力、下方向にコピー

■数式以外で抽出
 B1に#A1、B2に#A11を入力、A1:A2を選択して下方向にコピー、編集→置換で「#」を「=」に一括置換

Qエクセルで数行おきにデータを抽出

エクセルシートで、あるデータ膨大にを出しますよね。
それで、たとえば、三行ごと、四行ごととかであるデータを右の行もしくは左行に抜き出す操作をするにはどうしたらいいですか?
今は、フィルタと可視フィルタを駆使してやっているのですが、一発でバンと出すような方法があると思って・・・数式とかでありそうだなって思って。
教えてください。、

Aベストアンサー

=OFFSET(抽出したい列の一番初めのセルの絶対参照,(ROW(A1)-1)*行間隔,0)
又は
=INDEX(抽出したいセルの範囲の絶対参照,(ROW(A1)-1)*行間隔+1,1)

Q【Excel】4つとばしで合計する方法

たとえば、
A4セルからA8・A12・・・A96
と言う具合にA4から4つ毎の合計を計算したいとします。
私は関数が思い浮かばず、
=A4+A8+A12+・・・+A96
と入力してしまうのですが、簡単に集計する方法があれば教えてください。

よろしくお願いいたします。

Aベストアンサー

=SUMPRODUCT((MOD(ROW(A1:A96),4)=0)*(A1:A96))

・・・これでイイかな?
(確認していませんので適宜修正してください。というか全く使えないかも)

ROW関数で指定したセルの行番号を取得、
それをを4で割った余り(MOD関数)が
0であれば、1
0でなければ、0
その行に対応するセル内の数値を掛けて積算
(この辺りは「絵を描いて」「目で見て」確かめながら読んでください)


>=A4+A8+A12+・・・+A96
これは参照元のセルの個数が多すぎて、Excel2003以前では使えないことがありますね(32個まで)
よく分からないときには作業用の列を用意し、そこに数値を出すようにして
その列で積算するなどの処置をしてみましょう
難しく考えなくても簡単な方法で対処できるのであれば、それだって正解ですからね
(他の人に聞いて回答を待つ間にできてしまうこともあります)


#あとはSUMIF関数を使って答えてくれる人が現れることに期待

Qとびとびのセルの足し算をしたい

こんにちは。初歩的なことなのですが・・。例えばセルA1~A10までの縦の足し算だとオートサムでできますよね。本題なのですが、セルがとびとびの場合(といっても規則正しくですが)、例えばA1とA4とA7とA10の合計を計算したい場合、A1+A4+A7+A10という数式を表示したいセルに打ち込んでやればいいと思うのですが、後から追加したい場合、例えばA4とA7の間にセルを追加して、結果A1+A4+A7+A10+A13という式にした場合、1つ位の追加であれば、数式に1つ追加するだけなので簡単なのですが、いくつもある場合、追加忘れをしそうです。各セルは規則正しく2つ置きとか3つ置きとかの条件で、何か良い計算式はありますでしょうか?初歩的なことで申し訳ないのですが、どなたか教えてください。御願いします。

Aベストアンサー

別の列に区分する為のデータ(条件)がある場合は
=SUMIF(条件範囲,条件,集計範囲)で計算できます。
例えばB列に1,2,3,1,2,3の様な物があれば
=SUMIF(B1:B13,1,A1:A13)でA1,A4,A7,A10,A13を合計
条件の1を2に変えれば、A2,A5,A8,A11を合計します。
条件は文字でもOK

区分するデータがない場合は
=SUMPRODUCT((MOD(ROW(A1:A13),3)=1)*(A1:A13))
ROW関数で行数を獲得、MOD関数で3で割った余りを求め
余りが1(1,4,7...)の時その行の値を合計です。
上記と同じで「=1」の1をに変えればA2,A5,A8,A11を合計します。

上記の場合は、行数に関係なく合計できますが
下記の場合は、特定の行だけ離れたセルの合計しかできません。

Q別シートの値を等間隔で参照するには?

こちらのQ&Aを見て色々と試したんですが、うまくできないので教えてください。

Sheet1のA列に、A8からA23,A38…と15行ごとに氏名が入力されています。
それを、Sheet2のA列にA2からA3,A4…と順番に表示させたいのですが、
どうすればいいでしょうか?
ちなみに、Excel2003を使用しております。よろしくお願いいたします。

Aベストアンサー

Sheet2の
A2 =OFFSET(Sheet1!A$8,(ROW()-2)*15,0)

で、どうでしょう
あとはA3以下にコピーで..

QEXCELで、セル間隔をあけて貼り付けしたい。

2つのEXCELファイルがあります。
ファイルAのデータが以下のようにありまして、

   A  B  C  D  E
---------------------------------
1| 5  10  3  4  6

この横にならんだ数値をコピーして、ファイルBに

   A  B  C  D  E
---------------------------------
1 | 5
2 | ×
3 | 10
4 | ×
5 | 3
6 | ×
7 | 4
8 | ×
9 | 6

こんな風に縦に、しかもセル間隔をひとつずつ空けてペーストしたいのです。

ファイルAの方の数値はSUBTOTAL関数を使用して出した結果の数値が入ったセルです。
貼り付けしたいセルだけをCtrlキーを押しながら選択して張り付けると 縦のセルの数×ファイルAの数値セルの数 で貼り付けされてしまいます。
「形式を選択して貼り付け」などもやってみましたが、うまくいきません。

なにかよい方法があったら教えていただきたいです。
よろしくお願いします。

2つのEXCELファイルがあります。
ファイルAのデータが以下のようにありまして、

   A  B  C  D  E
---------------------------------
1| 5  10  3  4  6

この横にならんだ数値をコピーして、ファイルBに

   A  B  C  D  E
---------------------------------
1 | 5
2 | ×
3 | 10
4 | ×
5 | 3
6 | ×
7 | 4
8 | ×
9 | 6

こんな風に縦に、しかもセル間隔をひとつずつ空けてペーストしたいのです。

ファイルAの方の数値はSUBTOTAL関...続きを読む

Aベストアンサー

A1=IF(MOD(ROW(),2)=1,INDIRECT(ADDRESS(1,ROW()/2+1,,,"[ファイル名.XLS]シート名")),"")
を下方にコピーでは駄目でしょうか?上記で
=[ファイル名.XLS]シート名!A1
と同じ表示になり偶数行は非表示になります。開始位置がずれる場合は
ADDRESS関数の行数・列数の設定を変更してください。
ADDRESS(行数,列数,参照型,参照形式,シート名)です。
行数は直接1をその行の数値に、列数はROW()/2-1の-1の数値を変更で対応できます。
展開後に確定する場合は式のある列をコピーして、形式を選択して貼り付けで値にしてください。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

Qエクセルで連続データから、数個飛ばしのデータを抜き取る方法

  A  B
1 a1
2 a2
3 a3
4 a4
5 a5
・・・・・
のような表において、
Bの列にB1=a1、B2=a3、B3=a5
のような2個飛ばしのデータを連続で抜き取る方法はありますでしょうか。
A列が3000行ほどあり手打ち入力がしんどいです。
OFFSET関数を使ってもうまく連続コピーされません。
どなたかご教授願います。

Aベストアンサー

OFFSET関数利用でもよいが、INDEX関数のほうが普通かな。
=INDEX($A$1:$A$100,(ROW()-1)*2+1,1)
100はデータ数が多い場合はデータ行数に変える。
例データ A1:A5
a1
a2
a3
a4
a5
B1に上記。データ数の半数の行数を複写。
結果
a1
a3
a5


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報