Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Mathematische Formel durch Excel lösen (Hilfe!)
#1
Guten Tag zusammen!

Ich habe folgendes Problem: ich möchte Excel einen Prüfvorgang durchführen lassen, der folgende Formel auf Wahr/Unwahr prüfen soll.


Formel kurz erklärt:
x, y und n sind vordefinierte Zahlen. Excel soll mir nun sagen, ob aus dem n-ten Produkt von (a*b), wobei a und b Zahlen zwischen 0 und 20 sein sollten, x*y rauskommen kann.

Kurzes Beispiel:
x=5
y=8
x*y=40
n=4

40=1*5+2*10+5*1+4*5 --> True

Es soll also geprüft werden, ob eine Möglichkeit besteht, ob die Summe aus n a*b-Produkten x*y ergeben kann.
Dabei können a und b verschiedene Werte annehmen innerhalb der einzelnen Produkte, jedoch keine Werte größer 20.

Kann mir da jemand weiterhelfen? :19: :19: :19: 

Viele Grüße


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#2
Das ergibt 50, nicht 40.

Welches der vielen Ergebnisse soll's denn werden? Oder geht es wirklich nur um's OB?

Ein VBA'ler mit Rekursions-Kenntnissen hat jetzt gute Karten.
Antworten Top
#3
Einfach noch ein = davor!


Code:
=40=1*5+2*10+5*1+4*5
Antworten Top
#4
oder mit Bereichsnamen

Arbeitsblatt mit dem Namen 'Tabelle1'
BCDE
1XYn
2584
3
4
5
6
7FALSCH

ZelleFormel
B7=X*Y=1*X+2+10+X*1+n*X
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

(ich hoffe ich habe die Buchstaben richtig eingesetzt)
Antworten Top
#5
Code:
Sub M_snb()
   a = 8
   b = 5
   
   For j = 1 To 20
     For jj = 1 To 20
       For jjj = 1 To 20
         For jjjj = 1 To 20
           If j + jj + jjj + jjjj = a * b Then c00 = c00 & Join(Array(vbLf, j, jj, jjj, jjjj))
         Next
       Next
    Next
  Next
 
  MsgBox c00
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#6
Hallo M...,

in der Anlage eine allgemeinere Lösung:

1. Das Programm variiert zwei Werte (awert und bwert) ganzzahlig über die vorgegebenen Grenzen.
Für jede Variation, für die die definierte Formel den Wert 0 hat, werden die Werte der Variation ausgegeben.

2. Die Formel ist frei definierbar.


Code:
Private Sub cbTuwat_Click()
Dim lngAmin As Long
Dim lngAmax As Long
Dim lngBmin As Long
Dim lngBmax As Long
Dim lngOff As Long
Dim lngAwert As Long
Dim lngBwert As Long
Dim rngFormel As Range
Dim rngAwert As Range
Dim rngBwert As Range
Dim rngAusgabe As Range

lngAmin = ThisWorkbook.Names("amin").RefersToRange.Value
lngAmax = ThisWorkbook.Names("amax").RefersToRange.Value
lngBmin = ThisWorkbook.Names("bmin").RefersToRange.Value
lngBmax = ThisWorkbook.Names("bmax").RefersToRange.Value
Set rngAwert = ThisWorkbook.Names("awert").RefersToRange
Set rngBwert = ThisWorkbook.Names("bwert").RefersToRange
Set rngFormel = ThisWorkbook.Names("Formel").RefersToRange
Set rngAusgabe = ThisWorkbook.Names("Ausgabe").RefersToRange
rngAusgabe.CurrentRegion = ""

lngOff = 0
For lngAwert = lngAmin To lngAmax
    rngAwert.Value = lngAwert
    For lngBwert = lngBmin To lngBmax
        rngBwert.Value = lngBwert
        If rngFormel.Value = 0 Then
            rngAusgabe.Offset(lngOff, 0) = lngAwert
            rngAusgabe.Offset(lngOff, 1) = lngBwert
            lngOff = lngOff + 1
        End If
    Next lngBwert
Next lngAwert
If lngOff = 0 Then MsgBox "Keine Lösung gefunden."
End Sub


Angehängte Dateien
.xlsm   Molitor.xlsm (Größe: 21,33 KB / Downloads: 3)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#7
Moin Helmut und sorry vorab für das off topic!
Verona Poth nannte ihren Sohn San Diego, weil er dort gezeugt wurde.
Gabi Köster nahm das in einem Sketch zum Anlass, nicht allem und allen "sinnvolle" Namen geben zu müssen.
Grob nach diesem Script:
"Hömma, Rückbank von Papas Auto, im Wald, kommsse ma essen?"

Conclusio:
Nicht immer ist ein sprechender Name sinnvoll … ;)

[/off topic]

Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#8
So hätte ich den Sprößling auch nicht genannt; da wäre Hinterbänklerische Waldeslust doch erheblich sinnvoller. 

Sorry, Ralf, das konnte ich mir nicht verkneifen.   :89:
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#9
oder Autsch-eine-Ameise
Antworten Top
#10
Hi,
und auch offT
ich vermute nicht am 1.Jan erzeugt aber dennoch etwas fragwürdig.
my name is ....
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
Antworten Top


Gehe zu:


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