(ohne Betreff)


Liebe Liste,

habe folgendes Problem:

Bei einer Nutzungskartierung werden Flächen anhand von 150 unterschiedlichen Codes unterschieden. Ich habe jetzt 140 verschiedene Gebietskulissen und ebenso viele Rechenblätter mit bis zu 10.000 Zeilen. Jede Zeile steht für eine Fläche. In einer Spalte werden die Codes angegeben, in einer weiteren die Flächengröße. Ich möchte jetzt die Summen der einzelnen Nutzungsarten ermitteln und diesen Vorgang weitestgehend automatisieren, d.h. mir die Arbeit ersparen und die Tabellen nach Codes zu sortieren und die Zwischensummen für jeden Code als Summenformel einzugeben. Wenn möglich soll Ragtime selbst in der Spalte mit den Codes nachschauen und die entsprechenden Summen in einer weiteren Spalte angeben.

Weiß jemand eine Schlaue Formel mit der das Geht?

Schon mal vielen Dank.

gez. Hans-Peter Rohler


dr. hans-peter rohler
foundation 5+ landschaftsarchitekten
karthäuserstraße 7-9 | 34117 kassel
fon 0561-92000823 fax 0561-92000820


Hans-Peter Rohler
Kirchditmolder Straße 34
34131 Kassel



Re:

#6663 On 16 Juli, 2007 14:19 "Kai Brüning" said,

>Liebe Liste,
>
>habe folgendes Problem:
>
>Bei einer Nutzungskartierung werden Flächen anhand von 150 unterschiedlichen Codes unterschieden. Ich habe jetzt 140 verschiedene Gebietskulissen und ebenso viele Rechenblätter mit bis zu 10.000 Zeilen. Jede Zeile steht für eine Fläche. In einer Spalte werden die Codes angegeben, in einer weiteren die Flächengröße. Ich möchte jetzt die Summen der einzelnen Nutzungsarten ermitteln und diesen Vorgang weitestgehend automatisieren, d.h. mir die Arbeit ersparen und die Tabellen nach Codes zu sortieren und die Zwischensummen für jeden Code als Summenformel einzugeben. Wenn möglich soll Ragtime selbst in der Spalte mit den Codes nachschauen und die entsprechenden Summen in einer weiteren Spalte angeben.
>
>Weiß jemand eine Schlaue Formel mit der das Geht?

Hallo,

klingt schwer nach einem weiteren Fall für unsere Superfunktion Suchlauf. Suchlauf ist eine Art allgemeine Schleife für Rechenblätter: die Funktion läuft über einen Bereich und führt darauf eine Operation aus.

Sehr leistungsfähig, aber leider nicht so einfach zu benutzen wie eine einfache Summe.

Für genauere Hinweise wäre eine etwas genauere Beschreibung des gewünschten Ergebnis notwendig.

Grüße
Kai

Re:

#6664 On 16 Juli, 2007 14:34 "Dr. Hans-Peter Rohler" said,

…daran soll es nicht scheitern:

also ein Rechenblatt enthält ca. 10.000 Zeilen und mehrere Spalten.
In einer Spalte, sagen wir Spalte A sind Nutzngscodes enthalten
(dreistellige Ziffern, z.B. 481 für "landwirtschaftliche
Brachflächen" ) in einer weiteren Spalte (Spalte B) ist die
Flächengröße in qm angegeben. Bei 150 verschiedenen Nutzungscodes ist
klar das jeder Code mehrfach, manche eben über tausendmal in einem
Rechenblatt auftauchen. Ich möchte jetzt die Gesamtgröße der
jeweiligen Nutzung in einer Gebietskulisse ermitteln, also müsste
Ragtime erkennen in welchen Zeilen in Spalte A die 481 steht um dann
die Einträge in Spalte B aufzuaddieren. Man müsste wahrscheinlich
für jeden Code eine entsprechende Suchformel schreiben die man dann
aber ja in allen 140 zu bearbeitenden Rechenblättern anwenden könnte..
Ich hoffe es ist jetzt ein klarer geworden was ich machen will.

Schon mal vielen Dank!!

Grüße
Peter

Am 16.07.2007 um 15:19 schrieb Kai Brüning:

>> Liebe Liste,
>>
>> habe folgendes Problem:
>>
>> Bei einer Nutzungskartierung werden Flächen anhand von 150
>> unterschiedlichen Codes unterschieden. Ich habe jetzt 140
>> verschiedene Gebietskulissen und ebenso viele Rechenblätter mit
>> bis zu 10.000 Zeilen. Jede Zeile steht für eine Fläche. In einer
>> Spalte werden die Codes angegeben, in einer weiteren die
>> Flächengröße. Ich möchte jetzt die Summen der einzelnen
>> Nutzungsarten ermitteln und diesen Vorgang weitestgehend
>> automatisieren, d.h. mir die Arbeit ersparen und die Tabellen nach
>> Codes zu sortieren und die Zwischensummen für jeden Code als
>> Summenformel einzugeben. Wenn möglich soll Ragtime selbst in der
>> Spalte mit den Codes nachschauen und die entsprechenden Summen in
>> einer weiteren Spalte angeben.
>>
>> Weiß jemand eine Schlaue Formel mit der das Geht?
>
> Hallo,
>
> klingt schwer nach einem weiteren Fall für unsere Superfunktion
> Suchlauf. Suchlauf ist eine Art allgemeine Schleife für
> Rechenblätter: die Funktion läuft über einen Bereich und führt
> darauf eine Operation aus.
>
> Sehr leistungsfähig, aber leider nicht so einfach zu benutzen wie
> eine einfache Summe.
>
> Für genauere Hinweise wäre eine etwas genauere Beschreibung des
> gewünschten Ergebnis notwendig.
>
> Grüße
> Kai
>
>
>

Re:

#6665 On 16 Juli, 2007 14:30 Tom Kaegi said,

Hallo

> Bei einer Nutzungskartierung werden Flächen anhand von 150
> unterschiedlichen Codes unterschieden. Ich habe jetzt 140
> verschiedene Gebietskulissen und ebenso viele Rechenblätter mit bis
> zu 10.000 Zeilen. Jede Zeile steht für eine Fläche. In einer
> Spalte werden die Codes angegeben, in einer weiteren die
> Flächengröße. Ich möchte jetzt die Summen der einzelnen
> Nutzungsarten ermitteln und diesen Vorgang weitestgehend
> automatisieren, d.h. mir die Arbeit ersparen und die Tabellen nach
> Codes zu sortieren und die Zwischensummen für jeden Code als
> Summenformel einzugeben. Wenn möglich soll Ragtime selbst in der
> Spalte mit den Codes nachschauen und die entsprechenden Summen in
> einer weiteren Spalte angeben.
>
> Weiß jemand eine Schlaue Formel mit der das geht?

Ein klarer Fall für einen Suchlauf!

Ich nehme mal an, die Fläche stehe in Spalte B und der Nutzungscode
in Spalte C. Ein solcher Nutzungscode, für welchen die Gesamtfläche
aller entsprechenden Nutzungen berechnet werden soll, laute "XXX".

Dann liefert die Formel (sie kann irgendwo im gleichen Rechenblatt
stehen - falls sie anderswo steht, muss die Bereichsreferenz
natürlich mit dem Namen des Rechenblatts ergänzt werden):

VSuchlauf(B:C;Spaltenwert(2)='XXX';0;LfdResultat+LfdZelle)

die gesuchte Gesamtfläche mit dieser Nutzung.

Im Buch habe ich allerdings eindringlich vor der Benutzung der
Spaltenwert-Funktion gewarnt. Falls aus irgend einem Grund zwischen
Spalte B und C ein zusätzliche Spalte eingefügt würde, liefert die
Formel nicht mehr das gewünschte Ergebnis. Um dieses Problem zu
vermeiden, müsste die Formel lauten:

VSuchlauf(B:C;Index(C:C;LfdIndex)='XXX';0;LfdResultat+LfdZelle)

Mit freundlichem Gruss
Thomas

PS: Bitte das nächste Mal einen Betreff für das gestellte Problem
angeben!

Re:

#6666 On 16 Juli, 2007 15:23 "Kai Brüning" said,

Hallo,

Tom Kaegi war mal wieder schneller, seine Formel passt genau zu dem unten Beschriebenem. Wobei das 'XXX' in den Formeln natürlich auch wieder eine Referenz sein kann, um so den Nutzungscode dynamisch anzugeben.

Viel Erfolg!
Kai

>Šdaran soll es nicht scheitern:
>
>also ein Rechenblatt enthält ca. 10.000 Zeilen und mehrere Spalten. In einer Spalte, sagen wir Spalte A sind Nutzngscodes enthalten (dreistellige Ziffern, z.B. 481 für "landwirtschaftliche Brachflächen" ) in einer weiteren Spalte (Spalte B) ist die Flächengröße in qm angegeben. Bei 150 verschiedenen Nutzungscodes ist klar das jeder Code mehrfach, manche eben über tausendmal in einem Rechenblatt auftauchen. Ich möchte jetzt die Gesamtgröße der jeweiligen Nutzung in einer Gebietskulisse ermitteln, also müsste Ragtime erkennen in welchen Zeilen in Spalte A die 481 steht um dann die Einträge in Spalte B aufzuaddieren. Man müsste wahrscheinlich für jeden Code eine entsprechende Suchformel schreiben die man dann aber ja in allen 140 zu bearbeitenden Rechenblättern anwenden könnte..
>Ich hoffe es ist jetzt ein klarer geworden was ich machen will.
>
>Schon mal vielen Dank!!
>
>
>Grüße
>Peter
>
>
>Am 16.07.2007 um 15:19 schrieb Kai Brüning:
>
>>>Liebe Liste,
>>>
>>>habe folgendes Problem:
>>>
>>>Bei einer Nutzungskartierung werden Flächen anhand von 150 unterschiedlichen Codes unterschieden. Ich habe jetzt 140 verschiedene Gebietskulissen und ebenso viele Rechenblätter mit bis zu 10.000 Zeilen. Jede Zeile steht für eine Fläche. In einer Spalte werden die Codes angegeben, in einer weiteren die Flächengröße. Ich möchte jetzt die Summen der einzelnen Nutzungsarten ermitteln und diesen Vorgang weitestgehend automatisieren, d.h. mir die Arbeit ersparen und die Tabellen nach Codes zu sortieren und die Zwischensummen für jeden Code als Summenformel einzugeben. Wenn möglich soll Ragtime selbst in der Spalte mit den Codes nachschauen und die entsprechenden Summen in einer weiteren Spalte angeben.
>>>
>>>Weiß jemand eine Schlaue Formel mit der das Geht?
>>
>>Hallo,
>>
>>klingt schwer nach einem weiteren Fall für unsere Superfunktion Suchlauf. Suchlauf ist eine Art allgemeine Schleife für Rechenblätter: die Funktion läuft über einen Bereich und führt darauf eine Operation aus.
>>
>>Sehr leistungsfähig, aber leider nicht so einfach zu benutzen wie eine einfache Summe.
>>
>>Für genauere Hinweise wäre eine etwas genauere Beschreibung des gewünschten Ergebnis notwendig.
>>
>>Grüße
>>Kai
>>
>>
>>
>
>

Re:

#6667 On 16 Juli, 2007 15:24 "Dr. Hans-Peter Rohler" said,

… ich hab's gerade ausprobiert und es funktioniert einwandfrei … echt
super!!

Vielen Dank!!!!

Grüße

Peter

Am 16.07.2007 um 16:23 schrieb Kai Brüning:

> Hallo,
>
> Tom Kaegi war mal wieder schneller, seine Formel passt genau zu dem
> unten Beschriebenem. Wobei das 'XXX' in den Formeln natürlich auch
> wieder eine Referenz sein kann, um so den Nutzungscode dynamisch
> anzugeben.
>
> Viel Erfolg!
> Kai
>
>
>> Šdaran soll es nicht scheitern:
>>
>> also ein Rechenblatt enthält ca. 10.000 Zeilen und mehrere
>> Spalten. In einer Spalte, sagen wir Spalte A sind Nutzngscodes
>> enthalten (dreistellige Ziffern, z.B. 481 für "landwirtschaftliche
>> Brachflächen" ) in einer weiteren Spalte (Spalte B) ist die
>> Flächengröße in qm angegeben. Bei 150 verschiedenen Nutzungscodes
>> ist klar das jeder Code mehrfach, manche eben über tausendmal in
>> einem Rechenblatt auftauchen. Ich möchte jetzt die Gesamtgröße der
>> jeweiligen Nutzung in einer Gebietskulisse ermitteln, also müsste
>> Ragtime erkennen in welchen Zeilen in Spalte A die 481 steht um
>> dann die Einträge in Spalte B aufzuaddieren. Man müsste
>> wahrscheinlich für jeden Code eine entsprechende Suchformel
>> schreiben die man dann aber ja in allen 140 zu bearbeitenden
>> Rechenblättern anwenden könnte..
>> Ich hoffe es ist jetzt ein klarer geworden was ich machen will.
>>
>> Schon mal vielen Dank!!
>>
>>
>> Grüße
>> Peter
>>
>>
>> Am 16.07.2007 um 15:19 schrieb Kai Brüning:
>>
>>>> Liebe Liste,
>>>>
>>>> habe folgendes Problem:
>>>>
>>>> Bei einer Nutzungskartierung werden Flächen anhand von 150
>>>> unterschiedlichen Codes unterschieden. Ich habe jetzt 140
>>>> verschiedene Gebietskulissen und ebenso viele Rechenblätter mit
>>>> bis zu 10.000 Zeilen. Jede Zeile steht für eine Fläche. In einer
>>>> Spalte werden die Codes angegeben, in einer weiteren die
>>>> Flächengröße. Ich möchte jetzt die Summen der einzelnen
>>>> Nutzungsarten ermitteln und diesen Vorgang weitestgehend
>>>> automatisieren, d.h. mir die Arbeit ersparen und die Tabellen
>>>> nach Codes zu sortieren und die Zwischensummen für jeden Code
>>>> als Summenformel einzugeben. Wenn möglich soll Ragtime selbst in
>>>> der Spalte mit den Codes nachschauen und die entsprechenden
>>>> Summen in einer weiteren Spalte angeben.
>>>>
>>>> Weiß jemand eine Schlaue Formel mit der das Geht?
>>>
>>> Hallo,
>>>
>>> klingt schwer nach einem weiteren Fall für unsere Superfunktion
>>> Suchlauf. Suchlauf ist eine Art allgemeine Schleife für
>>> Rechenblätter: die Funktion läuft über einen Bereich und führt
>>> darauf eine Operation aus.
>>>
>>> Sehr leistungsfähig, aber leider nicht so einfach zu benutzen wie
>>> eine einfache Summe.
>>>
>>> Für genauere Hinweise wäre eine etwas genauere Beschreibung des
>>> gewünschten Ergebnis notwendig.
>>>
>>> Grüße
>>> Kai
>>>
>>>
>>>
>>
>>
>
>
>

Re:

#6669 On 16 Juli, 2007 15:09 Tom Kaegi said,

Hallo Peter

> also ein Rechenblatt enthält ca. 10.000 Zeilen und mehrere Spalten.
> In einer Spalte, sagen wir Spalte A sind Nutzngscodes enthalten
> (dreistellige Ziffern, z.B. 481 für "landwirtschaftliche
> Brachflächen" ) in einer weiteren Spalte (Spalte B) ist die
> Flächengröße in qm angegeben.
Nachdem du jetzt genauere Angaben gemacht hast, kann ich auch
präziser anleiten:

Allerdings mache ich gleich weitere Annahmen:
Dein Rechenblatt mit der Tabelle der Flächen und ihrer Nutzungscodes
heisse "Nutzflächen". Spaltenzuordnung gemäss deiner Angabe.
Ein zweites Rechenblatt heisse "Nutzungen". Dieses zweite Rechenblatt
enthalte in Spalte A ab Zeile 1 sämtliche Nutzungscodes und in Spalte
B sollen die entsprechenden Gesamtflächen pro Nutzungscode
eingetragen werden.

In Zelle B1 dieses Rechenblatts "Nutzungen" schreibst du folgende Formel

VSuchlauf(Nutzflächen!$A:$B;LfdZelle=A1;0;LfdResultat+Index
(Nutzflächen!$B:$B;LfdIndex))

Diese Formel kopierst du so weit nach unten, wie die Tabelle der
Nutzungscodes reicht. Oder natürlich noch besser, du machst einen
verschachtelten Suchlauf. Der äussere Suchlauf sucht die Tabelle der
Nutzungscodes ab und der innere ermittelt für jeden Nutzungscode die
Gesamtfläche. Dann brauchst du nur eine einzige Formel, z.B. in Zelle
C1 des Rechenblatts "Nutzungen" und musst nicht aufpassen, ob
plötzlich noch ein Nutzungscode mehr dazu gekommen ist und du deshalb
die Formel noch weiter nach unten kopieren solltest.

VSuchlauf(A:A;LfdZelle>0;0;SetzeZelle(VSuchlauf(Nutzflächen!$A:
$B;LfdZelle(1)=LfdZelle;0;LfdResultat+Index(Nutzflächen!$B:
$B;LfdIndex));B:B;LfdIndex))

Der äussere Suchlauf sucht Spalte A des Rechenblatts "Nutzungen" ab
und führt für jede Zelle in Spalte A, die einen Wert enthält, den
SetzeZelle-Befehl aus, der seinerseits für die Ermittlung des
einzutragenden Wertes einen inneren Suchlauf benützt. Dieser sucht in
Spalte A des Rechenblatts "Nutzflächen" alle Zellen, die den im
äusseren Suchlauf gerade untersuchten Nutzungscode enthalten und
summiert bei Erfüllung dieser Bedingung die Flächenwerte. Wenn die
Gesamtfläche für diesen Nutzungscode ermittelt ist, wird sie durch
die SetzeZelle-Funktion in Spalte B eingetragen und dann im äusseren
Suchlauf zum nächsten Nutzungscode weiter geschritten.

Zum Verständnis der Suchlauffunktion und damit der Interpretation
obiger Formeln empfehle ich dir, die Referenz "RagTime-Formeln und
Funktionen" zu konsultieren - und natürlich mein Buch zu lesen ;-) .

Mit freundlichem Gruss
Thomas

Re:

#6670 On 16 Juli, 2007 21:49 Thomas Kaegi said,

Hallo Peter, nochmals

In Ergänzung meines letzten Beitrags ist noch anzumerken, dass natürlich die Tabelle mit den Nutzungscodes, die errechneten zugehörigen Gesamtflächen und die Formel, statt in einem zweiten, auch im gleichen Rechenblatt stehen können, nehmen wir mal an in Spalte X die Nutzungscodes, in Spalte Y deren Gesamtflächen und in Zelle Z1 die Formel (zweite Variante):

VSuchlauf(X:X;LfdZelle>0;0;SetzeZelle(VSuchlauf(A:A;LfdZelle(1)=LfdZelle;0;LfdResultat+Index(B:B;LfdIndex));Y:Y;LfdIndex))

Im vorherigen Beitrag hatte ich für den inneren Suchlauf den Bereich mit A:B angegeben. Das ist nicht nötig, wenn für die Entnahme der Flächen aus der zweiten Spalte - wie von mir empfohlen - nicht die Spaltenwert-, sondern die Index-Funktion benutzt wird. Der Bereich A:A für den abzusuchenden Bereich, wie in obiger Formel, ist dann ausreichend.

Thomas