在Excel 2010中按不同的货币符号排序


1

会计部门输入不同货币($,谢克尔和澳大利亚镑)的货币收据。如果货币符号包含在具有金额的同一单元格中,或者货币符号必须与货币金额位于单独的列中,是否可以按货币类型对包含混合货币的列进行排序?


1
我无法理解......为了澄清,您需要排序的列中包含哪些内容?货币格式的数值或包含货币符号和数字的文本值?
danicotra

@danicotra:看起来这就是问题 - 可以对复合列进行排序还是必须将货币符号放在单独的列中?
fixer1234

如果在每种情况下输入货币符号作为第一个字符,则应该进行简单的排序。如果符号并不总是在最左边的字符位置,那么在没有将符号提取到单独的列的情况下,我无法想到一种直接的方法。
fixer1234

Thanx,修复你的答案。谢克尔(nis)的货币符号跟在数字之后,而$符号在数字之前。我们在工作中想到你的建议是要走的路,但我想知道是否有另一种选择。
JennieB

@ fixer1234和JennieB:请注意,您不能只将货币符号添加到金额值,请参阅我的回答最终说明。
danicotra

Answers:


0

前言:我一开始并不理解你的问题,但后来我意识到你不能为此处理文本值(货币符号+数字),所以你需要处理包含格式化值的单元格,以便它们显示为货币金额,但实际上只包含数字(只是数字,没有货币符号)。

好吧,既然Excel目前还没有提供基于单元格格式(除了颜色/图标)的排序,我想到的唯一解决方案基本上就是您假设的第二种解决方案: 您需要在辅助列中为每个金​​额(行)设置相对货币符号;那样你就可以进行自定义的多级排序 (货币列的第一级和金额列的第二级)并将您的数据整理出来。

我现在可以做的是建议你自动化这个过程的方法,以便让事情变得更快,并假设你不想做一些事情,比如手工编写每行数量的货币符号(是吗?;-D)。

好的,所以如果你可以使用VBA,我们在这里......

1)将以下VBA代码放入模块中:

Public Function GetCurrency(ByVal r As Range) As String
    Application.Volatile
    Static RegX As Object
    If RegX Is Nothing Then Set RegX = CreateObject("VBScript.RegExp")
    With RegX
        .Global = True
        .Pattern = "[0-9\-\.,\s]"
        GetCurrency = .Replace(r.Text, "")
    End With
End Function

2)现在,假设金额值在列“A”中,货币符号在列“B”上,则将此公式放在第一列B行(B1单元格)中:

=GetCurrency(A1)

然后将该公式复制到同一列的所有后续行(B)。

好的,到目前为止,你有两列,一列是格式化数值(A),另一列你需要包含相对货币符号(B)。

请注意,如果我的前言假设是相同的,那么这将是有效的,因此您将包含数字值的列“A”形成为适当的货币。如果没有,必须手动格式化每个列“A”行/单元格在这一点上没有任何差别,没有任何好处/获得超过每个列“B”行/单元的直接写入货币符号

3)现在选择两列并进行自定义多级排序:

转到“数据”功能区,查找“排序和过滤”组,单击“排序”;

排列COLUMN B VALUES(第一级)

点击“添加级别”

列COLUMN A VALUES(第二级)

而且......你已经完成了!

P.S。:现在,如果您愿意,您甚至可以安全地隐藏“B”列。

REFS:更多内容 基于多列的排序


重要说明:

您不必操纵/修改金额列中的值,货币符号必须在辅助列中为此。 您不能只将货币符号添加到金额值列中,否则,您将获得金额作为文本值,因此无法按数值对其进行正确排序! (例如,想想当你有“80美元”,“30美元”,“500美元”作为文本值时会发生什么:“$ 500”将在“$ 80”和“$ 30”之间排序,因为chars: "8" < "5" < "3" ...希望你明白了。)


@JennieB:我推迟了'因为我想确定在单元格格式化时排序功能的Excel潜力(...它具有Calc似乎仍然没有提供的功能,但正如我所说,只与颜色/图标和不多。)
danicotra

我不确定货币符号只是格式化的假设有多好。这听起来像是手动输入,这将使条目文本字符串,除非Excel理解并将其作为格式处理。从OP获得一些输入会很好。
fixer1234
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.