Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1472to1476
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Sverweis

Sverweis
08.02.2016 15:43:17
Karin
Guten Tag,
Ich habe eine Preisstaffelung (gestaffelt wird nach KG)
In meiner Ausgangstabelle habe ich das Gewicht errechnet, das entweder ganzzahlig oder ,5 ausgegeben wird.
Jetzt möchte ich in der Tabelle das Gewicht suchen, um den Preis in einer Zelle auszugeben.
das Problem ist: in der Staffelung werden ZB nur von 1 bis 5 Kommazahlen angegeben, also 1,0, 1,5, 2,0 ... 5,0
ab 6 kg geht die Staffelung nur noch ganzzahlig weiter.
Habe ich in meiner Tabelle zum Beispiel ein Gewicht von 6,5 errechnet, gibt meine Formel den Wert aus, der bei 6,0 steht. Er soll
aber den Wert von 7,0 kg nehmen.
Ich habe überlegt ob ich in meiner Tabelle eine Hilfsspalte mache, in der der Wert des Gewichts wenn er größer 6 ist ganzzahlig aufgerundet wird. Also steht zb in meiner Zelle A1 mein errechnetes Gewicht, möchte ich in A2 den ganzzahlig aufgerundeten wert haben, aber nur wenn das Gewicht größer 6 ist
Wie kann ich da am besten vorgehen?
Vielen Dank im Voraus
Karin

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: z.B mit AGGREGAT()...
08.02.2016 16:03:49
...
Hallo Karin,
... auch wenn es anders natürlich auch geht.
 ABCDE
1KGPreis 6,54,55
21,05,00   
31,54,95   
42,04,90   
52,54,85   
63,04,80   
73,54,75   
84,04,70   
94,54,65   
106,04,60   
117,04,55   
128,04,50   
139,04,45   
1410,04,40   
15     
16     
17     

Formeln der Tabelle
ZelleFormel
E1=SVERWEIS(WENNFEHLER(AGGREGAT(15;6;A1:A99/(A1:A99>=D1); 1); MAX(A:A)); A:B;2;0)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...

Anzeige
kleine Korrektur...
08.02.2016 16:37:36
Luschi
Hallo Karin & Werner,
bei mir klappt das erst richtig so:
=SVERWEIS(WENNFEHLER(AGGREGAT(15;6;$A$1:$A$99/($A$1:$A$99>=D1); 1); MAX(A:A)); A:B;2;0)
Gruß von Luschi
aus klein-Paris

AW: wieso? absolut ist hier nicht notwendig ...
08.02.2016 19:20:20
...
Hallo Luschi,
... weil doch die Formel (höchstwahrscheinlich) nicht kopiert werden muss. Und außer Deiner "Verabsolutierung" des Auswertungsbereiches kann ich ansonsten keine Änderung zu meiner Formel feststellen.
Gruß Werner
.. , - ...

Der Tabellenaufbau macht den Unterschied...
08.02.2016 18:45:27
silex1
Hallo,
einfach die erste Spalte um eine vesetzt nach unten und oben ne Null rein und schon ist die Formel klein:
Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDE
1KGPreis 7,24,5
205   
314,95   
41,54,9   
524,85   
62,54,8   
734,75   
83,54,7   
944,65   
104,54,6   
1164,55   
1274,5   
1384,45   
1494,4   

ZelleFormel
E1=VERWEIS(D1;A2:A14;B2:B14)

VG
René

Anzeige
AW: mir ging es aber nicht um die "Kürze" ...
08.02.2016 19:23:45
...
Hallo René,
... sondern um eine weitere Anwendungsmöglichkeit von AGGREGAT().
Deshalb hatte ich ja auch geschrieben: "auch wenn es anders natürlich auch geht"
Gruß Werner
.. , - ...

Ja, ja, aber es gibt garantiert mehr, ...
09.02.2016 04:06:24
Luc:-?
…bei denen das verzichtbar ist, Werner,
und wahrscheinlich auch mehr, bei denen man AggregateXk einsetzen könnte… ;-]
Morrn, Luc :-?
Besser informiert mit …

AW: sicher, aber ...
09.02.2016 09:11:51
...
Hallo Luc,
... es geht auch ohne AGGREGAT() oder ohne AggregateXk oder auch ohne VERWEIS() sondern z.B. auch mit SVERWEIS() und AUFRUNDEN(). Ich nehme halt oft das, was mir gerade in den Sinn kommt und schaue da meist nicht auf Formelperformance und nicht auf Formellänge. Bei derartigen Formeln ist das effektivste, was am schnellsten einen zu Verfügung steht.
Außerdem war und ist mir noch nicht eindeutig klar, ob Karin das wirklich mit diesem Ergebnis möchte. Es könnte ja sein, dass sie bei einem Gewicht von 6,45kg den Preis für 6,0 kg haben möchte, wobei das zugegebenermaßen etwas praxisfern ist.
Gruß Werner
.. , - ...

Anzeige
Tja, richtig, geht mir auch so - mit dem ...
09.02.2016 14:26:05
Luc:-?
…kleinen Unterschied, Werner,
dass ich nicht so sehr auf AGGREGAT fixiert bin, auch nicht auf AggregateXk, obwohl ich das jetzt ein paar mal vorgeschlagen hatte — ich habe da ja noch was Besseres…
Und was Karin wirklich will, muss sie dann auch sagen…! ;-)
Gruß, Luc :-?

OT: Interessanter INDEX-Hinweis für neopa!
10.02.2016 10:35:27
Luc:-?
Hallo, Werner;
viell könntest du auch mal hier hineinsehen; nicht unbedingt um eine alternative Lösung zu liefern, was du aber gerne tun kannst, sondern weil ich hier 1. einen weiteren Beleg für die Existenz dieser besonderen, 2zelligen Art von quasi 1zelligen MatrixFmln erstellt habe und 2. auf ein merkwürdiges Verhalten von INDEX gestoßen bin, das dich sicher auch interessieren wird. Dazu Folgendes:
a) Bisher konnte man davon ausgehen, dass ein weggelassenes AuswahlIndex-Argument durch 0 ersetzt wird, wenn wenigstens das zugehörige Semikolon angegeben wurde. Das scheint auch immer noch so zu sein, aber diese 0 wird jetzt wohl wie 1 behandelt, was du sehen kannst, wenn du den INDEX-Teil der separat darge­stellten Fml in eigene Zellen einträgst und dabei den ZeilenIndex durch 0 ersetzt.
b) Das von mir original benutzte ZeilenIndex-Datenfeld hat früher auch schon fktioniert, weil Xl die Indizes nacheinander zeilen( bzw spalten-)abhängig benutzt hat, das Datenfeld quasi durchgegangen ist (dazu hatten wir und wohl auch andere schon, zT vor Jahren, diskutiert → ich denke hier u.a. an NoNet). Mitunter war die Benutzung eines Index-Datenfelds auch schon früher erforderlich, aber meist im Zusammenhang mit diskontinuierlichen ZellBereichen (evtl habe ich damit aber erst seit Xl12/2007 experimentiert und diese Änderung ist dort schon eingetreten).
c) Ungewohnt ist auch das Verhalten des INDEX-Teils der OriginalFml in nur 2, noch dazu anders gerichteten Zellen. Es wird erstaun­licher­weise das ganze Datenfeld geliefert, was ich bisher, auch bei solchen Konstrukten, nicht feststellen konnte. Darüber, dass das nicht passiert, hatte sich mal vor Jahren NoNet gewundert und ich hatte mir und dir das mit der Wirkungsweise der Xl-Steuerung erklärt. Entweder hat MS jetzt (Xl14/2010?) an der etwas verändert oder eben an der Fkt.
Ich wäre dir jedenfalls verbunden (und auch robert und Matti, falls die mitlesen), wenn du das mal überprüfen könntest. INDEX ist doch sicher immer noch eine deiner „LieblingsFktt“! ;-)
Die neue BspDatei zum verlinkten Thread lade ich jetzt gleich hoch.
Gruß, Luc :-?

Anzeige
AW: OT: ist wirklich interessant ...
10.02.2016 19:00:02
...
Hallo Luc,
... doch ich durch schaue es und begreife nicht was da und warum es so funktioniert, jedenfalls zumindest nicht heute. Wir sollten dies aber im Auge behalten, ich werde es jedenfalls auch zumindest im Hinterkopf behalten.
Gruß Werner
.. , - ...

Danke für dein Interesse! Habe versucht, ...
11.02.2016 02:02:04
Luc:-?
…das an einer möglichst einfachen Fml nachzuvollziehen, Werner;
danach scheint der Fall 2c nicht wie ggf bei 2a/b an einer Änderung von INDEX (es könnte aber auch die XlSteuerung sein, die dahingehend modifiziert wurde!) zu liegen, sondern ein Effekt der Xl-Steuerung, genauer der Fml-Optimierung zu sein, der nur auftritt, wenn bestimmte Bedingungen zusammen­treffen, wobei es dann egal ist, ob mit SUMME oder SUMMENPRODUKT zusam­men­gefasst wird. Ein gesamter, von INDEX auf diese Weise gelieferter Vektor wird nicht nur ermittelt, sondern auch in diesem 2zelligen Typ einer quasi-1-zelligen MxFml weiter­verwendet, wenn dieser anschließend durch einen gleichlangen und wohl auch gleich­gerichteten Vektor dividiert bzw mit ihm multipliziert wird. Der wäre ja nun ganz einfach durch 1^ZEILE(A1:An) zu erreichen, wie es das folgende Bsp demonstriert. Als TestDaten reicht ein SpaltenVektor mit den Zahlen von 1…5. Deren Summe wäre 15. Mit der MxFml …
{=SUMME(INDEX({1;2;3;4;5};ZEILE(1:5)))}
…erhält man bekanntlich nur die „Summe“ jedes einzelnen Vektor­Elements in Arg1, wenn man entsprd viele Zeilen auswählt. Auch eine Auswahl von 2 gegen­gerichteten Zellen ändert daran nichts! Das wird sofort anders, wenn der INDEX-Ergebnis­Vektor anschld noch mit einem Vektor aus 1en multipliziert wird …
{=SUMME(INDEX({1;2;3;4;5};ZEILE(1:5))*1^ZEILE(1:5))}
Man kann aber auch einen NullVektor addieren:
{=SUMME(INDEX({1;2;3;4;5};ZEILE(1:5))+0*ZEILE(1:5))}
Damit das richtige Ergebnis 15 herauskommt, ist die quasi-1-zellige MxFml-Form über 2 Zellen erforderlich, wodurch man 2 gleiche Ergebnisse erhält. Mit einer 1zelligen MxFml erhält man nur die Summe von 5× 1em Element, also hier 5.
In diesem Fall könnte man also wirklich von einer echten MatrixFormelFktionalität bzw Matrix­Fktionalitäts­Fml sprechen, denn an diesem Effekt ist die ganze Fml beteiligt. Die Fkt SUMME macht das nur sichtbar, denn ohne diese umschließende Fkt wäre das eine normale mehr­zellige MxFml und der besondere Effekt würde gar nicht auf­fallen. Vielleicht hat das (mW) ja deshalb bisher niemand entdeckt oder es war ihm nicht klar, was das bedeutet!
Nebenbei, das scheint auch alles zu bestätigen, was ich bisher zu MxFmln und INDEX geschrieben hatte. Dieser MxFml-Sonder­fall könnte so auch zu einer wichtigen Alter­native bei der Vermeidung volatiler Fktt wdn, zumal AGGREGAT ja auch nur zu einem kleinen Teil für Daten­felder nutzbar ist. Das dabei die {}-Form und 2 Zellen zur „Motivation“ von Xl erforderlich sind, ist zwar bedauerlich, weil mit Mehr­Aufwand verbunden, aber ggf das kleinere Übel.
Gruß, Luc :-?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige