Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Teilnehmerkosten verteilen

868 views
Skip to first unread message

Friedrich Vosberg

unread,
Oct 9, 2012, 4:17:23 PM10/9/12
to
Moin.

Ich habe nach einer Tour mit Freunden eine Excel-Tabelle erstellt, in
der abh�ngig von der jeweiligen Teilnahmedauer, den Anreiseentfernungen
und den Auslagen genau ausgerechnet ist, wer wieviel noch zu bekommen
hat und wer wieviel noch zu zahlen hat.

Aber nun brauche ich eine Idee, wie ich diese Salden am sinnvollsten
ausgleiche. Das beste w�re nat�rlich, wenn dazu so wenig wie m�glich
�berweisungen n�tig w�ren. Aber wie macht man das? Und wie macht man das
in Excel?

Also Beispiel: Das Ergebnis der Tabelle sei:

A bekommt noch 30 Euro
B zahlt noch 170 Euro
C bekommt noch 80 Euro
D zahlt noch 40 Euro
E zahlt noch 20 Euro
F bekommt noch 110 Euro
G bekommt noch 10 Euro


Wie bekomme ich das am effizientesten, also mit so wenig wie n�tig
�berweisungen ausgeglichen, und wie bekomme ich das Excel-formelm��ig
ausgerechnet?

Gru�. Friedrich
--
http://www.rafv.de

post (at) vatolin (punkt) de

Martin Kienass

unread,
Oct 10, 2012, 1:21:28 AM10/10/12
to
Friedrich Vosberg <fvos...@me.com> schrieb:

[...]
> A bekommt noch 30 Euro
> B zahlt noch 170 Euro
> C bekommt noch 80 Euro
> D zahlt noch 40 Euro
> E zahlt noch 20 Euro
> F bekommt noch 110 Euro
> G bekommt noch 10 Euro
>
>
> Wie bekomme ich das am effizientesten, also mit so wenig wie nötig
> Überweisungen ausgeglichen, und wie bekomme ich das Excel-formelmäßig
> ausgerechnet?

Da ja jede Person entweder eine Zahlung erhält oder eine empfängt, wird
das Effizienteste sein, für jede Person eine Überweisung einzuplanen.
Mit weniger Überweisungen funktioniert es nur, wenn Bargeld zwischen
einzelnen Personen ausgetauscht werden darf.
Dafür bräuchte man doch eigentlich keine Formel in einer Excel-Tabelle?


--
____________
/schüüüüüüüß Martin Kienaß, Hamburg

Früher war mehr Lametta!

Friedrich Vosberg

unread,
Oct 10, 2012, 3:38:24 AM10/10/12
to
Martin Kienass <mar...@makienet.de> wrote:

> Friedrich Vosberg <fvos...@me.com> schrieb:
>
> [...]
> > A bekommt noch 30 Euro
> > B zahlt noch 170 Euro
> > C bekommt noch 80 Euro
> > D zahlt noch 40 Euro
> > E zahlt noch 20 Euro
> > F bekommt noch 110 Euro
> > G bekommt noch 10 Euro
> >
> >
> > Wie bekomme ich das am effizientesten, also mit so wenig wie n�tig
> > �berweisungen ausgeglichen, und wie bekomme ich das Excel-formelm��ig
> > ausgerechnet?
>
> Da ja jede Person entweder eine Zahlung erh�lt oder eine empf�ngt ...

�Erhalten� und �empfangen� ist doch das selbe. ;-) Gemeint ist wohl
�empf�ngt� oder �leistet�. Bist Du aber sicher, dass jede Person nur
entweder genau *eine* Zahlung erh�lt *oder* leistet? Das kann doch schon
deshalb nicht richtig sein, weil wie eine ungerade Anzahl an Personen
haben. Wenn zu Anfang keine Personen einen ausgeglichenen Saldo hat,
muss zwingend mindestens eine Person an zwei Zahlungsvorg�ngen beteiligt
sein, sonst geht's nicht auf. Das kann ich zwar nicht mathematisch
beweisen, aber es erscheint mir logisch.

Ich versuch's mal per Trial & Error:

B -> 170 -> F
F -> 60 -> C
D -> 40 -> A
E -> 20 -> C
A -> 30 -> G

F und A erhalten je eine Zahlung *und* leisten je eine Zahlung; C
empf�ngt *zwei* Zahlungen Daf�r sind B, D, E und G nur an je *einem*
Zahlungsvorgang beteiligt.

Das Prinzip des Beispiels ist Folgendes: Es muss zuerst derjenige mit
den gr��ten Schulden an denjenigen mit den h�chsten Aufwendungen zahlen;
und zwar muss er seine *gesamte* Schuld bezahlen, auch wenn dadurch beim
Zahlungsempf�nger eine �berzahlung eintritt. Diese Prinzip habe ich
gew�hlt, weil es mir irgendwie passend erschien, zun�chst einmal Geld im
Verh�ltnis der gr��ten Differenzen flie�en zu lassen.

Nach dieser Zahlung muss nun wiederum derjenige, der *jetzt* die
h�chsten Schulden hat, an denjenigen zahlen, der *jetzt* noch das meiste
zu bekommen hat; das kann - wie in meinem Beispiel - dazu f�hren, dass
der Zahlungsempf�nger aus der ersten Runde nun zahlen muss. Usw. usf.
Aber wie formulieren ich das in Excel, so dass die Zahlungsstr�me
automagisch dargestellt werden. Die Formel m�sste ja nicht nur
ermitteln, *wie viel* gezahlt werden muss, sondern auch *an wen*?

Wenn die Salden anders verteilt sind, z.B. wenn von sieben Teilnehmern
sechs noch Geld zu bekommen haben, dann ist klar, dass es mindestens
sechs Zahlungsvorg�nge geben muss.

Bei F�nfen, die noch Geld zu bekommen haben und zweien die zahlen
m�ssen, braucht man mindestens f�nf Zahlungsvorg�nge.

Im obigen Beispiel mit drei Zahlern und vier Empf�ngern scheinen
ebenfalls mindestens f�nf Zahlungsvorg�nge erforderlich zu sein.
Allenfalls wenn bei sieben Leuten die Salden so verteilt sind, dass sich
bei vier vonn ihnen die Salden decken, kommt man mit vier
Zahlungsvorg�ngen hin.

Aber wo ist da die mathematische Logik?

Martin Kienass

unread,
Oct 10, 2012, 6:06:20 AM10/10/12
to
Friedrich Vosberg <fvos...@me.com> schrieb:
> Martin Kienass <mar...@makienet.de> wrote:
>
>> Friedrich Vosberg <fvos...@me.com> schrieb:
>>
>> [...]
>> > A bekommt noch 30 Euro
>> > B zahlt noch 170 Euro
>> > C bekommt noch 80 Euro
>> > D zahlt noch 40 Euro
>> > E zahlt noch 20 Euro
>> > F bekommt noch 110 Euro
>> > G bekommt noch 10 Euro
>> >
>> >
>> > Wie bekomme ich das am effizientesten, also mit so wenig wie nötig
>> > Überweisungen ausgeglichen, und wie bekomme ich das Excel-formelmäßig
>> > ausgerechnet?
>>
>> Da ja jede Person entweder eine Zahlung erhält oder eine empfängt ...
>
> »Erhalten« und »empfangen« ist doch das selbe. ;-) Gemeint ist wohl
> »empfängt« oder »leistet«.

Ja, das war gemeint. War wohl noch etwas früh, heute morgen...

> Bist Du aber sicher, dass jede Person nur
> entweder genau *eine* Zahlung erhält *oder* leistet?

Nein. Meine Behauptung war, man braucht bei sieben Empfängern /
Leistern sieben Überweisungsvorgänge. Dabei war ich davon ausgegangen,
dass "jemand" ein gemeinsames "virtuelles" Konto verwaltet und die
Zahlungsein- und -ausgänge so steuert, dass dieses virtuelle Konto am
Ende aller Transaktionen null Saldo hat.
So würde ich es jedenfalls in der Praxis handhaben. Und ich denke nach
wie vor, dass dies die unkomplizierteste Methode sein müsste, soetwas
abzuwickeln.

> Das kann doch schon
> deshalb nicht richtig sein, weil wie eine ungerade Anzahl an Personen
> haben. Wenn zu Anfang keine Personen einen ausgeglichenen Saldo hat,
> muss zwingend mindestens eine Person an zwei Zahlungsvorgängen beteiligt
> sein, sonst geht's nicht auf. Das kann ich zwar nicht mathematisch
> beweisen, aber es erscheint mir logisch.
>
> Ich versuch's mal per Trial & Error:
>
> B -> 170 -> F
> F -> 60 -> C
> D -> 40 -> A
> E -> 20 -> C
> A -> 30 -> G
>
> F und A erhalten je eine Zahlung *und* leisten je eine Zahlung; C
> empfängt *zwei* Zahlungen Dafür sind B, D, E und G nur an je *einem*
> Zahlungsvorgang beteiligt.

OK, dann habe ich die Aufgabenstellung falsch verstanden. Textaufgaben
waren noch nie meine Stärke.
Ich verstehe zwar immer noch nicht, warum man das so unnötig
kompliziert und unübersichtlich handhaben wollen würde, aber gut, wenn
die Teilnehmer sich untereinander Geld überweisen dürfen (und wollen,
Kontodaten an "wildfremde" Personen herauszugeben muss nicht immer die
beste Idee sein), dann kommt man natürlich mit weniger Überweisungen
aus.

> Das Prinzip des Beispiels ist Folgendes: Es muss zuerst derjenige mit
> den größten Schulden an denjenigen mit den höchsten Aufwendungen zahlen;
> und zwar muss er seine *gesamte* Schuld bezahlen, auch wenn dadurch beim
> Zahlungsempfänger eine Überzahlung eintritt. Diese Prinzip habe ich
> gewählt, weil es mir irgendwie passend erschien, zunächst einmal Geld im
> Verhältnis der größten Differenzen fließen zu lassen.
>
> Nach dieser Zahlung muss nun wiederum derjenige, der *jetzt* die
> höchsten Schulden hat, an denjenigen zahlen, der *jetzt* noch das meiste
> zu bekommen hat; das kann - wie in meinem Beispiel - dazu führen, dass
> der Zahlungsempfänger aus der ersten Runde nun zahlen muss. Usw. usf.
> Aber wie formulieren ich das in Excel, so dass die Zahlungsströme
> automagisch dargestellt werden. Die Formel müsste ja nicht nur
> ermitteln, *wie viel* gezahlt werden muss, sondern auch *an wen*?

Ich glaube nicht, dass Du das Problem mit Formeln effizient erschlagen
können wirst.
Da wird man sich wohl ein VBA-Makro erstellen müssen, dass genau nach
dem von Dir beschriebenen Prinzip vorgeht und die jeweils höchsten Soll-
und Habensalden in einer Schleife solange ausgleicht, bis alle
Teilnehmerkonten auf Null stehen.

Da bin ich allerdings raus, das letzte Mal, dass ich VBA-Makros
geschrieben habe war vor der Jahrtausendwende, mit Excel '97 oder 2000.

Lisa Wilke-Thissen

unread,
Oct 11, 2012, 5:52:23 AM10/11/12
to
Hallo Friedrich,

"Friedrich Vosberg" schrieb

> > A bekommt noch 30 Euro
> > B zahlt noch 170 Euro
> > C bekommt noch 80 Euro
> > D zahlt noch 40 Euro
> > E zahlt noch 20 Euro
> > F bekommt noch 110 Euro
> > G bekommt noch 10 Euro

> Ich versuch's mal per Trial & Error:

> B -> 170 -> F
> F -> 60 -> C
> D -> 40 -> A
> E -> 20 -> C
> A -> 30 -> G

> F und A erhalten je eine Zahlung *und* leisten
> je eine Zahlung; C empf�ngt *zwei* Zahlungen
> Daf�r sind B, D, E und G nur an je *einem*
> Zahlungsvorgang beteiligt.

ich hab's mal mit Hilfsspalten und bedingter Formatierung versucht:
https://skydrive.live.com/redir?resid=F62C3C54E26D94CF!155&authkey=!AJ2dF8Rdh_1cUlQ

--
Ein sonniges Wochenende w�nscht
Lisa [MS MVP Word]


Jens Warnke

unread,
Oct 13, 2012, 5:28:31 AM10/13/12
to
Am 09.10.2012 22:17, schrieb Friedrich Vosberg:
> Moin.

> Also Beispiel: Das Ergebnis der Tabelle sei:
>
> A bekommt noch 30 Euro
> B zahlt noch 170 Euro
> C bekommt noch 80 Euro
> D zahlt noch 40 Euro
> E zahlt noch 20 Euro
> F bekommt noch 110 Euro
> G bekommt noch 10 Euro
>

Hallo,

Meine Lösung sieht wie folgt aus:

Zellen A1 bis A7 enthalten die Namen der Beteiligten (A, B, C, D,...)
Zellen B1 bis B7 enthalten die Summen, wobei "zu-zahlen-Beträge" als
Minuszahlen eingetragen sind.

B8 enthält die Formel =SUMME(B1:B7) - einfach zur Kontrolle, sollte 0
ergeben, falls nicht, ist irgendwo ein Zahlendreher drin.

B9 Formel =INDEX($A1:$A7;VERGLEICH(MIN(B1:B7);B1:B7;0))
ermittelt den Schuldner mit dem größten Schuldbetrag

B10 Formel =INDEX($A1:$A7;VERGLEICH(MAX(B1:B7);B1:B7;0))
ermittelt den Gläubiger mit dem größten Guthaben

B11 Formel =MIN(ABS(MIN(B1:B7));ABS(MAX(B1:B7)))
ermittelt den Geldbetrag, den B9 an B10 zu zahlen hat,
ohne dass eine Überzahlung auftritt.

C1 Formel =WENN($A1=B$9;B1+B$11;WENN($A1=B$10;B1-B$11;B1))
liefert den neuen Geldbetrag für A1
bis C7 runterziehen

anschließend C1 bis C7 markieren und nach rechts rüberziehen
anschließend B8 bis B10 markieren und nach rechts rüberziehen

Grüße
Jens

Alexander Wolff

unread,
Oct 13, 2012, 6:14:03 AM10/13/12
to
Ich stelle folgende Behauptung auf:

a) Bei N (=7) Leuten (Nehmer und Geber) mit ausnahmslos verschiedenen
Betr�gen bei Nehmern und Gebern ist die Mindestzahl der Transaktionen N-1
(=6). Dies wird erreicht, wenn 1 Geber von den restlichern Gebern die
Betr�ge erh�lt und dann alle Einzel�berweisungen an die Nehmer unternimmt.

Hier:
D an B 40 (gepoolt)
E an B 20 (gepoolt)
B an 4 Leute ACFG aufzuteilende 230 (gepoolt).
-------------
6 Vorg�nge

b) Die Mindestzahl wird f�r jede Kombination von gleichen Betr�gen bei einem
Geber und einem Nehmer um 1 erm��igt.

c) Ebenso wird sie um jeweils 1 erm��igt, wenn mehrere Betr�ge einer Seite
sich zu einem Einzelbetrag der anderen Seite summieren.

In diesen F�llen wird direkt ausgeglichen! Wir haben hier tats�chlich einen
Fall c):

D an A 30 (direkt)
D an G 10 (direkt)
E an B 20 (gepoolt)
B an C 80 (gepoolt)
B an F 110 (gepoolt)
-------------
5 Vorg�nge!

Als Modell scheint das nicht ganz trivial zu sein ("ein mehrdimensionales
T�rme von Hanoi"). Immerhin gibt es als Ansatz
http://www.excelformeln.de/tips.html?welcher=19
--
Moin+Gruss Alexander - www.xxcl.de - mso2000sp3 -50---5----60---5----702


Alexander Wolff

unread,
Oct 13, 2012, 6:30:58 AM10/13/12
to
Eingeschränkt: Verprobung von Zwischenkonten einer Buchhaltung

Konkret: Minimierung von Auslandszahlungen im informellen Zahlungsverkehr. A
und B sitzen in Deutschland, C und D in einem arabischen Land mit
eingeschränkter Konvertibilität und hohen Verlusten aufgrund stark
divergierender Geld- und Briefkurse.

A hat eine Forderung an C von 100.000 Euro

D hat eine Forderung an B von 80.000 Euro

Wissen nun alle 4 voneinander und sichern sich gegenseitig ab, zahlt B an A
sowie C an D jeweils 80.000 Euro.

Der Rest (von C an A: 20.000) wird entweder sofort geleistet, oder man
wartet das nächste Geschäft ab und verrechnet dann wieder.

Die Banken oder Wechselstuben bleiben außen vor!
http://de.wikipedia.org/wiki/Hawala

sebastian...@gmx.de

unread,
Nov 20, 2017, 6:56:39 PM11/20/17
to
Bin begeistert! Danke für den Tipp! Erleichtert doch einiges an Arbeit!
0 new messages