将9位CUSIP码转换为ISIN码
如何将9位CUSIP代码转换为ISIN代码,最好在Excel中?
CUSIP完全包含在ISIN中。 ISIN的前缀是2个字母(在本例中是“US”或“CA”,因为CUSIP是北美标识符),最后是一个数字。
要确定最后的数字:
ISIN US0378331005,由CUSIP 037833100扩展而来。ISIN的主体是原始CUSIP,在20世纪70年代被分配。 前面加了国家代码“US”,最后加了一个校验码。 国家代码表示问题国家。 校验位以这种方式计算。
将任何字母转换为数字:
U = 30,S =
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
虽然有一个将CUSIP转换为ISIN的公式,但它可能并不总是为您提供正确的ISIN。
例如:
CCL拥有CUSIP 143658300,如果您使用公式,其ISIN应该是US1436583009,但是其ISIN是PA1436583006(属于CVC1),原因有另一个原因。如果股票在美国境外上市并且已经有ISIN,那么它的CUSIP不是从ISIN所以转换将是错误的。
这是一个额外的数字用户定义函数(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
不是我的代码 ,我在这里find它
用户定义的函数(UDF)非常易于安装和使用:
- ALT-F11调出VBE窗口
- ALT-I ALT-M打开一个新的模块
- 粘贴东西,closuresVBE窗口
如果保存工作簿,则UDF将随之保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx
要删除UDF:
- 如上所示调出VBE窗口
- 清除代码
- closuresVBE窗口
从Excel中使用UDF:
= CUSIPCONV(A1)
要了解有关macros的更多信息,请参阅:
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
macros必须启用这个工作!
一些使用样本: