Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Spaltenberechnung auf bestimmte definiert Spalte "einfrieren"
#1
Hallo Zusammen,
ich brauche mal einen Rat von den Spezialisten

Ich arbeite mit Excel 2010 und habe folgendes Problem:

Ich habe eine Excel Ziel-Tabelle in welche, über ein VBA Script, Werte aus anderen Tabellen eingetragen werden.
Das Script ist so aufgebaut, dass - sofern in die Zieltabelle bereits Werte eingetragen wurden, die bereits eingetragenen Werte (angeordnet in Spalten) um 5 Spalten nach rechts verschoben werden, die neuen Werte werden dann in die 5 freigewordenen Spalten eingetragen.
Hintergrund hierfür: die "Neusten" Werte stehen immer in den Spalten "M-N-O-P-Q"

In der Zieltabelle verwende ich für die Ermittlung von Teilsummen den SUMMEWENN(..) Befehl, nach folgendem Kriterien

=SUMMEWENN($B$3:$B$480;Suchkriterium,$M$3:$M$480)

Und jetzt ergibt sich folgendes Problem:
Nach dem "Einfügen" der neuen Spalten passt Excel automatisch den absoluten Zellenbezug $M$3:$M$480 auf $R$3:$R480 an

Meine Frage wäre: Wie lässt sich dies Unterbinden?

Vielen Dank für eure Unterstützung!!

Gruß
Dirk
Antworten Top
#2
Hallo

ich weiss nicht ob sich das automatische Anpassen des Zellbezugs vermeiden laesst.  Wenn man aber mit Vba arbeitet könnte man alternativ am Ende des Makro für die entsprechende Spalte den Replace Befehl einfügen!  Einfach mal ausprobieren ....
Columns(xx).Replace "$R", "$M"

mfg  Gast 123
Antworten Top
#3
(21.12.2017, 21:17)Gast 123 schrieb: Hallo

ich weiss nicht ob sich das automatische Anpassen des Zellbezugs vermeiden laesst.  ...
mfg  Gast 123

Hallo, sicher geht das - mit INDIREKT() - aber ich frage mich nach dem Sinn Spalten dazwischen einzufügen...
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#4
(21.12.2017, 21:44)Jockel schrieb: Hallo, sicher geht das - mit INDIREKT() - aber ich frage mich nach dem Sinn Spalten dazwischen einzufügen...

Ich denke, damit die aktuellen Werte möglich weit links stehen, um nicht scrollen zu müssen.

Man könnte aber auch die neuen Werte rechts einfügen und die nicht benötigten Spalten mit "älteren Werten" per VBA ausblenden lassen.
Gruß Conny :)
_______________________________________________________________

Die Summe der Intelligenz auf unserem Planeten ist konstant, aber die Bevölkerung wächst!
Antworten Top
#5
Hallo

man könnte auch
  • mittels VBA die Formel neu reinschreiben, da VBA eh verwendet wird
  • =SUMMEWENN($B$3:$B$480;Suchkriterium;BEREICH.VERSCHIEBEN($B$3:$B$480;;11;;)), keine Ahnung wie das gegenüber INDIREKT() abschneidet
  • alternativ und wohl besser(?) für Bereich.Verschieben INDEX($B$3:$M$480;;12)

bei dem scheinbar kleinen Bereich sollte es mit keiner der bisher vorgestellten Lösungen Performanceprobleme geben, ich selbst würde wohl meinen Punkt 1 vorziehen, da habe ich auch gleich ne eingebaute Dokumentation, bzw. Auto-Restore falls es jdn. einfällt, die Formeln zu überschreiben :-)
Willie
Antworten Top
#6
(22.12.2017, 00:25)Willie017 schrieb: Hallo
...
=SUMMEWENN($B$3:$B$480;Suchkriterium;BEREICH.VERSCHIEBEN($B$3:$B$480;;11;;)), keine Ahnung wie das gegenüber INDIREKT() abschneidet

Hallo, ob das klappt, weiß ich nicht, weil's mich auch nicht interessiert (ohhhh)  , hier ist wohl INDIREKT() direkt eifacher und kürzer...


PHP-Code:
=SUMMEWENN($B$3:$B$480;Suchkriterium;INDIREKT("M3:M480")) 

Aber ich muss das mit dem Verschieben (der Spalten) immer noch nicht verstehen. Das macht mich nicht an... und wie ich finde, die Sache nur unnötig schwieriger...
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#7
(21.12.2017, 22:58)coemm schrieb: Ich denke, damit die aktuellen Werte möglich weit links stehen, um nicht scrollen zu müssen.
sehe ich auch so, aber irgendwann fällt dem TE dieses Datenmodell auf die Füße



Zitat:Man könnte aber auch die neuen Werte rechts einfügen und die nicht benötigten Spalten mit "älteren Werten" per VBA ausblenden lassen.
dann muss man aber die Formel auch neu 'berechnen', INDEX() in Verbindung mit ANZAHL2() würde wohl helfen
Willie
Antworten Top
#8
Hallo 


Zitat:Jockel

Hallo, ob das klappt, weiß ich nicht, weil's mich auch nicht interessiert (ohhhh)  , hier ist wohl INDIREKT() direkt eifacher und kürzer... 
mich schon, INDIREKT() ist m.W. volatil und deshalb für große Datenbereiche eher nicht geeignet, deshalb versuche ich immer 'bessere' Alternativen für mich zu finden, was mir zugegeben oft erst durch Versuch und Irrtum gelingt. Für den konkreten Fall gebe ich dir uneingeschränkt recht


Zitat:
PHP-Code:
=SUMMEWENN($B$3:$B$480;Suchkriterium;INDIREKT("M3:M480")) 

Aber ich muss das mit dem Verschieben (der Spalten) immer noch nicht verstehen. Das macht mich nicht an... und wie ich finde, die Sache nur unnötig schwieriger...

würde er transponieren, hätte er immerhin noch ca. 480 Spalten. Wir kennen die Gründe und Daten nicht, dauerhaft Daten sammeln und irgendwann auswerten ist bei dieser Vorgehensweise sicher nicht (gut) möglich, evtl. aber gar nicht geplant...
Willie
Antworten Top
#9
Hallo,

so?
=SUMMEWENN($B$3:$B$480;1;INDEX(3:3;;13):INDEX(480:480;;13))

Die Formel darf allerdings nicht in Zeile 3 oder Zeile 480 stehen.
VG
von René und seinen 3 Gehirnzellen

Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste