2013-01-17 11 views
12

Bir sütundaki toplamı hesaplamak ve daha sonra, belirli bir satırdaki geçerli satıra (wich formülünde bulunanlar) bulunan değerleri kullanarak başka bir sütunda BUT numaralı toplamı çıkarmak istiyorum. = (sum (A1: Ben C5 içindeyimExcel formülünde dize harfi ve geçerli satır numarası kullanılarak hücre kimliği nasıl ifade edilir?

supose:

Yani, bir "gayri özel dil", böyle bir şey gerekir "A" + SATIR()) - toplam (B1: "B" + ROW()))

Bunun için excel'de doğru bir açıklamayı nasıl yazabilirim? İşte

=SUM(INDIRECT("A1:A"&ROW()))-SUM(INDIRECT("B1:B"&ROW())) 

biz "A1:A" bir 'saplama' ile başlar:

cevap

16

Bir dizi bir dize başvuru kabul eder ve aralığın kendisini döndüren INDIRECT, kullanmayı da deneyebilirsiniz. Daha sonra mevcut satırı ROW() (bu örnekte 5'e kadar) ile aldık ve bize INDIRECT("A1:A5")'u vererek, bizim sapladığımızla birleştirdik. INDIRECT argümanı ("A1:A5" burada) referans verilen aralığı döndürdüğünden, sonucu elde etmek için SUM formülüyle sarılabiliriz (SUM(A1:A5) ile aynıdır). Daha sonra B sütununda aynı şeyi yaparız.

+2

muhtemelen, örneğin, 'daha az uçucu olabilir = TOPLAM (A1: INDEX (A: A, ROW())) - SUM (B1: INDEX (B: B, ROW())) –

+0

@barryhoudini Sabit kodlanmış referanslardan kaçının ve dinamik tutun, bununla tartışamazsınız hiç (Eğer bunu yayınlarsanız kesinlikle oy vereceğim). – RocketDonkey

6

Sanırım geriye doğru bakarak olabilirsiniz. İlk hücre referansını ilk satırda SUM'a bağlamanız gerekir, ancak ikinci hücre referansının satır ile değişmesine izin verin. C1 hücrede bu deneyin:

=SUM(A$1:A1) - SUM(B$1:B1) 

Şimdi sütununda aşağı, o olur anlaşıldı zaman:

C2: = SUM (A $ 1: A2) - SUM (B $ 1 : B2)
C3: = TOPLAM (A $ 1: A3) - TOPLAM (1 $ B: B3)
C4: = TOPLAM (A $ 1: A4) - SUM (B $ 1: B4)
C5: = TOPLAM (A $ 1: A5) - TOPLAM (B $ 1: B5)

+0

+1 - niyet, veriler boyunca rasgele aralıklı 'subtotal' hücrelere sahip değilse ve bunun yerine her satırda hesaplama yapmıyorsa, bu şekilde oy veriyorum :) – RocketDonkey

+0

Evet, bu harika bir cevap. Ama özellikle bir birleştirme yolu sorduğum için doğru cevabın ilk olduğuna inanıyorum. + 1 de. Bu cevap için bir soru yoksa, yaratılmalıdır! :) – Michael

+0

INDIRECT'i kullanmak, hesaplamayı önemli ölçüde yavaşlatabileceğinden genellikle kötü bir fikirdir: Bill'in cevabı, yapmaya çalıştığınız şeyin doğru cevabıdır. –

1
C5:= (SUM))-(SUM)) 

Bu deneyin: indeks kullanılarak

C5:= (SUM(INDIRECT("A1:A" & ROW()))-(SUM(INDIRECT("B1:B" & ROW())) 
İlgili konular