-
Excel
Absolute und
relative Adressierung
Durch das Dollarzeichen ($) kann festgelegt werden, dass die Position absolut gleich bleiben soll.
Bsp: Die aktuelle Zelle verweist auf Zelle A1. Sie wird kopiert und eins weiter rechts unten eingefügt.
Für das Gleichbleiben der Spalte -> A absolut adressieren $A1
- Für das Gleichbleiben der Zeile -> 1 absolut
- adressieren A$1
-
Excel Grundlagen
Formatierung: Prozent vs. Zahl
Eine Zelle ist nur dann in Prozent formatiert, wenn sie ein Prozentzeichen enthält
-
Excel
=Min(Bereich)
liefert den kleinsten Wert im Bereich
-
Excel
=Max(Bereich)
liefert den größten Wert im Bereich
-
Excel
=Summe(Bereich)
addiert alle Felder im Bereich
-
Excel Funktion
=Mittelwert(Bereich)
liefert den Durchschnitt aller Felder im Bereich (leere Zellen werden ausgelassen)
-
Excel Funktion
= Anzahl(Bereich)
ergibt die Anzahl von Zahlen in einem Bereich. Leere Zellen und Text werden nicht mitgezählt.
-
Excel summeWenn-Funktion
Liefert die Summe der Zellen in einem Bereich, die ein Kriterium erfüllen
Syntax: summeWenn(Bereich;“Kriterien“; BereichSumme)
Zahl : Zelle muss genau die Zahl enthalten
„Zahl“ : Zelle muss genau die Zahl enthalten
„>Zahl“ : Zelle muss größer als die Zahl sein
„Text“ : Zelle muss genau den Text enthalten
In „BereichSumme“ kann optional definiert werden, in welchem Bereich die Kriterien überprüft werden sollen
Beispiel:
summeWenn(A12:A21;“Nein“;B12:B21)
-
Excel Wenn-Funktion
Fallunterscheiden
Manchmal sind Fallunterscheidungen nötig. In solchen Fällen benötigt man die Wenn-Funktion.
Die Funktion benötigt drei Argumente: Wenn(Vergleich;Dann;Sonst)
Der Vergleich besteht aus zwei Seiten und einem mathematischen Vergleichsoperator. Die Seiten können Zellverweise, Zahlen oder Text in Anführungszeichen sein. Die Vergleichsoperatoren sind: = < >
Im Dann- und im Sonst-Teil steht, was jeweils passieren soll.
- Beispiel:
- =wenn(A2>50;A2;50)
Funktionsweise
Wenn(DieBedingung = WAHR;DannMachDies;SonstMachJenes)
-
Excel Verschachtelte Wenn-Funktion
- Falls bei einer Fallunterscheidung mehr als zwei Fälle zu berücksichtigen sind, muss die
- Wenn-Funktion verschachtelt werden.
Wenn(Vergleich; Dann; Wenn(Vergleich; Dann; Sonst))
- Beispiel:
- Fall 1 x < 0
- Fall 2 0 <= x <= 10
- Fall 3 x > 10
=Wenn(x<0; „Fall 1“;Wenn(x<=10; „Fall 2“; „Fall 3“))
-
Excel wVerweis-Funktion (1)
Sinn&Zweck
Aufbau
- Sinn & Zweck:
- wVerweis dient dazu Bereiche in Excel zu durchsuchen. Dabei kann nach einem genauen oder einem ungefähren Wert gesucht werden.
- Aufbau (Syntax):
- wVerweis(Suchkriterium;Matrix;Zeile;Bereich_Verweis)
- Suchkriterium:
- Nach diesem Begriff/Wert soll gesucht werden.
- Matrix: In der
- 1.Spalte der Matrix(Zellbereich) sucht Excel nach dem Suchkriterium. Weiterhin muss die Matrix eine Spalte mit den gewünschten Rückgabewerten enthalten.
- (Eigenschaften siehe nächste Folie)
Zeile: Hierbei handelt es sich um eine Zahl, die angibt, in der wievielten Zeile des Bereichs in „Matrix“ der Rückgabewert steht.
Bereich_Verweis: Wahrheitswert
Falsch: Es wird nach einem genauen Wert gesucht
- Wahr: Es wird von oben aus der erste größere Wert gesucht und der Rückgabewert aus der Zeile darüber gewählt. Die Werte müssen sortiert vorliegen und sind die Untergrenzen
- der jeweiligen Zeile.
-
EUS Definition
Entscheidungsunterstützende Systeme (EUS)
beschreiben innerhalb der Wirtschaftsinformatik computergestützte Verfahren die darauf abzielen, Entscheidungsgrundlagen für Unternehmen zu schaffen bzw. diese zu verbessern
In der Regel quantitativ
Mathematische Optimierung
Ein Teil der Realität wird als (mathematisches) Modell abgebildet
Zu treffende Unterscheidungen können an diesem Modell dann untersucht werden
Modell
Eine Abstraktion der Realität
Enthält die wesentlichen Aspekte bezüglich des Entscheidungsproblems
-
Von der Beschreibung eines Problems zu einem Modell
Eine Maschine kann zwei unterschiedliche Produktarten herstellen, Produkt A und Produkt B. Die Maschine kann pro Woche 40 Stunden im Einsatz sein und benötigt für die Produktion von einer Einheit A fünf Stunden sowie einer Einheit B zwei Stunden. Der Deckungsbeitrag von A beträgt 10 Geldeinheiten und von B 3 Geldeinheiten. Es soll der maximal mögliche Deckungsbeitrag erzielt werden.
Die Produkte A und B werden nicht nur mit der Maschine 1 produziert sondern müssen von der Maschine 2 verpackt werden. Diese kann nur 20
Stunden in der Woche laufen und benötigt jeweils 1 Stunde für ein Produkt.
Vollständiges Modell:
a: gibt die Produktionsmenge von Produkt A an,
b: gibt die Produktionsmenge von Produkt B an
Zielfunktion: Max 10 * a + 3 * b
- Restriktion 1:
- 5 * a + 2 * b <= 40
- Restriktion 2:
- 1 * a + 1 * b <= 20
NNB: a, b >= 0
-
Weitere wichtige Elemente in EUS
Schattenpreise/reduzierte Kosten
- Schattenpreise
- (einer Schlupfvariablen): Gibt an, um
- wieviel der Zielfunktionswert sich verändern würde, wenn die Kapazität der entsprechenden Restriktion steigt
- Reduzierte Kosten: Gibt an, um wieviel der
- Zielfunktionswert sich verändern würde, wenn die Belegung der Entscheidungsvariable um eins
- erhöht wird
Gehören beide immer zu einer Lösung eines Modells
Beide können nur sinnvolle Aussagen liefern wenn es keine ganzzahligen Entscheidungsvariablen gibt
Handlungsanweisung:
Eine Handlungsanweisung muss in natürlicher Sprache mindestens die Belegung aller Entscheidungsvariablen und den erwarteten Zielfunktionswert umfassen
-
Algorithmen Variablen & Datentypen
- Variablen:
- speichern Werte, die sich mehrfach ändern können
- Deklaration:
- Vor der Wertzuweisung muss jede Variable einen Namen und einen Datentyp erhalten. Der Name darf kein VBA reservierter Ausdruck sein.
- String >>> Erklärung: Zeichenkette >>> Bsp: ich&du
- Integer, Long >>> Ganzzahl >>> 14
- Single, Double >>> Gleitkommazahl >>> 2,34
- Boolean >>> Wahrheitswert >>> True, False
- Variant >>> Daten jedes Typs. Ist keine explizite Deklaration. Vermeiden, da langsame Verarbeitung.
-
Algorithmen Ein- und Ausgabebefehle
- MsgBox (Ausgabe)
- Ergebnisse aus dem Programm am Bildschirm anzeigen
- InputBox (Eingabe)
- Eingegebene Werte eines Benutzers an das Programm übergeben
-
Algorithmen Ein- und Ausgabebefehle
Wertzuweisung an das Datenblatt
- ActiveSheet.Cells(Zeile,Spalte).Value=1
- ActiveSheet.Range("A1") =2
- Worksheets("Tabelle1").Cells(1,1).Value=1
- Worksheets("Tabelle1").Range(“A1”).Value=1
-
Algorithmen Ein- und Ausgabebefehle
Zugriff an das Datenblatt
- a=ActiveSheet.Cells(1,1).Value
- eingabe = ActiveSheet.Range("A1")
- b=Worksheets("Tabelle1").Cells(1,1).Value
- c=Worksheets("Tabelle1").Range(“A1”).Value
-
Algorithmen Entscheidungsstrukturen
If-Then-Else
Der Programmablauf kann durch Bedingungen verzweigt werden.
Ist die If-Bedingung WAHR, wird der Then-Anweisungsblock ausgeführt
Ist sie Falsch, der Else-Anweisungsblock.
Beispiel:
If variable <=18 Then
MsgBox ("Ihre Wert : " & variable & " - zu dünn")
ElseIf variable > 25 Then
MsgBox ("Ihr Wert: " & variable & " - zu dick")
Else
MsgBox ("Ihr Wert: " & variable & " ideal")
End If
-
Algorithmen Schleifen
Schleifen ermöglichen es, Anweisungen oder Anweisungsblöcke mehrfach ausführen zu lassen.
Wir behandeln folgende Schleifentypen:
For… Next: Schleife mit feststehender Anzahl an Durchläufen.
While [Bedingung]… Wend: Schleife wird durchlaufen, solange die Abbruch-Bedingung wahr ist.
For i = 1 to 5
MsgBox (i)
- Next
- -----------------------------------------
- i=1
While i<=5
MsgBox (i)
i=i+1
Wend
- --------------------------------------------
- a=Inputbox(„Bitte geben Sie eine positive Zahl ein !“)
While a < 0
a = InputBox(„Die Zahl war nicht positiv! Neuer Versuch:“)
Wend
-
Algorithmen Arrays
- Ein Array ist eine Datenstruktur, die aus
- einer Menge durchnummerierter Variablen besteht.
- Anders gesagt:
- Ein Array ist eine Liste, deren Elemente sich über den Listennamen und die
- Nummer des Elements (Index) ansprechen lassen.
Ein Array definieren
Syntax: Dim [Arrayname]([MinNummer] to [MaxNummer]) as [Datentyp]
Beispiel: Dim umfrage (1 to 1000) as Integer
Auf ein Array-Element zugreifen
Syntax [Arrayname]([Nummer des Elements])
Beispiel umfrage(2)=3
Wichtig: Immer darauf achten, dass der Schleifenzähler innerhalb der Grenzen des Arrays bleibt, da es sonst einen "Index außerhalb des gültigen Bereichs"-Fehler gibt!
-
Algorithmen Geschachtelte Arrays
Ein Anwendungsbeispiel für geschalteten Arrays ist z.B. die Kumulierung von Häufigkeiten. Man möchte die Werte eines Arrays durchgehen und die Anzahl von allen möglichen Werten in einem zweiten Array festhalten.
Beispiel:
Man hat eine Liste aller Noten der Studierenden array note.
Nun möchte man in dem array notenanzahl die Häufigkeit der einzelnen Noten ermitteln.
Vorgehensweise: Man geht das Array note nach und nach durch. Wenn z.B. der 3.Student eine 3 hat, muss man im Array notenanzahl an der Stelle 3 den alten Wert um eins erhöhen:
notenanzahl(note(3))=notenanzahl(note(3))+1
-
Datenbanken Syntax SQL-Abfrage
SELECT [DISTINCT] Attribut1, Attribut2, …
Auflistung aller auszuwählender Attribute durch Komma getrennt
FROM Tabelle1, Tabelle2, …
Auflistung aller Relationen, aus denen in irgendeinem Teil der Abfrage Attribute verwendet werden
WHERE Bedingung1 AND/OR Bedingung2 …
logisch verknüpfte Bedingungen (z.B. Ort = „Düsseldorf“)
ORDER BY Attribut1 [DESC], Attribut2 [DESC], …
Auflistung aller Attribute, nach denen das Ergebnis sortiert werden soll (Auflistung in der Reihenfolge, in der sortiert werden soll, z.B. erst nach Nachnamen und dann nach Vornamen
Zusatz DESC, wenn absteigend sortiert werden soll
-
Datenbanken Operatoren
logische Operatoren
Vergleichsoperatoren
Logische Operatoren
- AND >>> beide Bedingungen müssen wahr sein
- OR >>> Eine oder beide Bedingungen müssen wahr sein
- XOR >>> nur eine Bedingung muss wahr sein
- NOT >>> Negation, Bedingung soll falsch sein
- Vergleichsoperatoren
- =,<>, <, <=, >, >= heißt Attributwert gleich, ungleich, kleiner, kleiner gleich, größer oder größer gleich einem anderem Attributwert oder einer Konstanten
BETWEEN >>> Attributwert zwischen zwei Grenzen
- LIKE >>> Suche nach Zeichenketten anhand von Ähnlichkeitsoperatoren:
- * : Platzhalter für beliebige Zeichenkette
- ? : Platzhalter für ein Zeichen
IS NULL >>>
IS NULL zur Selektion nicht definierter Attributwerte
oder IS NOT NULL zur Selektion definierter Attributwerte
IN >>> Prüft, ob ein Attributwert in einer Menge enthalten ist
-
Datenbanken Felddatentypen
- Text
- Steht in Anführungszeichen (… =„Düsseldorf“)
Datum:
#MM/DD/YYYY# (amerikanisch!)
z.B. #1/15/1970#
Zahl: Dezimalzahlen mit Punkt statt Komma
Ja/Nein: true und false
AutoWert: automatisch generierte Werte
Memo: für längeren Text (>255 Zeichen)
-
Datenbanken Funktionen
Datumfunktion
Aggregatfunktion
Datumfunktion
- DAY() >>> Ermittelt den Tag eines Datumwerts
- MONTH() >>> Ermittelt den Monat eines Datumwerts
- YEAR() >>> Ermittelt den Jag eines Datumwerts
- NOW >>> Liefert aktuelle Zeit und aktuelles Datum (z.B YEAR(NOW))
- Aggregatfunktionen AVG() >>> Mittelwert einer Spalte
- MAX() >>> Größter Wert der Spalte
- MIN() >>> Kleinster Wert der Spalte
- SUM() >>> Summer der Werte einer Spalte
- COUNT(Attribut) >>> Anzahl aller Tutel der Ergebnisrelation ohne NULL - Werte
- COUNT(*) >>> Anzahl der Ergebnisrelation ink NULL - Werte
-
Aggregatfunktionen und GROUP BY
Aggregatfunktionen dürfen in der Regel nicht mit weiteren Attributen im SELECT-Teil stehen
- Begründung:
- Aggregatfunktionen verdichten mehrere Attributwerte zu einem Wert; die Auflistung weiterer Attribute macht dann keinen Sinn und ist auch nicht möglich
- Bsp.: SELECT
- SUM(Betrag), Spielernr FROM Strafen
- FEHLER!
- - Liefert die Summe aller Strafen (ein Wert), zu dieser Summe existiert aber keine Spielernummer
- Ausnahme:
- Verwendung von GROUP BY
GROUP BY wird im Zusammenhang mit Aggregatfunktionen verwendet um das Ergebnis nach einer (oder mehreren) Spalte(n) zu gruppieren
GROUP BY steht in der SQL-Abfrage zwischen dem WHERE-Teil und dem ORDER BY-Teil
-
Datenbanken Verknüpfung mehrerer Relationen
SELECT Strafen.Spielernr, Name, Zahlungen, Datum
FROM Strafen, Spieler
WHERE Strafen.Spielernr = Spieler.Spielernr AND Name = „Kohl“;
-
Weitere
Lineare Restriktionen (LB – LowerBound, UB – UpperBound)
- Restriktionen,
- die sich auf Grenzen bezüglich einer Variable beziehen benötigen in ClipMOPS keine eigenen Zeilen
LB – LowerBound: die untere Grenze, die mindestens erfüllt werden muss
UB – UpperBound: die obere Grenze, die maximal erfüllt sein darf
Inf steht für infinity also unendlich hoch
-
Schattenpreise
Schattenpreis „gehört“ zu einer Restriktion innerhalb einer zulässigen Lösung
- Gibt an um wie viel sich der Zielfunktionswert ändert, wenn sich die entsprechende
- Produktionskapazität um eine Einheit erhöht
Grenzpreis der Begrenzung des Lösungsraumes durch diese Restriktion
- Der Schattenpreis ist gleich null außer wenn die entsprechende Activity an die Grenze
- der RHS stößt
ClipMOPS beschreibt die Schattenpreise mit reduced costs
ClipMOPS berechnet in seltenen Fällen die Schattenpreise nicht
-
Reduzierte Kosten
Reduzierte Kosten werden für eine Variable angegeben
Gibt an wie sich der Zielfunktionswert ändert, wenn der Wert der Variable erhöht wird.
Durch „Nicht-Produktion“ vermiedener Verlust; Grenzkosten
Nur bei kontinuierlichen Variablen beachten, reduzierte Kosten sind bei ganzzahligen Variablen nicht interpretierbar in ClipMOPS
ClipMOPS berechnet in seltenen Fällen die reduzierten Kosten nicht
-
Zusammenführung
Zielfunktion: Min 0,3 * m + 0,2 * e
Restriktion kcal:
200 * m + 90 * e >= 500
Restriktion Eiweiß: 3 * m + 9 * e >= 35
Problemstellung:
Man sucht eine Zusammenstellung eines möglichst günstigen Essens, das 500 kcal und 35 Gramm Eiweiß hat. Es können Müsli, das pro 100 Gramm 200 kcal und 3 Gramm Eiweiß besitzt, sowie Eier, die 9 Gramm Eiweiß und 90kcal pro Stück bringen, gemischt werden. Eier kosten pro Stück 20 Cent, Müsli kostet pro 100 Gramm 30 Cent.
- Vorheriges Problem wird um folgende Anforderung ergänzt:
- Es sollen in dem Essen mindestens zwei Eier und maximal 250 g Müsli vorkommen.
- Die Anzahl an Eiern muss mindestens 2 oder größer sein
- Die Anzahl an Müslieinheiten darf maximal 2,5 oder weniger sein
-
a)
Geben Sie das alte und das neue aufgestellte
Modell in ClipMOPS ein und analysieren Sie beide erweiterten Ergebnistableaus. In
welche Richtung verändert sich der Zielfunktionswert wenn der Großkunde in
jedem Fall 50 qm Tulpen bekommen soll? Woran kann man die Entwicklung im alten
Tableau bereits ablesen?
- Der Zielfunktionswert verändert sich negativ um 1040 (GE). Dies kann man im Vorfeld
- durch die Schattenpreise der Entscheidungsvariablen erkennen. xT (Anzahl m2 Tulpen) hat reduzierte Kosten in Höhe von -2, das heißt für jeden m2
- wird der Zielfunktionswert um 2 verringert. Diese Aussage gilt aber nur für die
- jeweils nächste Einheit, das heißt man kann mit den reduzierten Kosten keine Aussage
- darüber treffen, was passiert wenn man mehr als eine Einheit mehr oder weniger produziert. Es ist also eine Tendenz ablesbar, die hier vollkommen zutrifft, aber kein zuverlässiges Ergebnis darstellt.
Analoges gilt für Schattenpreise von Restriktionen.
-
c) Für den Blumenanbau werden weitere 2000 qm
Anbaufläche bereitgestellt. Erweitern Sie das Modell aus a) um die Restriktion,
dass nun 4000 qm Fläche vorhanden sind. Vergleichen Sie die Unterschiede vor
und nach der Erhöhung der Fläche in den Ergebnistableaus.
- Ein erstes Merkmal ist, dass, obwohl die zur Verfügung stehende Ressource Fläche verdoppelt wurde, sämtliche reduzierte Kosten sowie Schattenpreise gleich geblieben sind. Die Belegung der Entscheidungsvariablen sowie die Ausnutzung der Ressourcen haben sich jedoch verändert. Es werden nun 2400 m2 mehr Veilchen angebaut und 400 m2 weniger Tulpen. Dies liegt daran, dass Tulpen mehr Dünger
- benötigen als Veilchen aber nur unwesentlich mehr Deckungsbeitrag bringen.
- Steht nun also mehr Fläche zur Verfügung, lohnt es sich mehr Veilchen anzubauen. Der Zielfunktionsbetrag verbessert sich wie erwartet. Wenn man mehr Ressourcen einsetzt, wird man immer einen gleichen oder verbesserten Zielfunktionswert haben. Er hat sich tatsächlich auch um den Wert der
- reduzierten Kosten (7,9) mal der Anzahl zusätzlicher Ressourcen (2.000) erhöht
- (um 15.800).
-
Beerenkuchen
Paul sollte 200g Erdbeeren, 100 g Himbeeren und 200g Blaubeeren sammeln. Er wird hierfür 20 Minuten benötigen.
-
Der Benutzer soll eine natürliche Zahl n größer gleich null eingeben. Ist dies nicht der Fall, soll er solange zur Eingabe einer Zahl aufgefordert werden bis diese größer gleich null ist. Im Anschluss soll für die eingegebene Zahl n die Summe 1 + … + n zurückgegeben werden!
- Private Sub CommandButton1_Click()
- Dim zahl As Integer
- Dim summe As Integer
- summe = 0
- zahl = -1
- ' Somit ist die Bedingung der ersten Schleife erfüllt.' Das ist ein "Trick", mit dem wir eine inputbox sparen
- While zahl < 0
- zahl = InputBox("Bitte geben Sie eine positive Zahl ein!")
- Wend
- For i = 1 To zahl
- summe = summe + i
- 'Beginnend bei dem Wert 0 wird die Summe immer um 1,2,....,n (n bezogen auf zahl) erhöht.
- Next
- MsgBox ("Die Summe 1+...+n der Zahl " & zahl & " lautet " & summe)
- End Sub
-
Verkaufserlöse
= Anzahl x Verkaufspreis pro Stück
-
Gewinnmarge in Prozent
= (Verkauferlös - Gesamtkaufpreis) / Verkaufserlöse
-
prozentuale Veränderung von einem Quartal ins Nächste (1. -> 2.)
- (2.Quartal - 1.Quartal)
- = ----------------------------------
- 1.Quartal
-
Zinsertrag
= Zinssatz x Kontostand
-
Gewinn mit Aufschlag (für Aufschlagsatz 38%)
Gewinn + 38% des Gewinns
(Verkaufpreis - Einkaufpreis) x Anzahl x (1 + Aufschlagsatz/100)
-
prozentualer Anteil am Gesamtgewinn
- Gewinn mit Aufschlag
- ------------------------------------
- Gesamte Gewinn mit Aufschlag
-
Betrag inländische Mehrwertsteuer
= Nettopreis in € x Mwst Inland in %
-
Bruttopreis in €
Nettopreis in € + Betrag inländische Mwst
-
Steuer
= Zinsertrag x Steuersatz
-
Def Deckungsbetrag
Der Deckungsbetrag ist die Differenz zwischen den erzielten Erlöse (Umsatz) und den variablen Kosten.Es handelt sich also um den Betrag, der zur Deckung der Fixkosten zur Verfügung steht
-
Problemstellung:
Man sucht eine Zusammenstellung eines möglichst günstigen Essens, das 500kcal und 35 Gramm Eiweiß hat. Es können Müsli, das pro 100 Gramm 200 kcal und 3 Gramm Eiweiß besitzt, sowie Eier, die 9 Gramm Eiweiß und 90 kcal pro Stück bringen, gemischt werden. Eier kosten pro Stück 20 Cent, Müsli kostet pro 100 Gramm 30 Cent
Zusammenführung:
- > Zielrestriktion Min 0,3 m + 0,2 e
- Restriktion kcal 200m+ 90e >= 500
- Restriktion Eiweiß 3m + 9e >= 35
- Vorheriges Problem wird um folgende Anforderung ergänzt
- > Es sollen in dem Essen mindestens 2 Eier und maximal 250g Müsli vorkommen
- > Die Anzahl an Eiern muss mindestens 2 oder größer sein
- > die Anzahl an Müslieinheiten darf maximal 2,5 oder weniger sein
-
Umsatzrentabilität
- Gewinn
- ---------------
- Umsatz
-
-
Gegeben sei folgendes Modell:
xR: Quadratmeter zu züchtender Rosen
xT: Quadratmeter zu züchtender Tulpen
xV: Quadratmeter zu züchtender Veilchen
Zielfunktion:
Maximiere:
10* xR + 8,5 * xT + 8 * xV
Anbaufläche:
1 * xR + 1 * xT + 1 * xV
<= 2000
Düngemittel:
2,5* xR + 3 * xT + 0,5 * xV <= 2500
NNB: xR, xT, xV >= 0
Ergänzen Sie Informationen (Einheiten der Zahlen), die Sie nicht ablesen können und formulieren Sie dieses Modell in verständlicher(!), natürlicher Sprache.
Eine Blumenzucht baut Rosen, Tulpen und Veilchen an. Hierfür hat sie eine Anbaufläche von 2000 Quadratmetern(m2) zur Verfügung. Ein m2 Rosen erwirtschaftet einen Erlös abzüglich aller anderen Kosten von 10 GE, ein m2 Tulpen 8,5 GE und ein m2 Veilchen bringt 8 GE ein. Es sind 2500 kg Düngemittel vorhanden, um einen m2 Rosen anzubauen benötigt die Blumenzucht 2,5 kg, für ein m2 Tulpen 3kg und für ein m2 Veilchen 0,5 kg. Unter Beachtung aller Restriktionen soll ein möglichst hoher Erlös realisiert werden.
-
Öffnen Sie die Datei Fehlercodes.xlsm und verwenden Sie die Tastenkombination Alt + F11!
Eine Autofabrik produziert täglich 100 Automobile, denen Fehlercodes im Array Auto() von null bis zwei zugewiesen werden. Dabei bedeutet null, dass das Automobil fehlerfrei gefertigt wurde, während die anderen Codes über die Schwere des Fehlers Auskunft geben.Der bereits vollständig programmierte Teil übernimmt die Zuweisung des Fehlercodes an die produzierten Automobile nach folgenden Wahrscheinlichkeiten:
Fehlercode 0 : 80%
Fehlercode 1 : 10%
Fehlercode 2: 10%
Diesen Teil des Programms müssen Sie nicht bearbeiten. Beachten Sie jedoch die Kommentare in diesem Abschnitt.Im Anschluss werden die relativen Häufigkeiten der Fehlercodes berechnet. Auf Basis der ermittelten Zahlen wird ein Ergebnis mit Hilfe einer Messagebox ausgegeben. Am Ende des Programms werden alle Autos nummeriert und mit dazugehörigem Fehlercode in den Spalten A und B ausgegeben.Bitte vervollständigen Sie die fehlenden Stellen, welche mit den Zeichenfolgen AAA, BBB,… , EEE gekennzeichnet sind!
- Private Sub CommandButton1_Click()
- 'Die Anzahl der produzierten Autos wird als Konstante festgelegt
- Const anzahlAutos = 100
- Dim i As Integer
- Dim zufallsZahl As Integer
- 'Die Variable zufallsZahl dient der Zuweisung der Fehlercodes. Für die Bearbeitung der Aufgabe ist sie irrelevant.
- ' Der Array Auto enthält einen Fehlercode für jedes der 100 produzierten Automobile.
- Dim Auto(1 To anzahlAutos) As Integer
- ' Der Array FehlerHäufigkeit gibt die ABSOLUTE Häufigkeit der Fehlercodes eines Produktionstags an.
- ' Wie in der Aufgabenstellung erwähnt, existieren die Fehlercodes 0 bis 2
- Dim FehlerHäufigkeit(0 To 2) As Integer
- ' Der Array RelFehlerHäufigkeit gibt die RELATIVE Häufigkeit der Fehlercodes eines Produktionstags an.
- Dim RelFehlerHäufigkeit(0 To 2) As Double
- 'Der Abschnitt bis zum ersten Wend-Befehl weist den produzierten Autos Fehlercodes zu. Achten Sie auf das Kommentar.i = 1
- While i <= anzahlAutos
- zufallsZahl = Int(100 * Rnd + 1)
- Select Case zufallsZahl
- Case 1 To 80
- a = 0
- Case 81 To 90
- a = 1
- Case Else
- a = 2
- End Select
- ' An dieser Stelle wird dem i. Auto der Fehlercode 0; 1 oder 2 zugewiesen. 'Beispielsweise wird dem 3. Auto der Fehlercode 0 zugewiesen.
- Auto(i) = a
- i = i + 1
- Wend
-
- ' Bitte vervollständigen Sie den folgenden Code:
- i = 1While i <= anzahlAutos
- 'An dieser Stelle werden die absoluten Fehlerhäufigkeiten der einzelnen Fehlercodes ermittelt.
- 'Dazu werden alle Autos überprüft. FehlerHäufigkeit(AAA) = FehlerHäufigkeit(AAA) + 1
- i = i + 1
- Wend
- i = 0
- While i <= 2
- 'Nun werden die relativen Fehlerhäufigkeiten der einzelnen Fehlercodes ermittelt. RelFehlerHäufigkeit(i) = BBB
- i = i + 1
- Wend
- 'Sollte der Fehlercode 2 in mehr als 12% der Autos beobachtet worden sein, handelt es sich um ein außerordentlich schlechtes Ergebnis. Beachten Sie die Messageboxes.
- If CCC Then
- MsgBox ("Bei einer Fehlerhäufigkeit des Typs 2 von " & RelFehlerHäufigkeit(2) * 100 & "% handelt es sich um ein außerordentlich schlechtes Ergebnis.")
- 'Sollten mehr als 22% der Automobile fehlerhaft sein, wurden zu viele fehlerhafte Automobile produziert.
- ElseIf DDD Then
- 'In der Messabox soll die relative Häufigkeit aller fehlerhaften Automobile erscheinen.
- MsgBox ("Bei einer Fehlerhäufigkeit von " & (1 - RelFehlerHäufigkeit(0)) * 100 & "% wurden leider zu viele fehlerhafte Automobile produziert.")
'Trifft keine dieser Bedingungen zu, ist das Ergebnis angemessen.
- Else
- MsgBox ("Die Fehlerhäufigkeit ist angemessen.")
- End If
- 'Nun sollen die Nummern der produzierten Autos und deren Fehlercodes in den Spalten A und B aufgelistet werden.
- For i = 1 To anzahlAutos ActiveSheet.Cells(i, 1) = i ActiveSheet.Cells(i, 2) = EEE
- Next
- End Sub
- AAA Fehlerhäufigkeit(Auto(i)) =
- Fehlerhäufigkeit(Auto(i)) +1
- BBB
- RelFehlerhäufigkeit(i) = Fehlerhäufigkeit(i)/ anzahlAutos
- CCC If RelFehlerHäufigkeit(2) >
- 0.12 Then
- DDD RelFehlerhäufigkeit(0)<0.78
- EEE Auto(i)
-
Das vorliegende Programm wahlUmfrage() soll folgendes leisten: Es soll eine vorgegebene Anzahl von Bundesbürgern (anzahlBefragter) gefragt werden, welche Partei sie momentan wählen würden, wenn jetzt Bundestagswahl wäre. Die Entscheidung eines Befragten/einer Befragten kann über das Programm eingegeben werden (Inputbox) wobei z.B. für die Wahl der SPD die 1 eingeben werden muss, für die CDU die 2 usw. (siehe Menüausgabe der InputBox)Falsche Eingaben sollen dabei vom Programm abgefangen werden, indem eine Fehlermeldung ausgegeben wird und die Eingabe solange wiederholt wird, bis eine gültige Angabe erfolgt ist. Außerdem sollen die Befragten für die spätere Auswertung ihr Geschlecht angeben(für männlich eine 0, für weiblich eine 1). Hier gilt gleiches für ungültige Eingaben (Fehlermeldung und wiederholte Eingabeaufforderung). Waren beide Eingaben eines Befragten gültig, so können diese jetzt in den entsprechenden Arrays(waehlerstimmen und geschlecht) gespeichert werden, wobei z.B. für den 1. Befragten die Angaben an Position 1 der Arrays gespeichert wird, also in waehlerstimmen(1) und geschlecht(1).Zuletzt sollen die Stimmen für die jeweiligen Parteien ausgezählt werden. Hierbei soll jedoch nach Geschlecht unterschieden werden. Das Wahl-Ergebnis soll also für Frauen und Männer getrennt ausgewertet werden und in den entsprechenden Arrays frauenErgebnis ODER maennerErgebnis gespeichert werden. Die Anzahl der Stimmen für die SPD z.B. bei den Männern soll an Stelle
-
Die erste Normalform
- Ein Relationstyp (RT) befindet sich
- in der ersten Normalform, wenn alle Attributwerte elementar (atomar) sind.
- Atomarität von Wertebereichen bedeutet:
- >Zusammengesetzte Attribute sind nicht zugelassen.
- >Wiederholungsgruppen und Auflistungen sind nicht zugelassen
-
Funktionale Abhängigkeit
Vollfunktionale Abhängigkeit
Funktionale Abhängigkeit
Ein(e) Attribut(gruppe) Y heißt funktional abhängig von Attribut(gruppe) X, wenn es zu jedem Wert von X nur genau einen Wert von Y geben kann.
- Schreibweise:
- funktional abhängig: X → Y
- nicht funktional abhängig: X Y
- Volle funktionale Abhängigkeit
- X → Y und es gibt keine Teilmenge von X, von der Y funktional abhängig
- ist.
- Schreibweise:
- wenn X eine Attributgruppe ist: X ⇒ Y
- ansonsten reicht auch hier: X → Y
-
Die zweite Normalform (2.NF)
- Ein Relationstyp befindet sich in der zweiten Normalform, wenn er sich in 1. Normalform befindet und jedes Nichtschlüsselattribut von jedem Kandidatenschlüssel voll funktional
- abhängt.
- Anders ausgedrückt:
- Gibt es Nichtschlüsselattribute, die sich durch einen Teil eines Kandidatenschlüssels
- eindeutig bestimmen lassen (partielle Abhängigkeiten)?
> Wenn ja, befindet sich die Relation nicht in 2.NF!
Die 2.NF kann also niemals verletzt sein, wenn es keine zusammengesetzten Kandidatenschlüssel oder keine Nichtschlüsselattribute gibt (vorausgesetzt die 1.NF ist gegeben)
-
Die dritte Normalform (3.NF)
- Ein Relationstyp befindet sich in der dritten Normalform, wenn er sich in der 2.
- Normalform befindet und kein Nichtschlüsselattribut transitiv von einem
- beliebigen Kandidatenschlüssel abhängt.
Anders ausgedrückt:
Gibt es Nichtschlüsselattribute, die sich durch ein anderes Nichtschlüsselattribut eindeutig bestimmen lassen?
- > Wenn ja, befindet sich die Relation nicht in 3.NF!
- Die 3.NF kann also niemals verletzt sein, wenn es keine oder nur ein Nichtschlüsselattribut gibt (vorausgesetzt die 2.NF ist gegeben)
-
Kochrezept – Normalformen
- 1.Prüfung auf 1.NF -> in der Klausur gegeben, sofern die konkreten Daten
- nicht vorliegen
- 2.(Voll) funktionale Abhängigkeiten bestimmen
- 3.KS und NS bestimmen
- 4.Prüfung auf 2.NF: partielle Abhängigkeiten eines NS von einem Schlüsselattribut? -> dann 2.NF verletzt
- Existieren zusammengesetzte KS? -> wenn nein, dann 2.NF gegeben
- Existieren NS?
- -> wenn nein, dann 2.NF gegeben
- 5.Prüfung auf 3.NF: transitive Abhängigkeiten eines NS von einem anderen NS? -> dann 3.NF verletzt
- Existieren mindestens 2 NS? -> wenn nein,
- dann 3.NF gegeben
-
Beispiel zur Normalisierung
Es sei die Relation a, b, c, d, e, f gegeben
Folgende funktionale Abhängigkeiten seien gegeben:
(a, b) -> c
(a, b) -> d
(a, b) -> f
b -> e
d -> f
- Kandidatenschlüssel: (a, b)
- Nichtschlüsselattribute: c, d, e, f
- 2. NF verletzt durch b -> e
- Falls 2. NF nicht verletzt wäre:
- 3. NF verletzt durch d -> f
-
Kardinalitätenkürzel
- k : genau k-mal. z.B. 3
- [n,m] : mindestens n, maximal m. z.B. [2,5]
- * : Null oder mehr
- + : 1 oder mehr
- c : Null oder 1
-
a) Öffnen Sie ein leeres Excel-Datenblatt. Erstellen Sie ein Programm, welches die Umsatzrentabilität errechnet. Nutzen Sie dazu zwei Inputboxen, in welche der Benutzer sowohl den Umsatz als auch die gesamten Aufwendungen eingibt.
Als Ergebnis sollte eine Messagebox erscheinen, welche die Umsatzrentabilität und eine Beurteilung beinhaltet:
a. x<5% schlechtes Ergebnis
b. 5%<=x<10% zufriedenstellendes Ergebnis
c. x>=10% hervorragendes Ergebnis
b) Bitte garantieren Sie durch die Einblendung einer Fehlermeldung, dass weder Gesamtaufwand noch Umsatz negativ sein dürfen.
c) Beziehen Sie sich nun auf Tabelle 1 der Datei Berliner Motoren Werke AG.xlsm. Errechnen Sie die Umsatzrentabilität der Jahre 1 und 2 des 1. Modells und lassen Sie das Programm in H13 ein Kommentar schreiben, ob die Umsatzrentabilität gestiegen ist.Hinweis: Bitte referenzieren Sie die Zellen und verwenden Sie nicht die einzelnen Werte
- Private Sub CommandButton1_Click()
- Dim kosten As Double
- Dim umsatz As Double
- Dim gewinn As Double
- Dim umsatzRent As Double
- Dim text As String
kosten = InputBox("Bitte geben Sie die Kosten an!")
- umsatz = InputBox("Bitte geben Sie den Umsatz an!")
- gewinn = umsatz - kosten
- If kosten < 0 Or umsatz <= 0 Then
- MsgBox ("Bitte geben Sie ausschließlich positive Werte an.")
- Exit Sub ' dieser Befehl beendet das Makro sofort an dieser Stelle. Der Rest wird nicht ausgeführt' Es sind auch andere Strukturen denkbar, so wird aber die Division mit 0 im Fall der Fälle unterbunden' Der Befehl wurde nicht im Tut behandelt, er dient als Ergänzung.' Die Aufgabe kann auch mit ausschließlich bekannten Befehlen bearbeitet werden.
- End If
umsatzRent = gewinn / umsatz
- If umsatzRent < 0.05 Then
- text = "schlechtes"
- ElseIf umsatzRent < 0.1 Then
- text = "zufriedenstellendes"
- Else
- text = "hervorragendes"
- End If
- MsgBox ("Bei einer Umsatzrentabilität von " & umsatzRent * 100 & "% handelt es sich um ein " & text & " Ergebnis")
End Sub
-
Erstellen Sie ein Programm zur Verwaltung linearer Abschreibungen. Es müssen sowohl die Anschaffungs- oder Herstellungskosten, die Laufzeit und der Veräußerungswert am Ende der Nutzungsdauer mittels Inputboxen abgefragt werden.
a)Bitte geben Sie die Restwerte der einzelnen Jahre an! Schreiben Sie dazu pro Periode einen Antwortsatz in die Zellen A1 ff.Verwenden Sie dazu den Befehl:
ActiveSheet.Cells(i, 1).Value = "Am Ende der Periode " & i & " beträgt der Restbuchwert " & restwert & " Euro."
Das i bezieht sich auf die Schleifeniteration. Bitte versuchen Sie den Befehl nachzuvollziehen!
b)Verhindern Sie, dass für die Anschaffungskosten, den Veräußerungswert oder die Jahresanzahl negative Werte angenommen werden können.
- Private Sub CommandButton1_Click()
- Dim anschaffungskosten As Double, abschreibungsbetrag As Double, jahre As Integer, veräußer As Double, restwert As Double
- anschaffungskosten = InputBox("Bitte geben Sie die AHK an!")
- While anschaffungskosten < 0 anschaffungskosten = InputBox("Die eingegebene Zahl war negativ. Bitte korriegieren Sie Ihre Eingabe")
- Wend
- jahre = InputBox("Bitte geben Sie die Anzahl der Jahre ein, in denen abgeschrieben werden soll!")
- While jahre < 0 jahre = InputBox("Die eingegebene Zahl war negativ. Bitte korriegieren Sie Ihre Eingabe")
- Wend
- veräußer = InputBox("Bitte geben Sie den Veräußerungs- oder Verschrottungswert am Ende der Laufzeit an!")
- While veräußer < 0
- veräußer = InputBox("Die eingegebene Zahl war negativ. Bitte korriegieren Sie Ihre Eingabe")
- Wend
- abschreibungsbetrag = (anschaffungskosten - veräußer) / jahre
- restwert = anschaffungskosten
- 'Zum Anschaffungszeitpunkt entspricht der Restwert den Anschaffungs- oder Herstellungskosten.
- For i = 1 To jahre
- restwert = restwert - abschreibungsbetrag 'Restwert wird pro Periode berechnet.
- ActiveSheet.Cells(i, 1).Value = "Am Ende der Periode " & i & " beträgt der Restbuchwert " & restwert & " Euro."
- 'Es ist wichtig den Restwert vor der Ausgabe zu berechnen.
- Next
- End Sub
-
Erstellen Sie nun ein Programm, welches die Wertentwicklung eines festverzinslichen Wertpapiers darstellt. Der Nutzer soll die Möglichkeit besitzen den Anfangsbetrag, die jährliche Verzinsung und die geplante Haltedauer anzugeben.
Der Wert der Position am Ende eines jeden Jahres soll in die Zellen A1 ff. geschrieben werden. Verwenden Sie zur besseren Darstellung einen Satz, wie er in der vorigen Aufgabe angegeben wurde. Auch hier soll verhindert werden, dass negative Werte eingegeben werden können.
- Private Sub CommandButton1_Click()
- Dim restwert As Double, abschreibungsbetrag As Double, jahre As Integer, veräußer As Double
- wert = InputBox("Bitte geben Sie die den Anfangsbetrag an!")
- While wert < 0
- 'Die Schleife wiederholt sich, bis die Bedingung nicht mehr erfüllt ist
- wert = InputBox("Die eingegebene Zahl war negativ. Bitte korriegieren Sie Ihre Eingabe")
- Wend
- zins = InputBox("Bitte geben Sie den Zinsatz in Prozent an!")
- While zins < 0
- zins = InputBox("Die eingegebene Zahl war negativ. Bitte korriegieren Sie Ihre Eingabe")
- Wend
- haltedauer = InputBox("Bitte geben Sie Ihre geplate Haltedauer an!")
- While jahre < 0 haltedauer = InputBox("Die eingegebene Zahl war negativ. Bitte korriegieren Sie Ihre Eingabe")
- Wend
- For i = 1 To haltedauer
- wert = wert * (1 + zins / 100)
- 'Die Variable wert besitzt auf der rechten Seite immer den Wert der vorigen Iteration
- '(Bei der ersten Schleifeniteration besitzt die Variable den Anfangsbetrag)
- ActiveSheet.Cells(i, 1).Value = "Am Ende des " & i & ". Jahres beträgt der Wert der Position " & wert & " Euro."
- Next
- End Sub
-
Da sich die Popgruppe „Singapur Motel“ großer Beliebtheit erfreut, zählt der Fanklub mittlerweile 10.000 Mitglieder. Beim Eintritt in den Klub ist das Ausfüllen eines Formulars, in welchem das Lieblingsbandmitglied des Fans angegeben werden muss, obligatorisch. Dies wird im Array liebling gespeichert. Dabei ist die Codierung folgende:
• Schnuffi = 1
• Lalle = 2
• Kotzi = 3
• Wobbel = 4
• Hans-Rüdiger-Konstantin = 5
Nun möchte die Gruppe erörtern, welches das beliebteste Bandmitglied ist. Das Programm der Datei SingapurMotel.xlsm soll ihnen dabei behilflich sein.
Hinweis: Sollten sich mehrere Musiker den ersten Platz teilen, muss nur einer dieser Musiker angegeben werden.
- Sub algorithmus()
- ' die Anzahl der Fans
- Const n = 10000
- Dim liebling(1 To n) As Integer
- ' in anzahl werden später die Fans gezählt Dim anzahl(1 To 5) As Integer
- ' 'name' ist leider ein geschütztes Wort
- Dim namen(1 To 5) As String
- Dim k As Integer
- namen(1) = "Schnuffi"
- namen(2) = "Lalle"
- namen(3) = "Kotzi"
- namen(4) = "Wobbel"
- namen(5) = "Hans-Rüdiger-Konstantin"
- ' Da wir die Fanklubdaten leider nicht erhalten haben denken wir uns welche aus. An jede Stelle des Array liebling wird eine Zufallszahl zwischen 1 und 5 geschrieben.
- For k = 1 To n
- liebling(k) = Int(5 * Rnd + 1)
- Next
- ' Damit keiner betrügt und vorher noch schnell ' ein paar Stimmen in den Array anzahl einträgt ' wird jeder Speicherplatz des Arrays anzahl vor dem Beginn des Zählens auf Null gesetzt.
- Dim i As Integer
- i = 1
- While ?AAA?
- anzahl(i) = 0
- i = i + 1
- Wend
- ' die Anzahl der jeweiligen Fans wird zusammengerechnet
- For m = 1 To n
- ?BBB?
- Next
- ' der Musiker mit den meisten Fans wird ermittelt
- ' in max wird die Nummer des Musikers mit den meisten Fans gespeichert
- Dim max As Integer
- max = 1
- k = 2
- While ?CCC?
- If anzahl(k) ?DDD? Then
- max = k
- End If
- k = k + 1
- Wend
- MsgBox ("Die meisten Fans hat " ?EEE? & ".")
End Sub
- AAA i <= 5
- BBB anzahl(liebling(m))=anzahl(liebling(m)) + 1
- CCC k<= 5
- DDD >= anzahl(max)
- EEE & namen(max)
-
Öffnen Sie die Datei Personalrating.xlsm.Um den geeigneteren Kandidaten für die Stelle des CEOs in einem großen IT Unternehmen zu ermitteln, sollen die Mitarbeiter den beiden Kandidaten Noten verleihen. Diese Noten werden in den Arrays notenArbeitnehmerCEO1 und notenArbeitnehmerCEO2 gespeichert.
Da ein Vergleich zwischen den Benotungen verschiedener Mitarbeiter nur eingeschränkt möglich ist, wird lediglich die Präferenz in den Arrays eines Mitarbeiters berücksichtigt. Im Array präferenzCEO1 wird bspw. gezählt, wie häufig der erste Kandidat von einem Mitarbeiter bevorzugt wurde.
Darüber hinaus wird ein CEO-spezifischer Notenspiegel erstellt und im Tabellenblatt ausgegeben. Die Array notenSpiegelCEO2 gibt demnach an, wie häufig welche Note an den zweiten Kandidaten vergeben wurde.
- Private Sub CommandButton1_Click()
- Dim CEO(1 To 2) As String
- CEO(1) = "Cook"
- CEO(2) = "Ballmer"
- Const anzahlArbeitnehmer = 1000
- 'Ein Arbeitnehmer darf jedem CEO eine Note erteilen.
- Dim notenArbeitnehmerCEO1(1 To anzahlArbeitnehmer) As Integer
- Dim notenArbeitnehmerCEO2(1 To anzahlArbeitnehmer) As Integer
- 'In diesen Arrays wird gezählt, wie häufig CEO1 bzw. CEO2 präferiert wurde
- Dim präferenzCEO1 As Integer
- Dim präferenzCEO2 As Integer
- präferenzCEO1 = 0
- präferenzCEO2 = 0
- 'Diese Arrays beinhalten die Häufigkeit der vergebenen Noten
- Dim notenSpiegelCEO1(1 To 5) As Integer
- Dim notenSpiegelCEO2(1 To 5) As Integer
- 'Da keine echten Daten zur Verfügung stehen, werden die Noten zwischen 1 und 5 lediglich per Zufall generiert.
- For i = 1 To anzahlArbeitnehmer notenArbeitnehmerCEO1(i) = Int(5 * Rnd + 1)
- notenArbeitnehmerCEO2(i) = Int(5 * Rnd + 1)
- Nexti = 1
- While i <= anzahlArbeitnehmer
- 'Kleinere Zahlen bedeuten eine höhere Präferenz seitens des Mitarbeiters.
- 'Hat ein Mitarbeiter beide Kandidaten gleich bewertet, fließt sein Urteil nicht in die Berechnung mit ein.
- If notenArbeitnehmerCEO1(i) < notenArbeitnehmerCEO2(i) Then präferenzCEO1 = präferenzCEO1 + 1
- ElseIf notenArbeitnehmerCEO1(i) > notenArbeitnehmerCEO2(i) Then präferenzCEO2 = präferenzCEO2 + 1
- End If
- 'Hierbei handelt es sich um einen geschachtelten Array. Der Array notenSpiegelCEO wird an der Stelle der Note aus notenArbeitnehmerCEO(i) hochgezählt.
- notenSpiegelCEO1(notenArbeitnehmerCEO1(i)) = notenSpiegelCEO1(notenArbeitnehmerCEO1(i)) + 1
- notenSpiegelCEO2(notenArbeitnehmerCEO2(i)) = notenSpiegelCEO2(notenArbeitnehmerCEO2(i)) + 1
- i = i + 1
- Wend
- 'Wurde bspw. CEO1 in Summe besser bewertet als CEO2, wird dieser in Zelle A1 geschrieben.
- If präferenzCEO1 > präferenzCEO2 Then ActiveSheet.Cells(1, 1) = CEO(1) & " ist öfter besser bewertet worden"
- ElseIf präferenzCEO1 < präferenzCEO2 Then
- ActiveSheet.Cells(1, 1) = CEO(2) & " ist öfter besser bewertet worden"
- Else
- ActiveSheets.Cells(1, 1) = "Beide Kandidaten sind gleich beliebt."
- End If
- 'Die Strings werden in die entsprechenden Zellen geschrieben. Beachte, dass es sich bei CE0(1 bzw. 2) um einen String handelt.
- ActiveSheet.Cells(2, 1) = "Notenspiegel"
- ActiveSheet.Cells(3, 2) = CEO(1)
- ActiveSheet.Cells(3, 3) = CEO(2)
- 'Noten und Anzahl je CEO werden in die entsprechenden Zellen übergeben.
- For i = 1 To 5
- ActiveSheet.Cells(i + 3, 1) = i 'Note übergeben
- ActiveSheet.Cells(i + 3, 2) = notenSpiegelCEO1(i) 'Häufigkeit an vergebener Note i für Cook ActiveSheet.Cells(i + 3, 3) = notenSpiegelCEO2(i) 'Häufigkeit an vergebener Note i für Ballmer
- Next
- End Sub
|
|