1.7k Aufrufe
Gefragt in Tabellenkalkulation von
=IF(OR(AND($K$27="group:";OR(CELL("contents";OFFSET(OV_all_groups;1;0))=select_WBS;CELL("contents";OFFSET(OV_all_groups;0;0))=select_WBS));LEFT(TRIM(CELL("contents";OFFSET(OV_WBSen;0;0)));LEN(TRIM(select_WBS)))=TRIM(select_WBS);select_WBS="ALL");INDIRECT(ADDRESS(CELL("contents";OFFSET(OV_all_groups;-1;0))+MATCH($F29;$F$29:$F$46;0)-1;COLUMN(BM$28))))
+IF(OR(AND($K$27="group:";OR(CELL("contents";OFFSET(OV_all_groups;1;1))=select_WBS;CELL("contents";OFFSET(OV_all_groups;0;1))=select_WBS));LEFT(TRIM(CELL("contents";OFFSET(OV_WBSen;0;1)));LEN(TRIM(select_WBS)))=TRIM(select_WBS);select_WBS="ALL");INDIRECT(ADDRESS(CELL("contents";OFFSET(OV_all_groups;-1;0))+MATCH($F29;$F$29:$F$46;0)-1;COLUMN(BM$28))))+....

wobei OV_all_groups  & OV_WBSen Bereiche sind in meinem Excel

Nun möchte ich in der nächsten Abfrage statt OFFSET(OV_all_groups;0;0)  =>OFFSET(OV_all_groups;0;1) =>OFFSET(OV_all_groups;0;2)   u.s.w. abfragen ... gibt es eine Möglichkeit dies zu tun ohne den ganzen string immer eingeben zu müssen    ich darf kein VBA verwenden, sonst würde ich eine for next schleife verwenden können

ein sum mit array {0;1;2;3;4;5;6}   funktioniert leider nicht da immer alle vorhandenen Zahlen addiert werden, auch bei jenen die nicht dem Kriterium entsprechen

4 Antworten

0 Punkte
Beantwortet von xlking Experte (1.6k Punkte)

Hallo,

Was meinst du mit "in der nächsten Abfrage"? Falls du die Formel einfach nur nach rechts ziehen bzw. kopieren willst, dann probiers mal mit

OFFSET(OV_all_groups;0;SPALTE()-SPALTE(OV_all_groups))

Gruß Mr. K.

0 Punkte
Beantwortet von

ich habe n Tabellen die untereinander stehen (mit dem gleichen Format, jedoch unterschiedlichen Inhalt) und je nachdem ob ich 3 Tabellen habe brauche ich für die Abfrage 3 x den selben String wobei sich immer nur OFFSET(OV_all_groups;0;n)  ändert. alles andere bleibt gleich also 3 tabellen 3 Abfragen , mein problem ist nun zusätzlich das sum (...OFFSET(OV_all_groups;0;{0;1;2;3;..;n}) auch nicht funktioniert da dabei immer der max. Wert herauskommt (der Zelleninhalt jeder Tabelle wird addiert, nicht jedoch der abgefragte Inhalt, der sonst nur mit "+" aneinander gefügt perfekt passt, aber wie gesagt da muß ich den spring mit "+" n mal hineinander eingeben, und das wird eng, bzw. ist nicht möglich

0 Punkte
Beantwortet von
Du könntest es mit einer Datentabelle versuchen

Du Schreibst Deine Formel z.B. in H2 und den Wert der von 0 bis n gehen soll in H1 (und verweist natürlich in H2 auf diesen)

danach schreibst Du in H3 bis H100 deine Werte von 0 bis n (98 in meinem Fall)

markierst H2 bis I100

fügst eine Datentabelle ein (unter "was wäre wenn Analyse" in Daten)

und gibst bei Werte aus Zeilen =H2 ein  (Spalten kannst Du leer lassen)
0 Punkte
Beantwortet von
Hi , Ich habe die Lösung selbst gefunden, Danke fürs mitdenken.
Lösung:
=SUMIF(INDIRECT("S"&MIN(OV_billing_line)-2&":S"&MAX(OV_billing_line)-2);WBS_Input;INDIRECT(ADDRESS(MIN(OV_billing_line)+MATCH($F32;WBS_line_header;0)-2;COLUMN())&":"&ADDRESS(MAX(OV_billing_line)+MATCH($F32;WBS_line_header;0)-2;COLUMN())));

Somit brauche ich keine Schleife  und habe einfach eine Sumif verwendet mit versetzter Range bei der Summe da die Struktur der Tabelle immer gleich ist...

Mit min(OV_billing_line), bzw. max(OV_billing_line) hole ich mir den Rage bereich heraus versetzte um die zeile WBS_line_header  ...  das passt nun 100% egal vieviel tabellen ich nun habe
...