2017-10-23 7 views
0

Ich habe versucht, einen Weg zu finden, um Zahlen in Excel zu trennen, nur mit Formel.So teilen Sie Zahlen in verschiedene Teile

Ziel in der Liste unten

 
Pens: 
Black:30 
Blue:20 
Red:47 
Green:17 
Total:114 

zu verwenden war die Anzahl der Boxen in verschiedenen Feldern zu verteilen bestimmt wird, um wie viele Stifte in einer Box in diesem Fall passen die max 22

die Formel für die Berechnung Boxen:

 
`=114/22 = 5.18` 

, die nach oben in 6 Boxen abgerundet ist erforderlich

Gibt es eine Formel, die in der Lage ist, die Zahlen in die Boxen aufzuteilen, so darf die Farbe nicht nur eine Farbe sein.

Hinweis: die Boxen müssen nicht bis zum Maximum gefüllt werden, es wäre viel besser, wenn sie schön in die 6 Boxen aufgeteilt werden können.

 
The expected output: when splitting nicely 
Pen: 
Black : 19 11 0 0 0 0 
Blue: 0 8 12 0 0 0 
Red: 0 0 7 19 19 2 
Green: 0 0 0 0 0 17 
Total: 19 19 19 19 19 19 
+1

In Ihrem Fall, was ist die erwartete Ausgabe und welche Formel Sie verwendet, um es manuell zu berechnen? Bitte setzen Sie das auch in die Frage –

+0

Sie haben bereits eine funktionierende Formel, um die Boxen zu berechnen. Was ist deine genaue Frage? und bitte erklären Sie, was Sie mit "split schön" meinen –

Antwort

1

Bei Excel dreht sich alles um Zahlen und als solche ist es immer am besten, Zahlen nur in Zellen zu speichern. So können Sie einfacher hinzufügen, subtrahieren, multiplizieren und teilen. Daher scheint die Liste, die derzeit so etwas zu sein:

enter image description here

eher so etwas wie dies sollte:

enter image description here

Um dies zu erreichen Sie Spalte A in zwei Spalten aufgeteilt könnte mit Text to Columns Funktion in der Registerkarte Data und dann auf : aufgeteilt.

Alternativ können Sie auch alles beibehalten und lediglich die Zahlenwerte in jeder Zelle speichern. Dann können Sie das Zahlenformat für jede Zelle ändern zu zeigen, was überhaupt Text Sie dies wünschen mögen:

enter image description here

Beachten Sie, dass nur die Anzahl 17 in der Zelle gespeichert wird (wie aus der Bearbeitungsleiste sichtbar ist) . Das Zahlenformat für diese Zelle stellt jedoch sicher, dass es als Green:17 angezeigt wird.

Wenn Sie nicht über eine der oben genannten kümmern und wollen einfach nur eine schnelle Lösung für den Text alle in Spalte gespeichert ein, dann können Sie die folgende Array-Formel:

{=ROUNDUP(SUM(VALUE(MID(A2:A5,FIND(":",A2:A5)+1,LEN(A2:A5))))/22,0)} 

Beachten Sie die geschweiften Klammern um die Formel, die eine Array-Formel angibt. Sie müssen die Formel ohne die gebogenen Klammern eingeben und drücken Sie Ctrl + Alt + Return.Excel wird die geschweiften Klammern automatisch platzieren um und dadurch zu bestätigen, dass dies eine Matrixformel:

enter image description here

+0

Gibt es irgendeine Formel, um die Zahlen in verschiedene Zellen zu teilen? z. B. ist 30 wie oben in 19 und 11 aufgeteilt. –

+1

Das Problem mit Ihrer Anfrage besteht darin, dass Sie so viele Formeln in so vielen Zellen benötigen, wie die Eingabe erfordert. In deinem Fall brauchst du also 6 Spalten nach rechts, weil '114/22 = 6' (wenn aufgerundet). Wenn Ihre Eingabe jedoch 10 Boxen und somit 10 Spalten erfordert, müsste sich Ihre Lösung selbst anpassen. Daher müssen Sie Formeln in die angrenzenden Spalten schreiben, wie es für die Eingabe erforderlich ist. Dies kann nur mit VBA erreicht werden. Eine Lösung, die nur aus einer Formel besteht, funktioniert nicht (es sei denn, Sie sind bereit, einige wirklich ausgefallene Formeln zu erstellen und sie nur in alle benachbarten Spalten zu kopieren, die '' '' anzeigen, wenn sie nicht benötigt werden). – Ralph

+0

Was ist, wenn die Anzahl der Kästchen nie größer als 6 (6 Spalten) wird –

1

Wenn dies Ihr eingegeben:

enter image description here

Dann wird folgendes drucken „6“ in der Konsole:

Option Explicit 

Public Sub TestMe() 

    Dim rngA  As Range 
    Dim units  As Long 

    units = 22 
    Set rngA = Range("A1") 
    Debug.Print RoundUp(Split(rngA, ":")(1)/units) 


End Sub 

Public Function RoundUp(val As Double) As Double 

    If (val - Int(val)) <> 0 Then 
     RoundUp = Round(val + 0.5) 
    Else 
     RoundUp = val 
    End If 

End Function 

die "Magie" von der RoundUp functi kommt on, das addiert 0,5 zum Wert, wenn es nicht ganzzahlig ist und so das Aufrunden sicherstellt.

Verwandte Themen