Microsoft Excel

Herbers Excel/VBA-Archiv

Spaltenname weiterverarbeiten

Betrifft: Spaltenname weiterverarbeiten von: Marcus Kempf
Geschrieben am: 20.11.2014 15:00:09

Hallo,

ich bin nun mittlerweile soweit, dass ich heraus gefunden habe, dass man ganzen Spalten Namen geben kann.

Ich skizziere mal kurz mein Anliegen.

Ich möchte eine Summenformel mit Zelle G1 als Start und Zelle J1 als Ende des zu prüfenden Bereichs angeben.

Die Spalte G habe ich mit "test" benannt und die Spalte J mit "test2".

Nun würde ich diese gerne wie folgt ansprechen:

=Summe(test,1:test2,1)
Dies wird jedoch durch den Formeleditor nicht zugelassen.

Wie würde die korrekte Syntax lauten?

Danke im Voraus.

  

Betrifft: mit INDEX() ... von: neopa C (paneo)
Geschrieben am: 20.11.2014 15:06:06

Hallo Marcus,

... =SUMME(INDEX(Test;1):INDEX(test2;1))


Gruß Werner
.. , - ...


  

Betrifft: AW: mit INDEX() ... von: Marcus Kempf
Geschrieben am: 20.11.2014 15:09:38

Hallo Werner,

klappt wunderbar.

ich danke Dir


  

Betrifft: AW: mit INDEX() ... von: Marcus Kempf
Geschrieben am: 20.11.2014 15:21:54

Hallo nochmal Werner,

ist es in dieser Form auch möglich mit Offset zu arbeiten?

Ich stelle mir folgendes vor:

INDEX(Test+1;1) ' für Spalte H
Das scheint jedoch nicht zu funktionieren.


  

Betrifft: so direkt nicht .... von: neopa C (paneo)
Geschrieben am: 20.11.2014 15:27:09

Hallo Marcel,

... aber Offest, bzw. BEREICH.VERSCHIEBEN() würde ich trotzdem nicht nutzen und die Bereichsnamensdefinition gar oder zumindest anders vornehmen.

Vielleicht erklärst Du zunächst Deine eigentliche Zielstellung an Deiner Datenstruktur (kleiner relevanter Tabellenauszug in einer Datei) Dann findest sich sicherlich eine günstige Lösung.


Gruß Werner
.. , - ...


  

Betrifft: AW: so direkt nicht .... von: Marcus Kempf
Geschrieben am: 20.11.2014 15:39:43

Hallo Werner,

ich habe mal ein Beispiel angehängt.

Es geht um Folgendes.

Ich habe Gruppierungen, die alle separat ausgewertet werden wollen.
Diese können über Makro wachsen und schrumpfen (column.insert column.delete)

Da diese Bereiche also dynamisch sind, versuche ich Sie nun über die Spalten Namen zu jedem Zeiten eindeutig und komplett zu erfassen.

Es soll zum Beispiel ermittelt werden, wieviele Spalten zur jeweiligen Gruppierung gehören.

Hierfür sind aber nun mal nur die Zellen zwischen beiden Bereichen interessant.
Also Bereich0 +1; Bereich1 -1.

Ich hoffe ich konnte das Problem verständlich darlegen, wenn nicht, einfach weiter nachfragen.

https://www.herber.de/bbs/user/93916.xlsm


  

Betrifft: weiter gefragt ... von: neopa C (paneo)
Geschrieben am: 20.11.2014 16:21:00

Hallo Marcus,

... es gibt womöglich (eindeutige?) Spaltenbeschriftungen in Zeile 1? Dann ließe sich dies einfach ermitteln.

Gruß Werner
.. , - ...


  

Betrifft: AW: weiter gefragt ... von: Marcus Kempf
Geschrieben am: 20.11.2014 16:27:10

Hallo Werner,

leider nicht, wäre dem so, dann würde ich den ganzen Affentanz nicht aufführen :-D

Ich bin ja schon froh, dass ich die vorliegenden Gruppierungen so abgrenzen kann.

Ist mir die Möglichkeit noch gegeben dies mit Offset zu tun, dann bin ich endlich all meine Sorgen mit diesem Problem los.

Ich habe es mit Bereich.Verschieben versucht, dass was ich dort zusammengesetzt habe, hat so jedoch nicht funktioniert, da ich (vermutlich mal wieder in Ermangelung der korrekten Syntax) nicht alle erforderlichen Argumente angegeben habe.

Folgendes war mein Versuch:

=NICHT(ISTLEER(BEREICH.VERSCHIEBEN(INDEX(Normalschicht!Bereich0+1;37));0;1)
Vielleicht kannst du mir das noch korrekt gerade rücken?

Danke im Voraus.

Marcus


  

Betrifft: nun dann, ... von: neopa C (paneo)
Geschrieben am: 20.11.2014 16:36:41

Hallo Marcus,

... wenn schon Namen definiert sind, dann kann man sich auch der bedienen.

Z.B so: =SPALTE(test2)-SPALTE(test1)-1
bzw. so: =SPALTE(Bereich1)-SPALTE(Bereich0)-1

Gruß Werner
.. , - ...


  

Betrifft: AW: nun dann, ... von: Marcus Kempf
Geschrieben am: 21.11.2014 08:24:19

Hallo Werner,

aber wie kann ich mir damit dann wieder meine Zellen adressen zusammensetzen?

Ich habe es nun wie folgt versucht:

=Summe((indirekt(37;Bereich0)):(indirekt(37;Bereich1))
Das funktioniert so leider nicht.


  

Betrifft: AW: nun dann, ... von: Marcus Kempf
Geschrieben am: 21.11.2014 08:27:24

Da war ich mit der Antwort zu schnell.


=Summe((indirekt(37;spalte(Bereich0)+1)):(indirekt(37;spalte(Bereich1)-1)))



  

Betrifft: nicht INDIREKT() sondern mit INDEX() ... von: neopa C (paneo)
Geschrieben am: 21.11.2014 08:47:42

Hallo Marcus,

... wenn Du wirklich die Summe der Werte aus Zeile37 zwischen den beiden Bereichen brauchst.
=SUMME(INDEX(1:99;37;SPALTE(Bereich0)+1):INDEX(1:99;37;SPALTE(Bereich1)-1))

Gruß Werner
.. , - ...


  

Betrifft: AW: nicht INDIREKT() sondern mit INDEX() ... von: Marcus Kempf
Geschrieben am: 21.11.2014 08:57:46

Hallo Werner,

Summe war nur als Beipeil gedacht.

Ich habe mal eine Beispieldatei angedacht, mit dem was ich erreichen möchte.

In Zelle K6 und K7 sind die jeweiligen Formel zu finden.

https://www.herber.de/bbs/user/93928.xlsm

Vielleicht ist so mein Problem verständlicher?


  

Betrifft: AW: nicht INDIREKT() sondern mit INDEX() ... von: Marcus Kempf
Geschrieben am: 21.11.2014 08:59:32

Wieder zu schnell geantwortet :-D

Die Formel in K7 lautet natürlich:

=NICHT(ISTLEER(INDEX(3;SPALTE(Bereich0)+1)))



  

Betrifft: AW: nicht INDIREKT() sondern mit INDEX() ... von: Marcus Kempf
Geschrieben am: 21.11.2014 09:01:32

Fehler ist gefunden:

=NICHT(ISTLEER(INDEX(1:99;3;SPALTE(Bereich0)+1)))
Aber was genau gibt der Bezug "1:99" jetzt an?

Die Spalten auf die angewendet wird?
Die Zeilen auf die angewendet wird?


  

Betrifft: zum Bezug 1:99 ... von: neopa C (paneo)
Geschrieben am: 21.11.2014 09:29:14

Hallo Marcus,


... damit wird der Datenbereich der ersten 99 Zeilen angesprochen. Den kannst Du natürlich je nach Erfordernis entsprechend anpasse, also verkürzen oder auch erweitern. Ich würde ihn nicht größer machen als max. wirklich notwendig.

Gruß Werner
.. , - ...


 

Beiträge aus den Excel-Beispielen zum Thema "Spaltenname weiterverarbeiten"