Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1084to1088
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

WENN(von:bis) statt Verschachtelung bzw. Alternat.

WENN(von:bis) statt Verschachtelung bzw. Alternat.
Sven
Hola,
bin neu hier und hab gleich mal ein Problem. Wäre super, wenn Ihr ein Tipp habt.
Ich baue gerade eine Datenbank auf (momentan 70 Seiten). Diese soll ständig um Einheitspreis erweitert werden. In den letzten zwei Spalten kann ich die Einheitpreise mit den Massen von Bauvorhaben 1 oder 2 etc. berechnen.
Userbild
Das rote BV1 soll mir vorgeben, welche Massenermittlung berechnet wird. Wenn ich BV2 reinschreibe, tauchen entsprechende Preis auf. Die Daten der Massenermittlung selbst kann durch Gleiderung für den Druck ausgeblendet werden.
Mein Problem ist nun, das sich auch die BVs erweitern (durch kopieren eines leeren BVs), aber bei einer WENN-Verschachtelung ändert sich diese nicht. Ideal wäre das Argument (?) von:bis, aber das geht ja nicht... Also, was tun?
Hab schon so einiges ausprobiert, aber naja...
Hier mal eine kleine Demo meines Vorhabens:
https://www.herber.de/bbs/user/63061.zip

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
WVERWEIS
09.07.2009 19:34:16
Erich
Hi Sven,
mit WVERWEIS lagst du doch schon ganz richtig:
 J
7BV1
8 
9 
109,00
110,00
128,00
138,00
140,00

Formeln der Tabelle
ZelleFormel
J10=WVERWEIS($J$7;E$7:H$999;ZEILE()-6;0)
J11=WVERWEIS($J$7;E$7:H$999;ZEILE()-6;0)

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: WVERWEIS
09.07.2009 20:48:08
Sven
Hola,
und Danke auch Dir, klappt wunderbar.
Ich dachte ja eher daran eine Formel mit Zeilen Vektor zu nehmen, anstelle einer ganzen Matrix, aber ich brauche die Matrix ja gar nicht größer machen als die tabelle, denn diese ändert sich ja auch mit beim kopieren von Zeilen...
Meine Original Tabelle sieht aber etwas anders aus. Gehe ich davon aus, das ich die Zeile()-6 anpassen muß, wenn meine rote Zahl weiter unten steht?
Ansonsten, super Hilfe.
Nur welcher Eurer beiden Vorschläge ist nun einfacher im Sinne von "logischer"?
mal ein Verusch
09.07.2009 19:42:42
Mücke
Hallo Sven,
folgende Formel steht in J10 ...
=INDIREKT(ZEICHEN(64 + REST(VERGLEICH($J$7;$7:$7;0);26))&ZEILE())
... und dann einfach nach unten ziehen.
Gruß Dirk
Anzeige
schade, schade...
09.07.2009 19:52:35
jockel
... schade, dass es eine XL2007-datei ist, da werden manche, die evtl. eine idee haben oder das problem einfach nur interessiert ausgeschlossen...

cu jörg
ein feedback wär ganz reizend
@Jörg: ist ne .xls
09.07.2009 19:59:21
Mücke
owT
Gruß Dirk
AW: @Jörg: ist ne .xls
09.07.2009 20:45:22
jockel
hi jetzt, hats geklappt, vorhin war da eine andere datei, und die war XL2007... warum weiß ich auch nicht...
cu jörg
AW: schade, schade...
09.07.2009 20:41:22
Sven
Ist Excel 2002...
AW: mal ein Verusch
09.07.2009 20:40:34
Sven
Hola
und besten Dank!
Funktioniert tadellos, beim Kopieren von Zeilen und Spalten!!!
Aber bitte er kläre mir doch mal die Formel...
=INDIREKT(ZEICHEN(64 + REST(VERGLEICH($J$7;$7:$7;0);26))&ZEILE())
Den VERGLEICH erkenne ich:
Mein rotes BV mit allem in der gleichen Spalte, und dann?
Was mach ZEICHEN(64+...;26)?
Warum 64, Warum 26?
Was macht REST und was bedeutet ZEILE ()?
Huihuihui...
Ich meine das sollte ich wissen, weil meine Original Tabelle ja so riesig, d.h. das nicht unvorhergesehenes passiert...
Dankeschön nochmal!!!
Anzeige
mal ein anderer Versuch
09.07.2009 20:53:47
jockel
hi Sven,
Tabelle1
 JKLMN
7Kopie v. BV3440,00     
8         
9         
106,0060,006,006,006,00
115,00100,005,005,005,00
124,00120,004,004,004,00
134,00120,004,004,004,00
141,0040,001,001,001,00
15         

verwendete Formeln
Zelle Formel
K7 =SUMME(K9 :K15)
J10 =WENN($J$7=E$7;E10;WENN($J$7=F$7;F10;WENN($J$7=G$7;G10;WENN($J$7=H$7;H10;0))))
K10 =C10*J10
L10 =WVERWEIS($J$7;E$7 :H$999;ZEILE()-6;0)
M10 =INDIREKT(ZEICHEN(64 + REST(VERGLEICH($J$7;$7 :$7;0);26))&ZEILE())
N10 =INDEX(E10 :H10;;VERGLEICH($J$7;$E$7 :$H$7;0))
J11 =WENN($J$7=E$7;E11;WENN($J$7=F$7;F11;WENN($J$7=G$7;G11;WENN($J$7=H$7;H11;0))))
K11 =C11*J11
J12 =WENN($J$7=E$7;E12;WENN($J$7=F$7;F12;WENN($J$7=G$7;G12;WENN($J$7=H$7;H12;0))))
K12 =C12*J12
J13 =WENN($J$7=E$7;E13;WENN($J$7=F$7;F13;WENN($J$7=G$7;G13;WENN($J$7=H$7;H13;0))))
K13 =C13*J13
J14 =WENN($J$7=E$7;E14;WENN($J$7=F$7;F14;WENN($J$7=G$7;G14;WENN($J$7=H$7;H14;0))))
K14 =C14*J14

Tabellendarstellung in Foren Version 4.0



cu jörg
ein feedback wär ganz reizend
Anzeige
AW: mal ein anderer Versuch
09.07.2009 21:01:46
Sven
Hola!
Nun, jetzt war ich etwas verwirrt, aber da steckt jetzt noch eine Indexvariante drin.
Die verstehe ich sogar ;-)
Was mir neu ist, das ich die Zeile einfach leer lassen kann INDEX(...;;...)
Danke.
Aber was soll ich nun nehmen?
qual der wahl
09.07.2009 21:15:46
jockel
hi Sven, nimm einfach die variante, die auch nachvollziehen kannst, alle drei funzen - mir persönlich gefällt der WVERWEIS ganz gut und meine variante (weil ich gern mit dem INDEX arbeite... aber auch die ZEICHEN64 - variante ist schon cool, ZEICHEN(64) ergibt das @ ZEICHEN(64+1) ergibt A also ich denke ja den REST hätte man sich sparen können....
Tabelle1
 M
106,00
115,00
124,00
134,00
141,00

verwendete Formeln
Zelle Formel
M10 =INDIREKT(ZEICHEN(64+VERGLEICH($J$7;$7 :$7;0))&ZEILE())
M11 =INDIREKT(ZEICHEN(64+VERGLEICH($J$7;$7 :$7;0))&ZEILE())
M12 =INDIREKT(ZEICHEN(64+VERGLEICH($J$7;$7 :$7;0))&ZEILE())
M13 =INDIREKT(ZEICHEN(64+VERGLEICH($J$7;$7 :$7;0))&ZEILE())
M14 =INDIREKT(ZEICHEN(64+VERGLEICH($J$7;$7 :$7;0))&ZEILE())

Tabellendarstellung in Foren Version 4.0



cu jörg
ein feedback wär ganz reizend
Anzeige
AW: qual der wahl
09.07.2009 21:27:44
Sven
Okay, Danke nochmal,
aber warum @?
Liest sich das so: INDIREKT(...ZEILE&ZEILE()...)?
Ach, Teile ich Excel evtl. so die Spalte mit? A, B, ...?
Wow...
AW: qual der wahl
09.07.2009 21:33:52
jockel
hi Sven, ZEICHEN() ist eine formel... ZEICHEN(64) gibt halt @ ZEICHEN(65) A usw... da steht ja ZEICHEN(64+VERGLEICH()) beim VERGLEICH() bekommst du die zahl mit der 64 addiert wird und in der INDIREKT() formel dann den buchstaben ausbringt, das &ZEILE() - ist ja auch eine formel und gibt die jeweilige zeilennummer zurück also in M10 steht dann eigentlich INDIREKT(G10)...
cu jörg
AW: qual der wahl
09.07.2009 22:26:16
Sven
Ahhh, gut erklärt. Danke!
AW: mal ein Verusch
09.07.2009 21:59:06
Mücke
Hallo Sven,
auch wenn Jörg die Formeln schon beschrieben hat, versuche ich es auch mal:
Für J10...
mit =ZEICHEN(64 + REST(SPALTE();26)) lese ich den aktuellen Spaltenbuchstaben aus.
mit =VERGLEICH($J$7;$7:$7;0) erhalte ich die SpaltenNr. des gesuchten Wertes, hier die 5
mit =ZEILE() erhalte ich die aktuelle ZeilenNr., hier 10
mit =INDIREKT(ZEICHEN(64 + REST(VERGLEICH($J$7;$7:$7;0);26))&ZEILE()) fasse ich alle "Teilergebnisse" zusammen. (E5 & 10)
Ich hoffe es hilft dir weiter?!
Schönen Abend noch!
Gruß Dirk
Anzeige
AW: mal ein Verusch
09.07.2009 22:26:18
Sven
Besten Dank.
Das baue ich morgen gleich mal ein...
Gutes Nächtle und Danke für die Hilfe!!!
@ Mücke
10.07.2009 00:00:18
jockel
hi Dirk, ich glaube ja immer noch, dass REST hier nicht not tut, aber trotzdem eine tolle lösung...
cu jörg
AW: WENN(von:bis) statt Verschachtelung bzw. Alternat.
10.07.2009 07:52:03
Sven
Hola,
ich nochmal... Kann es sein, das die Funktion
=INDEX(Q6:X6;;VERGLEICH($Y$6;$Q$37:$X$37;0))
in Ecxel 2007 anders aussehen muß?
Hier erhalte ich nämlich #NV!
AW: WENN(von:bis) statt Verschachtelung bzw. Alternat.
10.07.2009 07:57:34
Sven
Hier mal ein Screenshot...
Userbild

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige