FAQ > 金融建模 > 数据提取 > 基本面数据

Q:表40-业绩预测金额单位不统一,如何统一全部金额数据以“元”为单位展示?    

  •  业绩预测的盈利金额单位不统一,比如:
     1、SH600519贵州茅台盈利金额单位:“”/“亿元”

     2、SZ300765新诺威盈利金额单位:“万元”

     由于源数据不会更改;一是保留源公告中的情况,二是方便研究时,相同水平的公司进行对比。
     若要统一单位,解决方法如下:
    法一:封装函数:

    Function MUnitList40(); //表40的所有单位
    begin
      return array(
      "":1,
      "元":1,
      "千元":1000,
      "万元":10000,
      "百万元":1000000,
      "千万元":10000000,
      "亿元":100000000
      );
    end

    法二:将包含表40-业绩预测的盈利金额所有单位对照函数MUnitList40()导入客户端。
    MUnitList40()实现函数:附件:MUnitList40.fun
    导入函数方法参考FAQ:Q:如何导入函数

    范例一:取表格数据进行统一更改

    // 获取上证50所有业绩预测数据,并将“盈利金额上限”“盈利金额下限”统一以“元”为单位展示金额数据
      MU:=MUnitList40();
      return select Mv:=MU[trim(['盈利金额单位'])] as Nil,
          *,['盈利金额下限']*Mv as '盈利金额下限',
          ['盈利金额上限']*Mv as '盈利金额上限'
       from infotable 40 of getbk('上证50') end;
    部分返回结果:


    范例二:取指标数据时的处理
     SH600031三一重工部分源数据如下:


    // 获取SH600031三一重工20191231的盈利金额下限,单位为“元”
      MU:=MUnitList40();
      setsysparam(pn_stock(),'SH600031');
      Rdate:=20191231;
      a:=reportofall(40005,Rdate)*MU[trim(reportofall(40007,Rdate))];
      return a;
    // 返回:10800000000