[gelöst] Bitte nicht lachen !

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [gelöst] Bitte nicht lachen !

Re: Bitte nicht lachen !

von Dietz33 » So, 31.05.2020 12:53

danke ist super !

Re: Bitte nicht lachen !

von mikeleb » Fr, 29.05.2020 15:06

Hallo,
anbei ein Beispiel, wie es möglich wäre.
Dateianhänge
beispiel loot table.ods
(22.36 KiB) 93-mal heruntergeladen

Re: Bitte nicht lachen !

von echo » Do, 28.05.2020 20:32

hallo
da steht zwar Excel drüber, ist aber trotzdem eine tolle Seite zum Nachschlagen:
https://www.herber.de/excelformeln/src/ ... la_list.pl

Zum Beispiel:
https://www.herber.de/excelformeln/page ... effer.html

Die allermeisten Formeln lassen sich nach Bedarf anpassen
Gruß Holger

Re: Bitte nicht lachen !

von Dietz33 » Do, 28.05.2020 20:18

und wie könnte dann die suchformel aussehen ?

Re: Bitte nicht lachen !

von echo » Do, 28.05.2020 10:00

Hallo
deine Liste in databank sollte so aufgebaut sein, das eine Formel die richtige Zeile aus der kompletten Liste suchen kann, und das Ergebnis aus dieser Zeile anzeigt.

Das bedeutet, das jedes Suchkriterium eine eigene Spalte bekommt: Du hast die Inhalte der relevanten Spalten in =$Databank.H:K ja schon stehen.
Beispiel was in einer Zeile stehen könnte: drei Spalten Spalte 1 : Reactor / Spalte 2: Level 1 / Spalte 3: Armor/Hp
Diese Angaben kommen in JEDE Zeile deiner Liste
Kommen weitere Suchkriterien dazu bekommen auch diese eine eigene Suchspalte.
Achte drauf, das sich keine Leerzeichen ec. verbergen sondern die Spalteninhalte wirklich immer gleich dem Suckkriterium ist.

Wenn du das hast kann eine Formel Spalte für Spalte nach Übereinstimmungen suchen und auch prüfen ob ggf. ein Wert in der Zeile dazu passt.
Ist alles WAHR gibt die Formel dann das Ergebnis aus exakt diese Zeile zurück.

Übrigens lassen sich einige Inhalte recht einfach auf mehrere Spalten zerlegen in dem du die Spalte in einen leeren Bereich kopierst und dort auf die markierte Liste die Funktion "Daten"> Text in Spalten anwendest.

Hoffe ich konnte etwas helfen
Gruß Holger

Re: Bitte nicht lachen !

von Dietz33 » Mi, 27.05.2020 22:54

was wäre denn ein bessere aufbau der tabelle ?

falls dein beispiel ein vorschlag ist wie es ev. aussehen sollte dann versteh ichs nicht, weil genau so ist es ja aufegebaut - oder meinst du da als spalten einträge ?

Re: Bitte nicht lachen !

von mikeleb » Mi, 27.05.2020 22:22

Hallo,
der Aufbau der Datenbanktabelle ist dafür ungünstig.
Pro Zeile z. B.:
Weapon;Level 8;Mass;Min Value;Max Value;Credits min;Credits max
Dann ließe sich darin vernünftig suchen. Allerdings sollte vorher klar sein, was noch alles damit gemacht werden soll. Wahrscheinlich ist ein noch anderer Aufbau noch sinnvoller.

Re: Bitte nicht lachen !

von Dietz33 » Mi, 27.05.2020 20:13

aufs einfachste runtergebrochen funktioniert es so:

es gibt qualitätsstufen (95%,96%,97%)
von diesen gibt es jeweils teile (reactor , weapon)
die ersten zwei Werte bestimmen den bereich bezüglich der qualität, sprich:

wenn man einen wert eingibt checkt das programm ob der wert zwischen den werten liegt und gibt dann die qualität aus.
(=WENN(UND(A1<=Databank.B1;A1>=Databank.C1);"97",xxx)

( bei: =WENN(SUMMENPRODUKT(Databank.B1:B5>=A1;Databank.C1:C5<=A1);"97" kommt er bei mir leider manchmal durcheinander.)

nachdem die qualität ermittel wurde , spuckt er noch den bereich aus (die zwei werte wo der eingegebene wert dazwischen liegt) UND den
preisberreich ( die letzten 2 zahlen )

ich hab das ursprünglich anders versucht, und zwar mit einer tabelle wo manfür jedes level und Teil eine eigen zelle hat (.s.u,) nur wollte ich etwas kompakteres versuchen.

versuch1.jpg
versuch1.jpg (154.98 KiB) 2784 mal betrachtet

Re: Bitte nicht lachen !

von mikeleb » Mi, 27.05.2020 19:15

Hallo,
grundsätzlich verlangt das nach SVERWEIS(). Es bleibt aber unklar welcher Teil der Datenbank betrachtet werden soll. Nachdem "Weapon", "Level8" und "Mass" gewählt wurden: Sollen dann die Daten aus Zeile 196, 412 oder 682 der Datenbank gewählt/betrachtet werden?

Re: Bitte nicht lachen !

von Dietz33 » Mi, 27.05.2020 10:54

Hab ein kurzes video gemacht wo man vielleicht sieht worum es geht:

die eingabemaske sieht so aus:
screenshot der maske
screenshot der maske
maske.jpg (27.48 KiB) 2862 mal betrachtet
die datenbank so:

[/url]
screenshot der daten
screenshot der daten
daten.jpg (149.55 KiB) 2862 mal betrachtet
man wählt also im drop down ( siehe video) das gewünschte aus , und es erscheint dann so etwas wie qualtität und preise , etc....

https://drive.google.com/open?id=1kL9Zh ... qaP2R-Cpok

ich weiss nicht obs was bringt aber ich kann ja die ods datei auch anhängen, aber ich befürchte da kennt sich dann keiner mehr aus,, lol .
Dateianhänge
Loot Table New 2020.ods
das projekt
(335.37 KiB) 86-mal heruntergeladen

Re: Bitte nicht lachen !

von Mondblatt24 » Mi, 27.05.2020 08:16

Hallo Dietz33,

https://de.openoffice.info/viewtopic.ph ... 41#p290641
PS: Ist an anderer Stelle schon Mal gesagt worden: Wenn Du Hilfe willst, ist es nützlich die Datei anzuhängen, sofern Sie keine personenbezogenen Daten enthält. Sonst bleibt es eventuell bei allgemeinen Hinweisen wir hier, weil keiner Dein Problem versteht.
@Dietz33: Ich habs Dir ja gesagt.


Gruß Peter

Re: Bitte nicht lachen !

von Hiker » Mi, 27.05.2020 08:11

Hallo,

wenn das nur 5% sind brauchst Du nicht anzufangen an der Formel zu optimieren. (Man könnte auf das Setzen der Vorlage verzichten, das kann eine bedingte Formatierung machen und mehrfach densekben Wert auf True zu testen könnte Mann in ein eigenes WENN auslagern).
Am Ende wird die Formel trotzdem zu lang.

Nebenbei: Stell Dir Mal kurz vor, wie Du in dem Monster einen Fehler finden willst...

Wenn - wie Du schreibst - das so sein "muss" könntest Du auf ein Macro ausweichen, damit kann man wenigstens formatiert übersichtlich schreiben und eventuell auch die Gruppierung von crap bis 97 in eine Unterroutine auslagern. Auf den ersten Blick erschließt sich mir die Logik dahinter aber nicht.

Ich löse so etwas auch gerne mit Hilfszellen, in denen Teilberechnungen gelöst werden können, aber dazu müsste ein System erkennbar sein.
Z.B. in XX6 erstmal die Tests zu BA6=True speichern,
In XX10 die für BA10=True etc.

Ich bin mir aber nicht sicher, dass ich wissen will, wie das Problem aussieht, dessen Lösung Deine Formel ist...

Mfg, Jörn

PS: Ist an anderer Stelle schon Mal gesagt worden: Wenn Du Hilfe willst, ist es nützlich die Datei anzuhängen, sofern Sie keine personenbezogenen Daten enthält. Sonst bleibt es eventuell bei allgemeinen Hinweisen wir hier, weil keiner Dein Problem versteht.

[gelöst] Bitte nicht lachen !

von Dietz33 » Mi, 27.05.2020 04:18

ich glaub ich mach hier sicher was falsch.
ich versuch einen check zu schreiben um dann einen wert auszugeben und " muss" dazu jede einzelne anfrage auf jeden einzelnen "datanbankeintrag" anwenden.

es funktioniert alles prima, nur kommt jetzt fehler 512 weil die formel za lange ist , und ich hab noch nicht mal 5% von dem was ich machen will.

das ist der code bis jetzt:

Code: Alles auswählen

=WENN(UND(BA74="true";D9>Databank.C196);"crap"&T(VORLAGE("crap"));
WENN(UND(BA74="true";D9<Databank.D628;ISTZAHL(D9));"PC!"&T(VORLAGE("Pc"));
WENN(UND(BA74="true";D9<=Databank.C196;D9>=Databank.D196);"95"+VORLAGE("95");
WENN(UND(BA74="true";D9<=Databank.C412;D9>=Databank.D412);"96"+VORLAGE("96");
WENN(UND(BA74="true";D9<=Databank.C628;D9>=Databank.D628);"97"+VORLAGE("97");
WENN(UND(BA2="true";D9<Databank.C374);"crap"&T(VORLAGE("crap"));
WENN(UND(BA2="true";D9>Databank.D590;ISTZAHL(D9));"PC!"&T(VORLAGE("Pc"));
WENN(UND(BA2="true";D9>=Databank.C374;D9<=Databank.D374);"95"+VORLAGE("95");
WENN(UND(BA2="true";D9>=Databank.C374;D9<=Databank.D374);"96"+VORLAGE("96");
WENN(UND(BA2="true";D9>=Databank.C590;D9<=Databank.D590);"97"+VORLAGE("97");
WENN(UND(BA6="true";D9<Databank.C383);"crap"&T(VORLAGE("crap"));
WENN(UND(BA6="true";D9>Databank.D383;ISTZAHL(D9));"PC!"&T(VORLAGE("Pc"));
WENN(UND(BA6="true";D9>=Databank.C383;D9<=Databank.D383);"95"+VORLAGE("95");
WENN(UND(BA6="true";D9>=Databank.C383;D9<=Databank.D383);"96"+VORLAGE("96");
WENN(UND(BA6="true";D9>=Databank.C383;D9<=Databank.D383);"97"+VORLAGE("97");
WENN(UND(BA10="true";D9<Databank.C176);"crap"&T(VORLAGE("crap"));
WENN(UND(BA10="true";D9>Databank.D608;ISTZAHL(D9));"PC!"&T(VORLAGE("Pc"));
WENN(UND(BA10="true";D9>=Databank.C176;D9<=Databank.D176);"95"+VORLAGE("95");
WENN(UND(BA10="true";D9>=Databank.C392;D9<=Databank.D392);"96"+VORLAGE("96");
WENN(UND(BA10="true";D9>=Databank.C608;D9<=Databank.D608);"97"+VORLAGE("97");
WENN(UND(BA14="true";D9<Databank.C185);"crap"&T(VORLAGE("crap"));
WENN(UND(BA14="true";D9>Databank.D617;ISTZAHL(D9));"PC!"&T(VORLAGE("Pc"));
WENN(UND(BA14="true";D9>=Databank.C185;D9<=Databank.D185);"95"+VORLAGE("95");
WENN(UND(BA14="true";D9>=Databank.C401;D9<=Databank.D401);"96"+VORLAGE("96");
WENN(UND(BA14="true";D9>=Databank.C617;D9<=Databank.D617);"97"+VORLAGE("97");
WENN(UND(BA18="true";D9<Databank.C194);"crap"&T(VORLAGE("crap"));
WENN(UND(BA18="true";D9>Databank.D626;ISTZAHL(D9));"PC!"&T(VORLAGE("Pc"));
WENN(UND(BA18="true";D9>=Databank.C194;D9<=Databank.D194);"95"+VORLAGE("95");
WENN(UND(BA18="true";D9>=Databank.C410;D9<=Databank.D410);"96"+VORLAGE("96");
WENN(UND(BA18="true";D9>=Databank.C626;D9<=Databank.D626);"97"+VORLAGE("97");
WENN(UND(BA22="true";D9<Databank.C203);"crap"&T(VORLAGE("crap"));
WENN(UND(BA22="true";D9>Databank.D635;ISTZAHL(D9));"PC!"&T(VORLAGE("Pc"));
WENN(UND(BA22="true";D9>=Databank.C203;D9<=Databank.D203);"95"+VORLAGE("95");
WENN(UND(BA22="true";D9>=Databank.C419;D9<=Databank.D419);"96"+VORLAGE("96");
WENN(UND(BA22="true";D9>=Databank.C635;D9<=Databank.D635);"97"+VORLAGE("97");
WENN(UND(BA26="true";D9<Databank.C212);"crap"&T(VORLAGE("crap"));
WENN(UND(BA26="true";D9>Databank.D644;ISTZAHL(D9));"PC!"&T(VORLAGE("Pc"));
WENN(UND(BA26="true";D9>=Databank.C212;D9<=Databank.D212);"95"+VORLAGE("95");
WENN(UND(BA26="true";D9>=Databank.C428;D9<=Databank.D428);"96"+VORLAGE("96");
WENN(UND(BA26="true";D9>=Databank.C644;D9<=Databank.D644);"97"+VORLAGE("97");
WENN(UND(BA30="true";D9>Databank.C160);"crap"&T(VORLAGE("crap"));
WENN(UND(BA30="true";D9<Databank.D591;ISTZAHL(D9));"PC!"&T(VORLAGE("Pc"));
WENN(UND(BA30="true";D9<=Databank.C160;D9>=Databank.D160);"95"+VORLAGE("95");
WENN(UND(BA30="true";D9<=Databank.C375;D9>=Databank.D375);"96"+VORLAGE("96");
WENN(UND(BA30="true";D9<=Databank.C591;D9>=Databank.D591);"97"+VORLAGE("97");"E"&T(VORLAGE("Standard2")))))))))))))))

brauche bitte offensichtlich hilfe !

danke !

Nach oben