Matrix auslesen VBA
Hallo liebe Leute,
ich habe folgendes Problem. Ich versuche KFZ-Steuern in mehreren Ländern für eine Seminararbeit zu berechnen.
Dazu habe ich folgende Steuerformerl Steuer = A*B , wobei B eine Matrix ist.
B ist eine 10x7 Matrix
Die Zeilen haben angaben zum CO2- Ausstoß und die Spalten zur Hubraumgröße.
Meine Frage ist jetzt wie es schaffe mir den Richtigen Wert aus der Matrix zu ziehen?
Bsp: Polo Co2 ausstoß von 96 und eine Hubraum 1399ccm
Daraus folgt: Steuer = A*0,45
Vielleicht kann mir ja jemand bei diesem Problem Helfen. Vielen Dank schon mal im Vorfeld für eure Unterstützung.
Liebe Grüße.
PS: verzeiht mir meine komische Formatierung
[Edit Biber] Codeformatierung nachgezogen.[/Edit]
ich habe folgendes Problem. Ich versuche KFZ-Steuern in mehreren Ländern für eine Seminararbeit zu berechnen.
Dazu habe ich folgende Steuerformerl Steuer = A*B , wobei B eine Matrix ist.
B ist eine 10x7 Matrix
Die Zeilen haben angaben zum CO2- Ausstoß und die Spalten zur Hubraumgröße.
ccm <1000 <1200 <1400 .... ..... >3000
Co2 < 110 0,3 0,36 0,45
Co2 < 120 0,42 0,5 0,63
......
......
......
......
> 210
Meine Frage ist jetzt wie es schaffe mir den Richtigen Wert aus der Matrix zu ziehen?
Bsp: Polo Co2 ausstoß von 96 und eine Hubraum 1399ccm
Daraus folgt: Steuer = A*0,45
Vielleicht kann mir ja jemand bei diesem Problem Helfen. Vielen Dank schon mal im Vorfeld für eure Unterstützung.
Liebe Grüße.
PS: verzeiht mir meine komische Formatierung
[Edit Biber] Codeformatierung nachgezogen.[/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 269884
Url: https://administrator.de/forum/matrix-auslesen-vba-269884.html
Ausgedruckt am: 20.04.2025 um 07:04 Uhr
6 Kommentare
Neuester Kommentar
Hi,
in welcher Form liegt denn die Matrix vor? Als Array?
Falls Array:
Ich würde ausgehend von den ggb. Werten zunächst Zeile und Spalte der Matrix berechnen. Die Grenzwerte dafür sind gegeben und sicherlich begrenzt viele.
Mit diesen Werten für zeile und Spalte dann den Faktor aus der Matrix lesen.
E.
in welcher Form liegt denn die Matrix vor? Als Array?
Falls Array:
Ich würde ausgehend von den ggb. Werten zunächst Zeile und Spalte der Matrix berechnen. Die Grenzwerte dafür sind gegeben und sicherlich begrenzt viele.
Mit diesen Werten für zeile und Spalte dann den Faktor aus der Matrix lesen.
Zeile = -1
Spalte = -1
Select Case Co2
case <110
Zeile = 0
case <120
Zeile = 1
case ...
Zeile = ...
end select
Select Case Hubraum
case <1000
Spalte = 0
case <1200
Spalte = 1
case <1400
Spalte = 3
case ...
Spalte = ...
end select
Faktor = Matrix(Zeile, Spalte)
E.
zu erst einmal danke für den Ansatz! Noch habe ich die Matrix nicht erstellt. Ich würde aber gern die Matrix direkt im
Quellcode erzeugen und dann auch dementsprechend befüllen. Geht das überhaupt?
Ja, natürlich.Quellcode erzeugen und dann auch dementsprechend befüllen. Geht das überhaupt?
Matrix(0,0) = 0.3
Matrix(0,1) = 0.36
Matrix(0,1) = 0.45
Matrix(1,0) = 0.42
Matrix(1,1) = 0.5
Matrix(1,1) = 0.63
....
Ich weiß das dies im eigentlichen Quellcode nichts zu suchen hat,
Mit statischen Daten, bei denen man davon ausgehen kann kann, dass sich diese nie ändern, kann man das durchaus machen.aber ich würde gern vermeiden vorher eine Tabelle in Excel anzulegen und dann diese auslesen.
Was aber schnell zum Vorteil werden wird, wenn sich die Matrix mal ändert. Dann muss der Code nicht geändert werden. Sprich, es kann jemand ohne Programmierkenntnisse die Daten anpassen. Der Regelfall.E.
Das Problem ist, dass ich viel zu große Werte wiederbekomme.
Wobei? Der Wert aus der Matrix ist zu groß oder das darmit gebildete Produkt ist zu groß?Und, hast Du in der Schule mit Wörtern rechnen gelernt oder doch mit Zahlen? Vielleicht liegts ja daran?
Dim MatrixA(9, 6) As Single '!
MatrixA(0, 0) = 0.3
MatrixA(0, 1) = 0.36
MatrixA(0, 2) = 0.45
MatrixA(0, 3) = 0.51
MatrixA(0, 4) = 0.6
MatrixA(0, 5) = 0.81
MatrixA(0, 6) = 0.99
MatrixA(1, 0) = 0.42
......
E.