我有Excel数据的负值附近有括号,但Excel没有将它们看作负值,它似乎将它们作为文本。例如。试图总结具有($ 25.00)和$ 50.00的单元格给出#VALUE!错误。将括号括起来的数字转换为负数
数据从csv文件导入。
这不是格式问题,更改负值格式不会改变任何内容。那么,如何将这些值转换为实际的负数?
谢谢。
这是一些示例数据,以防万一有人想要它。所以括号中的数值应该是负数,但目前似乎是文本。
($25.00)
$50.00
($35.00)
($15.00)
我有Excel数据的负值附近有括号,但Excel没有将它们看作负值,它似乎将它们作为文本。例如。试图总结具有($ 25.00)和$ 50.00的单元格给出#VALUE!错误。将括号括起来的数字转换为负数
数据从csv文件导入。
这不是格式问题,更改负值格式不会改变任何内容。那么,如何将这些值转换为实际的负数?
谢谢。
这是一些示例数据,以防万一有人想要它。所以括号中的数值应该是负数,但目前似乎是文本。
($25.00)
$50.00
($35.00)
($15.00)
尝试用-
取代$
什么也没有,)
什么也没有和(
。
像(6,437.55 $)将数字转换到货币数据类型完整的语法:
CASE WHEN IsNumeric(Replace(Replace(Replace([INPUT-COLUMN-NAME], ',', ''),')',''),'(','-')) = 1 Then Cast(Replace(Replace(Replace([INPUT-COLUMN-NAME], ',', ''),')',''),'(','-') AS Money) ELSE 0 END As [OUTPUT-COLUMN-NAME]
这可以直接在SQL语句中使用类似 选择ColumnA,CASE WHEN如上,ColumnC 从表..加盟等等。
您也可以定义一个函数,如(它带有性能损失),并在select语句中使用函数。
CREATE FUNCTION dbo.ConvertStringToMoneyType(@input_Number varchar(50))
RETURNS MONEY
AS
BEGIN
Declare @Output_Number money = 0
Set @Output_Number = CASE WHEN IsNumeric(Replace(Replace(Replace(@input_Number, ',', ''),')',''),'(','-')) = 1 Then
Cast(Replace(Replace(Replace(@input_Number, ',', ''),')',''),'(','-') AS Money) ELSE 0 END
RETURN @Output_Number
END
GO
将1
键入未使用的单元格中。复制它。选择以文本形式存储的数字,然后选择主页 - 剪贴板 - 粘贴 - 选择性粘贴 - 相乘。删除1
。
太明显了,只需用手动替换即可,谢谢! – Roope
@Roope A相当简短,因为我怀疑你有其他想法 - 但有时'手动'即使不明显也是有意义的! – pnuts