Clever-Excel-Forum

Normale Version: INDEXVERGLEICH Funktion BEZUGSFEHLER
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Zusammen,

ich habe folgendes Problem mit einer Kombi aus Index- und Vergleichfunktion (Beispieldatei anbei)

Sobald ich eine andere Menge als 1.000 (bei der Menge 1.000 funktioniert die Abfrage einwandfrei) in die Zelle E16 eintrage, erhalte ich einen Bezugsfehler in den Zellen F16 und G16.
Kann mir jemand sagen, was an meiner Funktion falsch ist?


Außerdem wäre es schön, wenn die Funktion auch mit der ungefähren Übereinstimmung funktionieren würde. Also, wenn ich den Preis für 1.200 suche, mir auch der Preis für 1.000 ausgegeben wird.

Danke schon mal für Eure Hilfe :)

Liebe Grüße
sfo

https://www.ms-office-forum.net/forum/sh...p?t=360015
Hi,

für dein erstes Beispiel:
Code:
=SUMMENPRODUKT(($A$2:$A$15=$F$2)*($B$2:$B$15=F1)*($C$2:$C$15))
Hallo sfo,

wenn du auf die verbundenen Zellen verzichtest (und die Firmennamen immer gleich schreibst Blush ), ginge es zB so:
Zitat:{
=INDEX($A$5:$G$8;VERGLEICH($D16;$A$5:$A$8;0);VERGLEICH(42;SPALTE($A$4:$G$4)/(($A$4:$G$4=F$15)*($A$3:$G$3<=$E16));1))
}

Achtung! Matrixformel. Die geschweiften Klammern werden nicht mit eingegeben, sondern jede Bearbeitung mit Strg+Shift+Enter abgeschlossen.
Hallo WillWissen,

leider bekomme ich auch mit der Formel einen Bezugsfehler Undecided

Aber vielen lieben Dank für deine Hilfe.

LG
sfo

Hallo Helmut,

das sieht sehr gut aus :) Wollte aus Gründen der Übersichtlichkeit die Menge jeweils nur 1 x schreiben, aber so geht es auch :)

Vielen Dank!!!

LG
sfo
Hi,

deinen Bezugfehler kann ich nicht nachvollziehen:

Arbeitsblatt mit dem Namen 'Tabelle1'
ABCDEF
1MengeFormatPreisFormat90 x 90
25.00080 x 8060,00 €Menge7.000
35.00090 x 9065,00 €Preis45
46.00080 x 8050,00 €ungefähre Übereinstimmung funktioniert gar nicht
56.00090 x 9055,00 €
67.00080 x 8040,00 €Format80 x 80
77.00090 x 9045,00 €Menge10.000
88.00080 x 8030,00 €Preis10
98.00090 x 9035,00 €Ab Menge 9.000 funktioniert die ungefähre Übereinstimmung nicht mehr
109.00080 x 8020,00 €
119.00090 x 9025,00 €
1210.00080 x 8010,00 €
1310.00090 x 9015,00 €
1420.00080 x 805,00 €
1520.00090 x 907,50 €

ZelleFormel
F3=SUMMENPRODUKT(($A$2:$A$15=$F$2)*($B$2:$B$15=F1)*($C$2:$C$15))
F8=SUMMENPRODUKT(($A$2:$A$15=$F$7)*($B$2:$B$15=F6)*($C$2:$C$15))
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Hallo Helmut,

danke nochmal für deine Hilfe.

Wie müsste die Formel lauten, wenn ich die Tabelle transponiere und noch eine Spalte einfüge? Ich bekomme immer die Meldung, dass durch 0 dividiert wird.

Beispieldatei nochmal anbei :)

VIelen Dank schon mal :)
Hallo sfo,

ich bin zwar nicht Helmut, hab mich aber mal Deiner neuen Aufgabe angenommen.

Einge Deiner Angaben sind nicht eindeutig. Da Du aber von einer nun transponierter Tabelle schreibst, geh ich davon aus, dass Du nun die Daten in I3:R8 meinst!?!

Es fehlen in dieser Datentabelle jedoch Angaben für das Format: "48,3 x 201,1" und außerdem ist unklar, ob Du für eine beliebige Datenmenge wieder den Preis ermitteln willst, der der nächstkleineren Menge  zugewiesen ist. Ich hab dieses nachfolgend zunächst angenommen. Eine andere Ergebnisermittlung ist natürlich auch möcglich, bedarf aber dann Deiner entsprechenden Angaben, wie diese erfolgen soll.

In P4 hattest Du übrigens auch "Fima A" anstelle "Firma A" geschrieben, was ich korrigiert habe.

Die Ergebnisliste hab ich der leichteren Übersicht hier im Beitrag halber gegenüber in Deiner Beispiedatei etwas verschoben. Meine dortige Formel in L12 ist nach unten und rechts ziehend kopieren. In Deiner Datei kannst Du diese Liste natürlich wieder an die von Dir gwünschte Stelle verschieben.

Arbeitsblatt mit dem Namen 'Tabelle2'
IJKLMNOPQRS
325 x 14025 x 14030 x 10530 x 10535 x 13435 x 134
4Firma AFirma BAbweichungFima AFirma BAbweichungFirma AFirma BAbweichung
51000100,00 €200,00 €50,00%150,00 €250,00 €40,00%220,00 €310,00 €29,03%
61500600,00 €500,00 €-20,00%650,00 €550,00 €-18,18%350,00 €460,00 €23,91%
72000400,00 €300,00 €-33,33%450,00 €350,00 €-28,57%420,00 €540,00 €22,22%
830001.500,00 €1.200,00 €-25,00%1.600,00 €1.300,00 €-23,08%1.700,00 €1.900,00 €10,53%
9
10
11FormatMengeFirma AFirma B
1225 x 1401000100,00 €200,00 €
1325 x 1401001100,00 €200,00 €
1435 x 1341777350,00 €460,00 €
1548,3 x 201,12145
16

ZelleFormel
L12=WENNFEHLER(AGGREGAT(14;6;INDEX($5:$9;;VERWEIS(9;1/($J$3:$Z$3=$J12)/($J$4:$Z$4=L$11);SPALTE($J1:$Z1)))/($I$5:$I$9<=MAX($K12;1000));1);"")

ZelleGültigkeitstypOperatorWert1Wert2
J12Liste=$A$5:$A$8
J13Liste=$A$5:$A$8
J14Liste=$A$5:$A$8
J15Liste=$A$5:$A$8
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.02] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Hallo sfo,

in meinem letzten Lösungsvorschlag war die Funktion SPALTE und der Start das Indexbereiches ab Spalte A gar nicht notwendig.

Verkürzt sieht die Formel jetzt so aus:
Code:
{
=INDEX($B$5:$G$8;VERGLEICH($D16;$A$5:$A$8;0);VERGLEICH(42;1/(($B$4:$G$4=F$15)*($B$3:$G$3<=$E16));1))
}

Ich nehme an, dass Werners Formel auch richtig ist. Wenn man aber meinen obigen Vorschlag auf die transformierten Daten umschreibt, ist die Formel so richtig:
Code:
{
=INDEX($J$5:$R$8;VERGLEICH($J16;$I$5:$I$8;1);VERGLEICH(42;1/(($J$4:$R$4=K$15)*($J$3:$R$3=$I16));1))
}

Achtung! Matrixformel. Die geschweiften Klammern werden nicht mit eingegeben, sondern jede Bearbeitung mit Strg+Shift+Enter abgeschlossen.

Neben den geänderten Bezügen muste bei der Ermittlung der Zeile der dritte Parameter der Vergleichsfunktion auf 1 gesetzt werden und bei der  Ermittlung der Spalte  im zweiten Teil des Divisors das "<=" durch ein "=" ersetzt werden.

ps In dieser neuen Version ist anstelle der 42 jede andere Zahl >= 1 auch möglich.
Hallo Helmut,

natürlich ergibt Deine Formellösung (im Normalfall) auch die gleiche Ergebnisse wie mein Vorschlag.
In Deiner Formel könnte noch ein Klammerpaar eingespart werden, wenn die Bedingungsprüfung konsequent über Division vorgenommen wird. In den früheren Excelversionen war die MSO-Hilfe für VERGLEICH() auch noch besser/umfassender, wonach man auch das 3. Argument (die ;1) inklusive des vorangehenden Semikolons hätte einsparen können.

In meiner Formel hab ich darüber hinaus bewusst den Lösungsteil mit WENNFEHLER() geklammert und auch Mengen kleiner 1000 berücksichtigt. Beides kann in Deiner Formel analog noch eingebaut werden (für letzteres anstelle  ... VERGLEICH($J16;... eben ... VERGLEICH(MAX($J16;1000);...)

Ich verzichte aber weiterhin wo möglich prinzipiell auf klassische Matrixformellösungen, u.a. deswegen weil eine solche den spez. Formelabschluss notwendig macht. Diese Lösungsform hat sich auch anderweitig mittlerweile bewährt.
Moin Werner!
Lediglich ein paar allgemeine Anmerkungen:
Mittlerweile verzichtet Excel auf den speziellen Abschluss per Strg+Shift+Enter
(dies trifft nicht auf Nicht-Abo-Versionen zu)

Ist einerseits nur folgerichtig, denn schließlich ist selbst SUMME() eine Matrix-Formel, AGGREGAT() oder SUMMENPRODUKT() erst Recht.
Andererseits ertappe ich mich ab und an dabei, dass ich den wichtigen Hinweis schlicht vergesse, weil ich nicht (mehr) daran denke.

Gruß Ralf
Seiten: 1 2