Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1308to1312
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
If then Anwendung
25.04.2013 19:24:42
Sebastian
Hallo zusammen,
ich habe folgendes Problem, vielleicht kann mir ja dabei jemand helfen:
Ich habe eine 412*412 Matrix, die mit 169744 Werten gefüllt ist.
Jetzt möchte ich mit den Zahlen folgendes machen: Ab einer gewissen Größe einer Zahl, soll ein entsprechender Wert zu der Zahl hinzuaddiert werden. Die einzelnen Unterteilungen sollen dabei wie folgt aussehen, wobei das x halt die jeweilige Zahl in der Matrix ist.
wenn 810 kleiner gleich x dann 135 addieren
wenn 540 kleiner gleich x und größer als 810 dann 90 addieren
wenn 270 kleiner gleich x und größer als 540 dann 45 addieren
Einen Auszug aus dieser Matrix findet ihr hier:
https://www.herber.de/bbs/user/85072.xlsx
Hab ihr eine Idee, wie ich das am Besten anstellen könnte? Das es mit If und then geht wurde mir schon gesagt, allerdings hab ich noch keinen richtigen Plan wie ich das anstellen soll.
Vielen Dank euch schonmal!
Gruß, Sebastian

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Select case
25.04.2013 19:40:39
ransi
HAllo
Ich denke du solltest das mit select Case machen.
If-Then eigentlich nur um zu prüfen ob der Wert eine Zahl ist.
Schau es dir mal an:
Option Explicit

Sub machs()
    Dim arr
    Dim L As Long
    Dim I As Integer
    arr = Range("A1:E5")
    For L = LBound(arr, 1) To UBound(arr, 1)
        For I = LBound(arr, 2) To UBound(arr, 2)
            If IsNumeric(arr(L, I)) Then
                Select Case arr(L, I)
                    Case Is >= 810
                        arr(L, I) = arr(L, I) + 135
                    Case Is >= 540
                        arr(L, I) = arr(L, I) + 90
                    Case Is >= 270
                        arr(L, I) = arr(L, I) + 45
                End Select
            End If
        Next
    Next
    Range("A1:E5") = arr
End Sub



ransi

Anzeige
AW: Select case
25.04.2013 20:06:06
Sebastian
Hallo ransi,
habs mal probiert und auf den ersten Blick scheint es geklappt zu haben. Werde nachher nochmal paar mehr Stichproben machen und melde mich nochmal. Danke erstmal! :)
Gruß
Sebastian

AW: Select case
25.04.2013 23:04:16
Sebastian
Hallo ransi,
hat echt super funktioniert! Hab vielen Dank!
Gruß,
Sebastian

AW: If then Anwendung
25.04.2013 19:42:07
Hubert
Hallo Sebastian
ganz genau werde ich aus dem, was du beschreibst, nicht schlau.
Könnte es vielleicht so aussehen, wie in meinem Beispiel ?
https://www.herber.de/bbs/user/85073.xls
Gruß, Hubert

Anzeige
AW: If then Anwendung
25.04.2013 23:07:29
Sebastian
Hallo Hubert,
nein, die Idee dahinter ist eine andere. Mittlerweile konnte ich es durch die Hilfe eines anderen Nutzers lösen. Trotzdem danke für deine Mühe!
Gruß,
Sebastian

unhöfliches doppelposting - ungeduldig?
25.04.2013 22:36:21
Klaus
Hallo Sebastian,
nach nichteinmal 12h die gleiche Frage nochmal stellen ist aber grob unhöflich. Hättest zumindest auf den alten Beitrag verweisen können:
https://www.herber.de/forum/messages/1310393.html
Grüße,
Klaus M.vdT.

AW: unhöfliches doppelposting - ungeduldig?
25.04.2013 23:02:18
Sebastian
Der Beitrag stand nicht mehr bei den offenen Fragen, da der Haken nicht gesetzt war. Ich wollte somit lediglich, dass die Problemstellung wieder alle sehen. Falls du das als grob unhöflich empfindest, tut mir das Leid. Einen Verweis auf deine Antwort hätte ich natürlich machen können.
Gruß,
Sebastian

Anzeige
AW: unhöfliches doppelposting - ungeduldig?
26.04.2013 08:22:10
Klaus
Falls du das als grob unhöflich empfindest
Hallo Sebastian,
es geht dabei weniger um mein Empfinden, als eher um die Fairness. Du gehts sehr egoistisch vor, "mein Problem nach vorne, damits jeder liest", obwohl du bereits Hilfe bei deinem Problem hattest. Dadurch wurde an deiner Aufgabe doppelt gearbeitet, in der Zeit wurde irgendwem anders NICHT geholfen.
Aus deiner Aufgabenstellung habe ich auch eher herausgelesen, dass du den programmiertechnischen Weg suchst und weniger die Lösung. Bei Excel-Gut bin ich davon ausgegangen, dass du die mit drei WENN-Formeln auch selbst hinschmieren kannst ...
Im unteren Thread hast du jetzt eine Lösung mit Formeln, die noch dazu sehr elegant verkürzt ist. Über VBA scheint es ja mit SELECT-CASE zu klappen.
Was ich dir aber mit auf den Weg geben will: Wenn du einen IF-THEN-ELSE Block nicht verstehst (das ist die absolute Basis im Programmieren!), dann solltest du dich vielleicht zunächst von SELECT-CASE fernhalten und kleinere Schritte machen.
Grüße,
Klaus M.vdT.
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige