Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1528to1532
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

SUMIF mit Range-Variablen

SUMIF mit Range-Variablen
30.11.2016 18:21:33
Keetza23
Tacho,
ich versuche derzeit Simulationsdaten auszuwerten mit variabel großen Datenmengen, sprich Spalteneinträgen, auszuwerten. Dabei scheitere ich immerwieder an der SUMIF Formel mit einer entsprechend variablen Range.
Soweit sieht mein Code aus:
Dim A As Range
Dim S As Range
Dim AnzZeil As Long
AnzZeil = Range("D2").End(xlDown).Row
Set A = Range(Cells(2, 5), Cells(AnzZeil, 5))
Set S = Range(Cells(2, 9), Cells(AnzZeil, 9))
ActiveSheet.Range("K10:K19").Formula = "=SUMIF(A,RC[-1],S)"
'Man muss dazu sagen, dass die Spalten B bis J alle die gleichen Zeileneinträgeanzahl (=AnzZeil) besitzen
Leider zeigt mir Excel nach der Ausführung immer die Fehlermeldung '#Name' an und meckert, er könne mit meinen zugewiesenen Bereichen 'A' und 'S' nichts anfangen.
Hat von euch jemand eine Ahnung, wo der Fehler liegt?

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SUMIF mit Range-Variablen
30.11.2016 18:32:48
Daniel
Hi
zwei Fehler:
1. bei .Formula musst du A1-Zelladressen verwenden, keine R1C1-Adressen.
wenn du R1C1-Addressen verwenden willst (wg relativer Zellbezüge), dann musst du auch .FormulaR1C1 nehmen.
2. in der Formel brauchst du die Adressen der Zellbereiche und die musst du als Text entsprechend einbinden. Unter berücksichtigtung von R1C1 dann so:
...FormulaR1C1 = "=SumIf(" & A.Address(1, 1, xlr1c1) & ",RC[-1]," & S.Address(1, 1, xlr1c1) & ")"
wobei hier wahrscheinlich einfacher wäre:
...formular1c1 = "=SumIf(R2C5:R" & AnzZeil & "C5,RC[-1],R2C9:R" & AnzZeil & "C9)"

bei komplexeren Formeln bevorzuge ich, die Variablen der dummy-Text und replace in die Formeln einzubringen:
AnzZeil = Range("D2").End(xlDown).Row
FO = "=SumIf(R2C5:RxxxC5,RC[-1],R2C9:RxxxC9)"
FO = Replace(FO, "xxx", AnzZeil)
Range("K10:K19").FormulaR1C1 = FO
ist zwar etwas mehr Code, aber die Formel ist übersichtlicher.
Gruß Daniel
Anzeige
AW: SUMIF mit Range-Variablen
01.12.2016 19:36:35
Keetza23
Besten Dank Daniel, hat funnktioniert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige