Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


Alle Werte in einer Matrix durch eine Zahl teilen ohne Rest
#1
Guten Morgen Liebe Excel Freunde,


Ich habe 2160 Zeilen und 4096 Spalten (die 4096. Spalte ist die Spalte "FAN").


In jedem Feld steht ein ganzzahliger Wert und die Werte gehen von 0 - 65355.


Nun möchte ich alle Zahlen in den Feldern durch 64 teilen, ohne Rest. Da es insgesamt ca 8,8 Millionen Felder sind, wäre eine Ressourcensparende Methode wünschenswert.



ich bedanke mich im Voraus und freue mich auf Hilfe,


Gruß,


JustAStudent
to top
#2
Hallo,

1. sollen die Zahlen an Ort und Stelle dividiert werden???
2. "ohne Rest", sollen alle Ergebnisse ganzzahlig sein???
Gruß


Opa Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
to top
#3
Danke für deine schnelle Antwort.

1. Ja die zahlen sollen optimalerweise an Ort und Stelle dividiert werden.
2. Alle Ergebnisse sollen ganzzahlig sein
to top
#4
Hallo,

anbei ein Makrovorschlag:
- liest Tabelle1 nach Array (ca 3 Sek)
- teilt alle Zahlen durch 64 (< 1 Sek)
- speichert Ergebnis nach Tabelle1 zurück (ca 27 Sek)

Gruß
Aloys

Code:
Sub Test3()             'Daten aus Tab1 nach Array, Division durchführen und Ergebnis aus Array nach Tab1 zurück
   Dim r As Long, c As Long
   Dim arr()
   Dim szeit As Single
   
   szeit = Timer
   arr = Range(Cells(1, 1), Cells(2160, 4096))
   MsgBox "Phase 1 (Laden Array aus Tab 1)  " & Timer - szeit
   
   szeit = Timer
   For c = 1 To 4096
       For r = 1 To 2160
           arr(r, c) = CLng((arr(r, c) / 64))
       Next r
   Next c
   MsgBox "Phase 2 (dividieren)  " & Timer - szeit
   
   szeit = Timer
   Application.ScreenUpdating = False
   Range(Cells(1, 1), Cells(2160, 4096)) = arr
   Application.ScreenUpdating = True
   MsgBox "Phase 3 (Speichern Array in Tab 2  " & Timer - szeit

End Sub
Win 7, Office 2010
to top
#5
Hi,

hier ein zweiter Ansatz (Laufzeit 20 Sekunden)

Code:
Sub TabelleInArrayDividierenUndZurück()
Dim Quelle As Variant
Dim Zeile As Long
Dim Spalte As Long
 
Debug.Print Now

Quelle = Tabelle1.Range("A1:FAN2160")
   
   For Spalte = 1 To 4096
 
       For Zeile = 1 To 2160
         
           Quelle(Zeile, Spalte) = Int(Quelle(Zeile, Spalte) / 64)
   
       Next Zeile
 
 Next Spalte
 
 Tabelle1.Range("A1:FAN2160") = Quelle
 Debug.Print Now
   
End Sub

Gruß
Max
to top
#6
Erst mal vielen Dank 17  ich erhalte unterschiedliche Werte bei den beiden Funktionen. Und Ich das Gefühl, dass die Werte gerundet werden. Das soll nicht passieren. So sollte ich z.B. für die Zahlen 0 - 63 die Zahl 0 erhalten, für 64 - 127 die Zahl 1 usw.

Gruß,

JustAStudent
to top
#7
Hi,

Du schreibst oben ganzzahliges Ergebnis.
INT ist das VBA-Pendant zur Funktion GANZZAHL.

EDIT:
Rest der ursprünglichen Antwort gelöscht.

Also willst Du grundsätzlich abrunden?


Gruß
Max
to top
#8
Ja ich will abrunden, das hatte ich eigentlich mit Ohne Rest gemeint  19 Sorry für das Missverständnis
to top
#9
Hallo,

Int() und Fix() runden ab!

Gruß Uwe
to top
#10
Was genau muss ich abändern? Bin leider ein ziemlicher Noob in sowas.
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Zeilen in Arbeitsblatt autom. auffüllen, damit eine durch 12 teilbare Anzahl entsteht Druckmanufaktur Eitel 10 133 Vor 1 Stunde
Letzter Beitrag: snb
  Text in einer Zelle über eine Seite hinaus ggunter 10 104 Gestern, 20:31
Letzter Beitrag: ggunter
  Funktion anwenden auf bestimmte Zellen definiert durch eine Bedingung in selber Zeile Lor4x 5 47 22.01.2017, 18:25
Letzter Beitrag: atilla
  Werte in einer Zeile addieren bis Zielwert erreicht und verwendete Werte markieren hoteu 2 60 12.01.2017, 13:04
Letzter Beitrag: hoteu
  Werte aus verschiedenen Zellen auslesen und in einer Zelle eintragen Robbie1985 2 46 07.01.2017, 10:39
Letzter Beitrag: WillWissen
  MW der letzten 5 Werte einer Spalte tröntken 6 97 05.01.2017, 07:57
Letzter Beitrag: tröntken
  Mehrere Werte in eine Zelle einfügen Faiko 2 91 02.01.2017, 17:44
Letzter Beitrag: schauan
  2 Werte mit definierten Kriterien aus einer Zelle Multiplizieren heppi14 6 150 28.12.2016, 23:29
Letzter Beitrag: Jockel
  Mehrere Zellen in einer Zelle ohne Duplikate zusammenfassen Scjord 9 137 21.12.2016, 14:42
Letzter Beitrag: Rabe
  Textbox Inhalt einer Userform in eine bestimmte Zelle schreiben - VBA - Hiiilfe Chris1112 9 188 20.12.2016, 10:21
Letzter Beitrag: Rabe

Gehe zu:


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