Das Clever-Excel-Forum.de - Treffen
... 14.-16. September 2018 im Allgäu ...

Formeln mit Dropdown verschachteln
#1
Hallo! Schon wieder meine Wenigkeit ^^...

Gibt es eine Möglichkeit Formeln in einer Zelle schön zu verschachteln?

Praxisbeispiel: Ich habe 4 Dropdown Menüs.
1. Menü beinhaltet die Norm
2. Menü beinhaltet das Medium
3. Menü beinhaltet die Einheit
4. Menü enthält eventuelle Spezifikationen (nicht immer vorhanden)

Nun wählt einer im 1. Menü ISO aus, dann das Medium Luft sowie die Einheit [bar] und danach wird nun geprüft ob ein gemessener Wert, der sich in einer Tabelle befindet, in einem bestimmten Rahmen liegt. In diesem Beispiel gibt's keine nähere Spezifikation.
Dabei wird zunächst unterschieden, ob der Messwert < bzw. >= einem Wert x ist, woraufhin dann geprüft wird ob dieser sich im vorgegebenen Rahmen von +- y befindet.

Also:
ISO ---> Luft     ---> [bar] ---> < x    ----> +- y
             Wasser       [Pa]         >= x         
             ....             ....
ASME ---> ...´

Fast jede Auswahl kann natürlich die Formeln verändern. Wähle ich nun Wasser aus, so wird sich auch mein Grenzbereich ändern.

Bisher habe ich solche Verschachtelungen mit ziemlich eng gepackten WENN Funktionen gelöst, allerdings wird das hier extrem lang^^...

Hätte jemand u. U. eine bessere Idee?

Anders Ausgedrückt:
Ich möchte Excel folgendes sagen. Für AUSWAHL1 und AUSWAHL2 und AUSWAHL3 und AUSWAHL4 ermittle folgendes --> [Rechenweg 1]
Für AUSWAHL2 und AUSWAHL1 und AUSWAHL3 und AUSWAHL1 ermittle folgendes --> [Rechenweg 2]

Gruß Green
to top
#2
Hallo,

hinterlege alle Rechenwege in separaten Zellen und greife über SVERWEIS aus den Dropdowns darauf zu. Ohne Muster gibt es allerdings keine weiteren Info´s
Gruß
Opa Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
to top
#3
(08.03.2016, 15:11)BoskoBiati schrieb: Hallo,

hinterlege alle Rechenwege in separaten Zellen und greife über SVERWEIS aus den Dropdowns darauf zu. Ohne Muster gibt es allerdings keine weiteren Info´s

Hi und vielen Dank für die Antwort.

Das habe ich mir auch vorhin gedacht. Mir fiel dann auch auf, dass es wahrscheinlich über 100 Fälle sind. Naja wäre die einzige Lösung denke ich ^^...

Ein Muster kann ich gerne hochladen, allerdings ist das mit Makros versehen und da momentan die Angst vor .locky umgeht, dachte ich es lieber sein zu lassen.

Beste Grüße
Green
to top
#4
Hi,


Zitat:Ein Muster kann ich gerne hochladen, allerdings ist das mit Makros versehen und da momentan die Angst vor .locky umgeht, dachte ich es lieber sein zu lassen.

sind die Makros zur Bearbeitung deiner Tabelle "lebenswichtig" oder dienen sie eher der Bequemlichkeit? Dann könntest du deine Datei als .slsx hochladen. Zur Not auch den Code hier einstellen.
Gruß Günter
Misserfolg ist eine Chance, es beim nächsten Mal besser zu machen.
(Henry Ford) http://www.sprueche-zum-nachdenken.eu
to top
#5
(08.03.2016, 20:32)WillWissen schrieb: Hi,


Zitat:Ein Muster kann ich gerne hochladen, allerdings ist das mit Makros versehen und da momentan die Angst vor .locky umgeht, dachte ich es lieber sein zu lassen.

sind die Makros zur Bearbeitung deiner Tabelle "lebenswichtig" oder dienen sie eher der Bequemlichkeit? Dann könntest du deine Datei als .slsx hochladen. Zur Not auch den Code hier einstellen.

Hi und vielen Dank für den Tipp. Die Datei ist nun angehängt. Die Codes sehen wie folgt aus:

3. Blatt_order:
Code:
Private Sub CommandButton1_Click()
Dim lErsteFreie As Long
With Sheets("3. Blatt_order")
       lErsteFreie = .Range("A1048576").End(xlUp).Offset(1, 0).Row
       .Unprotect
       .Rows("1:36").Copy
       .Range("A" & lErsteFreie).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
       .Range("A1:AU36").Copy
       .Paste
       .Protect
       .Range("A" & lErsteFreie + 8 & ":" & "AN" & lErsteFreie + 29).ClearContents
       .Range("AS" & lErsteFreie + 8 & ":" & "AT" & lErsteFreie + 29).ClearContents
       .PageSetup.PrintArea = "$A$1:$AU$" & lErsteFreie + 35
   End With
   Application.CutCopyMode = False
End Sub

3. Blatt_report: Ich weiß, es ist unschön^^... Hab's noch nicht zusammengefasst. Diente der Übersichtlichkeit.
Code:
Private Sub CommandButton1_Click()

   Sheets("3. Blatt_report").Copy Before:=Sheets("4. Blatt_report")
   
   ActiveSheet.Range("D9:F30").ClearContents
   ActiveSheet.Range("H9:K30").ClearContents
   ActiveSheet.Range("N9:Q30").ClearContents
   ActiveSheet.Range("T9:T30").ClearContents
   ActiveSheet.Range("AF9:AJ30").ClearContents
   ActiveSheet.Range("AL9:AN30").ClearContents
   ActiveSheet.Range("AP9:AR30").ClearContents
   ActiveSheet.Range("AT9:AV30").ClearContents
   ActiveSheet.Range("AX9:AZ30").ClearContents
   ActiveSheet.Range("BB9:BD30").ClearContents
   ActiveSheet.Range("BF9:BL30").ClearContents
   

End Sub

Sonstige Codes sind irrelevant.

Jetzt zu meinem Plan:

In dem 3. Blatt_report befindet sich auf der rechten Seite ein Bereich, welcher zur Erfassung der Messwerte dient. Direkt darüber kann man die wesentlichsten Kriterien auswählen. Nun soll je nachdem, welche Auswahl oben getroffen wurde, die Berechnung im linken Teil des Blattes automatisch erfolgen und ein "i. O." oder "n. i. O." ausgegeben werden.

Beispiel:
Ich betrachte den Wert ps. Gewählt habe ich folgendes:
Regelwerk: ASME VIII
Medium: Luft
Einheit: [bar]
Spezifikation: Mit blowdown Ring

Meine 3 Messwerte sind: 15,5 ; 15,5 ; 15,5 --> daraus mein Mittelwert 15,5
Der Mittelwert von p beträgt: 16 bar

Für dieses Szenario gibt es 2 Fälle.
Fall 1: p < 3,0
Fall 2: p >= 3,0

In unserem Fall somit Fall 2. Aus Fall 2 folgt wiederum die Bedingung:
p - 0,21 <= ps <= p

Für Fall 1 wäre es folgende gewesen: p*0,95<=ps<=p

Wenn Fall 2 zutrifft, und ps somit in dem vorgegebenen Rahmen liegt, so soll ein "i. O." ausgegeben werden. Falls nicht, dann soll ein "n. i. O." ausgegeben werden.

Eigentlich ist das ganze ja kein Problem, denn mit WENN lässt sich das meiste lösen. In diesem Fall gibt es aber so viele Kombinationsmöglichkeiten, dass WENN nicht nur unübersichtlich wird, sondern auch seine Grenzen erreicht. Hat jemand eine gescheite Lösung für mein Problem?

Als Anforderung möchte ich noch hinzugeben, dass es besser ist, wenn nichts von der Rechnerei in der Tabelle sichtbar ist. Auch nicht irgendwo am Seitenrand. Ein verstecktes Tabellenblatt wäre auch etwas kritisch, da mein "Tabelle erweitern" Button wahrscheinlich Probleme machen würde. Bin mir dort aber noch nicht sicher.

Besten Gruß
Green


Angehängte Dateien
.xlsx   Finale Version.xlsx (Größe: 135,28 KB / Downloads: 4)
to top
#6
Hallo,

abgesehen davon, dass Deine Formeln ein Graus sind (teilweise bedingt durch die verbundenen Zellen), ist für einen Laien nicht nachzuvollziehen, was Du willst. Es wird auch nicht alles funktionieren, was Du da erstellt hast.

Ein Muster heißt eigentlich, dass Daten und Musterergebnisse vorhanden sind, damit man das Ganze nachvollziehen kann! Die ganze Plackerei mit dem blockweise kopieren hätte man sich auch sparen können, wenn Du Dein Seitenformat so eingestellt hättest, dass man die Zeilen aneinanderreihen kann!

Befasse Dich mal mit dem Funktionsumfang von Excel:


Code:
=Mittelwert(AL9:AN9)
statt
Code:
=(AL9+AM9+AN9)/3




Code:
=WENN((T9="")+(AO9="");"";WENN(abs(AO9-T9)<0,03;"i.O.";"n.i.O."))
statt


Code:
=WENN(T9="";"";WENN(UND(AO9>0,97*T9;AO9<1,03*T9);"i.O.";WENN(AO9<>0;"n.i.O.";"")))


Oder auch:


statt:

Code:
=WENN(AO9="";"";WENN(ODER(UND(#BEZUG!="Vollhub AD2000";AS9<=1,05*AO9);UND(#BEZUG!="Normalhub";AS9<=1,1*AO9));"i.O.";WENN(ODER(AS9=0;#BEZUG!="");"";"n.i.O.")))

das:


Code:
=WENN((AO9="")+(AS9=0)+(#BEZUG!="");"";WENN(AS9<=(1,05+(#BEZUG!="Normalhub")*0,05)*AO9;"i.O.";"n.i.O.")))


statt diesem:


Code:
=WENN(AO9="";"";WENN(ODER(UND(#BEZUG!="kompr. ASME";BA9>=0,9*AO9;BA9<=1,1*AO9);UND(#BEZUG!="kompr. AD2000AS";BA9>=0,9*AO9;BA9<=1,1*AO9);UND(#BEZUG!="kompr. ISO";BA9>=0,85*AO9;BA9<=1,15*AO9);UND(#BEZUG!="inkompr. AD";BA9>=0,8*AO9;BA9<=1,2*AO9));"i.O.";WENN(BA9=0;"";"n.i.O.")))


das:


Code:
=WENN((AO9="")+(BA9=0);"";WENN(Abs(BA9-AO9)<=(0,1+(#BEZUG!="kompr. ISO")*0,05+(#BEZUG!="inkompr. AD")*0,2);"i.O.";WENN;"";"n.i.O.")))


Also, die maßgebenden Bedingungen nachreichen, inkl. notwendige Formeln (in der DIN habe ich keine gefunden). Im Übrigen müssen die Berechnungen, wenn Sie nicht sichtbar sein sollen, wohl mit VBA realisiert werden.
Gruß
Opa Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Benutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • Green
to top
#7
(09.03.2016, 14:53)BoskoBiati schrieb: Hallo,

abgesehen davon, dass Deine Formeln ein Graus sind (teilweise bedingt durch die verbundenen Zellen), ist für einen Laien nicht nachzuvollziehen, was Du willst. Es wird auch nicht alles funktionieren, was Du da erstellt hast.

Ein Muster heißt eigentlich, dass Daten und Musterergebnisse vorhanden sind, damit man das Ganze nachvollziehen kann! Die ganze Plackerei mit dem blockweise kopieren hätte man sich auch sparen können, wenn Du Dein Seitenformat so eingestellt hättest, dass man die Zeilen aneinanderreihen kann!

Befasse Dich mal mit dem Funktionsumfang von Excel:

Hallo und herzlichen Dank!

Ich bin leider zum ersten Mal mit Excel unterwegs. Sind jetzt 2 Wochen, in denen ich mich damit beschäftige. Deine Vereinfachungen sind super! Ich werde die auf jeden Fall so übernehmen.

Mir war leider nicht bewusst, inwiefern mein Muster dir weiterhelfen soll aber du hast natürlich Recht. Ich habe dir eine neue Beispieldatei eingefügt. Die neuen Codes von dir sind da noch nicht mit dabei, nicht wundern. Hier siehst du allerdings ein Beispiel zur ISO Norm. Das ganze ist auf der rechten Seite in einer Tabelle erfasst. Hierbei ist die ISO Norm der einfachste Fall. Es gibt keine Unterschiede in der Einheit und kaum Medienunterscheidungen. ./. steht für unabhängig von der Einheit. Gilt also universal.

Da das ganze jetzt nur auf ISO Norm und das auch nur ziemlich sporade ausgelegt ist, würde es natürlich nicht zu 100% hinhauen. Hinzu müssten noch die restlichen Regelwerke/Normen kommen und diese auch mit deren Bedingungen und Kriterien. Im Endeffekt müsste meine Zelle im Ergebnisbereich (i.O., n.i.O.) differenzieren zwischen allen Regelwerken, Einheiten, Wertebereichen ...

Reicht dir das aus, die Formeln der ISO in Excel zu sehen, oder brauchst du nochmal eine Auflistung?

Gruß Green


Angehängte Dateien
.xlsx   Finale Version.xlsx (Größe: 144,16 KB / Downloads: 3)
to top
#8
Hallo,

mir nützen die ganzen Formeln nichts, wenn ich die Bedingungen nicht kenne. Also brauche ich eine Übersicht, aus der hervorgeht, was unter welchen Bedingungen zu erfüllen ist. Die 4126-1 sagt ja nur wenig aus.
Im übrigen halte ich es für eine Vergewaltigung von Excel, Auswertetabellen so aufzubauen wie eine Papiervorlage! Was dabei entsteht sieht man an den Wahnsinns formeln.
Gruß
Opa Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
to top
#9
(09.03.2016, 15:27)BoskoBiati schrieb: Hallo,

mir nützen die ganzen Formeln nichts, wenn ich die Bedingungen nicht kenne. Also brauche ich eine Übersicht, aus der hervorgeht, was unter welchen Bedingungen zu erfüllen ist. Die 4126-1 sagt ja nur wenig aus.
Im übrigen halte ich es für eine Vergewaltigung von Excel, Auswertetabellen so aufzubauen wie eine Papiervorlage! Was dabei entsteht sieht man an den Wahnsinns formeln.

Hallo,

alles klar. Ich habe das ganze auch leider nur im Papierformat. Daher muss ich mir einen Teil mal heraus arbeiten und dir das so schön es geht präsentieren. U. U. kann ich das erst morgen früh liefern.

Gruß Green
to top
#10
Hallo,

das ist die erste Aufgabe bei jedem Projekt, eine Übersicht erstellen. Damit kann man dann auch Formeln erstellen!
Gruß
Opa Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
to top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste