Nach Währung in Excel filtern

3386
lorenzo-s

Ich habe diese Situation in Microsoft Excel:

Daten

Zellen werden mit "Zellen formatieren" formatiert und die Währung für jede Zelle manuell festgelegt. Sie sind also keine einfachen Zeichenfolgen. Ich würde die Filterung nach Währung zusammenfassen. Ist das möglich? Wie?

Vielen Dank.

1

1 Antwort auf die Frage

2
Raystafarian

VBA

Da Sie diese Zellen mit der Option "formatieren" formatiert haben, ist die Formatierung nicht im Wert der Zelle enthalten. Daher müssen Sie eine Funktion in VBA definieren. Fügen Sie dies ( Quelle ) in ein neues Modul ein:

Public Function sumFormats(rng As Range) As String Application.Volatile Dim cell As Range, dblDollar#, dblPound# dblDollar = 0: dblPound = 0 For Each cell In rng If Len(cell.Value) > 0 Then If Left(cell.Text, 1) = "$" Then dblDollar = dblDollar + cell.Value Else dblPound = dblPound + cell.Value End If End If Next cell sumFormats = "Sum of currency: $" & dblDollar & "; Sum of Pounds: " & ChrW(163) & dblPound End Function 

Verwenden Sie dann die neue Funktion =sumFormats(A1:A20)für die gewünschten Zellen und Sie erhalten die Summen in einer Zeile. Wenn Sie Zwischensummen in verschiedenen Zeilen benötigen, müssen Sie die Ausgabe der Funktion ändern.


Nicht-VBA

Wenn Sie sich nicht mit VBA herumschlagen möchten, benötigen Sie eine Helper-Spalte neben Ihren Nummern. In dieser Spalte verwenden Sie die Funktion =cell("format",A1)und diese wird ,2für £ und C2für $ zurückgegeben. Führen Sie dann eine =sumifFunktion für die Zwischensummen aus.

=sumif(helpcolumncell,"C2",currencycell)für US - Dollar, zu summieren und ersetzen C2mit ,2für Pfunde. Sie können die Helper-Spalte jederzeit ausblenden, wenn Sie sie nicht mögen. In diesem Fall gehen wir davon aus, dass sich Ihre Daten in Spalte B befinden und der Helfer in Spalte C.

A B C  Data Format $1 =cell("format",B2) = C2 £2 =cell("format",B3) = ,2  £3 =cell("format",B4) = ,2 $4 =cell("format",B5) = C2  sum dollar =sumif($C$2:$C$4,"C2",$B$2:$B$4) = 5  sum pound =sumif($C$2:$C$4,",2",$B$2:$B$4) = 5 

Dann müssen Sie diese Sumif-Zellen formatieren, um das Währungszeichen zu erhalten, oder eine =concatenate("$"&sumif(...))Funktion hinzufügen

Ich habe beide Methoden ausprobiert. Mit VBA ende ich immer für jede Zelle im ELSE-Block (Pfund). Bei Verwendung der Nicht-VBA-Methode gibt `= cell (" format ", A1)` immer '2' zurück. lorenzo-s vor 12 Jahren 0
Sie haben die Zellbereiche in Ihren Bereich geändert, oder? Und Sie haben definierte Währungsformate verwendet? Diese beiden funktionieren, wenn ich sie benutze, lassen Sie uns den Unterschied herausfinden Raystafarian vor 12 Jahren 0
Ich verwende € und HKD. lorenzo-s vor 12 Jahren 0
Ich weiß nicht warum, aber in Excel wird ein Leerzeichen (ASCII 32) vor dem Währungssymbol angezeigt. Zellwerte sind also etwas wie ␢1234,56 €. Also habe ich im VBA-Code "Mid (cell.Text, 2, 1)" anstelle von "Left (cell.Text, 1)" verwendet und das Problem gelöst. Vielen Dank. lorenzo-s vor 12 Jahren 0
Ich bin froh, dass du es herausgefunden hast! Raystafarian vor 12 Jahren 0