2017-05-10 1 views
0

印刷用にフォーマットされた請求書が満載のブックがあり、295の請求書の合計金額を合計する必要があります。最初の総支払期限はH22にあり、H71にはその次の金額50セル(H22は含まれません)が残ります。列Hの残りの部分には合計支払額とさまざまなテキストを構成する金額が含まれています。このように:列にもテキストが含まれている列の50行目を合計 - Excel

Charges 
10 
20 
30 
Amount Due: 
$60.00 

合計を構成する範囲を合計する方が簡単な場合は、それも機能します。

各範囲は10行、H11:H20です。それからH60:69ではそれ以下の50。

編集:セルH22、ではないH32

答えて

3

使用この配列数式:

=SUM(IF(MOD(ROW($H$1:INDEX($H:$H,MATCH(1E+99,$H:$H)))-1,50)=21,$H$1:INDEX($H:$H,MATCH(1E+99,$H:$H)))) 

は、配列数式なので、それは、編集モードを終了する場合はCtrl-Shiftキーを押しながら入力する代わりに入力して確認する必要があります。正しく実行された場合、Excelは{}を数式の周りに置きます。

+0

それは働きました。私はそれをチェックする何も持っていないが、それは正しいように見える。ありがとうございました! –

+0

@RonL主なもの: '50'はあなたのスペース、' 21'は出発点の行-1です。あなたのデータが正確に50ごとに間隔を置いていればうまくいきます。 –

+0

データは均等に配置されます。私は、合計を手動で追加して一致する人に尋ねました。私はそこで起こっていることのほとんどを理解していますが、MATCH()関数の[1E + 99]部分について説明できますか? –

0

VBAを使用できます。新しいモジュールを作成し、中に貼り付けます。

Option Explicit 

Public Function sum_with_gaps(r As Range, gapSize As Integer, dataSize As Integer) As Double 
    Dim ret As Double, i% 
    ret = 0 
    i = 1 
    Do While i + dataSize - 1 <= r.Count 
     ret = ret + WorksheetFunction.Sum(r.Range(r.Cells(i - 1, 1), r.Cells(i + dataSize - 1, 1))) 
     i = i + dataSize + gapSize 
    Loop 
    sum_with_gaps = ret 
End Function 

テストデータ:

a 
5.1 
5.2 
5.3 
5.4 
b 
b 
6.1 
6.2 
6.3 
6.4 
c 
c 
7.1 
7.2 
7.3 
7.4 
d 
=sum_with_gaps(A2:A17,2,4) 
関連する問題