如何将9位CUSIP代码转换为ISIN代码,最好是在Excel中?
答案 0 :(得分:7)
CUSIP完全包含在ISIN中。然后,ISIN以2个字母为前缀(在这种情况下,“US”或“CA”,因为CUSIP是北美标识符),最后是数字。
确定最后的数字:
ISIN US0378331005,从CUSIP 037833100扩展而来.ISIN的主体是20世纪70年代分配的原始CUSIP。前面添加了国家/地区代码“US”,最后添加了一个校验位。国家/地区代码表示发行国家/地区。校验位以这种方式计算。
将任何字母转换为数字:
U = 30,S = 28.
US037833100 -> 3028037833100
。收集奇数和偶数字符:
3028037833100 = (3, 2, 0, 7, 3, 1, 0), (0, 8, 3, 8, 3, 0)
将包含最右边字符(即FIRST组)的组乘以2:
(6, 4, 0, 14, 6, 2, 0)
添加个别数字:
(6 + 4 + 0 + (1 + 4) + 6 + 2 + 0) + (0 + 8 + 3 + 8 + 3 + 0) = 45
取总和的10s模数:
45 mod 10 = 5
减去10:
10 - 5 = 5
取结果的10s模数(这个最后一步在和的模数为0的情况下很重要,因为得到的校验位数为10)。
5 mod 10 = 5
所以ISIN校验位是五。
来源:http://en.wikipedia.org/wiki/International_Securities_Identification_Number
答案 1 :(得分:4)
虽然有一个将CUSIP转换为ISIN的公式,但它可能并不总能为您提供正确的ISIN。
例如:
CCL有CUSIP 143658300,如果您使用该公式,其ISIN应为US1436583009,但其ISIN为PA1436583006(属于CVC1)的另一个原因。如果一只股票在美国以外的地方列出并且已经有一个ISIN,那么它的cusip就不会派生了从那个ISIN转换将是错误的。
答案 2 :(得分:1)
这是一个额外数字的 U ser D 定义 F unction (UDF):
Public Function CUSIPCONV(ByVal st As String) As Long
'Using ideas from original by Jelle-Jeroen Lamkamp 28 Apr 2008
Dim x As Integer, lTotal As Integer, stTemp As String, stNum As String
st = UCase(Trim(st))
If Len(st) <> 11 Or Mid(st, 1, 1) < "A" Or Mid(st, 1, 1) > "Z" Then Exit Function
stNum = ""
For x = 1 To 11
stTemp = Mid(st, x, 1)
If stTemp >= "0" And stTemp <= "9" Then
stNum = stNum & stTemp
ElseIf stTemp >= "A" And stTemp <= "Z" Then
stNum = stNum & CStr(Asc(stTemp) - 55)
Else
Exit Function
End If
Next x
stNum = StrReverse(stNum)
lTotal = 0
For x = 1 To Len(stNum)
lTotal = lTotal + CInt(Mid(stNum, x, 1))
If x Mod 2 = 1 Then
lTotal = lTotal + CInt(Mid(stNum, x, 1))
If CInt(Mid(stNum, x, 1)) > 4 Then
lTotal = lTotal - 9
End If
End If
Next x
CUSIPCONV = (10 - (lTotal Mod 10)) Mod 10
End Function
不是我的代码,我发现它Here
用户定义函数(UDF)非常易于安装和使用:
如果保存工作簿,UDF将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx
删除UDF:
从Excel使用UDF:
= CUSIPCONV(A1)
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
有关UDF的详细信息,请参阅:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
必须启用宏才能使其生效!
一些使用样本: