本位币由
macOS
中为
→
)下的科目标签页设定。
类似地,GnuCash
也提供选项设置用于展示报表的首选货币,称为默认报表货币,位于GnuCash首选项窗口中的报表标签页下。建议开始使用GnuCash
时就将这两个选项都设置好,例如假设科目均以港元记账,而生成的报表都显示为人民币,报表就会提示“所选时段内没有交易数据或交易金额为零”。
创建新科目时,可以选择用作科目记账单位的商品。可以为以货币为单位的科目指定任何GnuCash
支持的货币,只需在货币商品列表中选择需要的货币。默认选中的货币为该新建科目的父科目使用的货币。
例如,现在创建一套银行科目,你大多使用人民币记账,但也拥有使用欧元的欧洲银行账户,以及使用港元的香港银行账户。因此需要建立 三个银行科目,一个科目单位为人民币,一个为欧元,而第三个为港元。一种适用此情况的科目结构可以是:
-资产 (CNY) -流动资产 (CNY) -中国银行 (CNY) -欧洲银行 (EUR) -香港银行 (HKD) -所有者权益 (CNY) -期初余额 (CNY) -人民币 (CNY) -欧元 (EUR) -港元 (HKD)
注意 | |
---|---|
每个科目使用的货币标注在括号里。 |
由于这个示例中大多使用人民币记账,所以父科目均设为人民币(CNY)。自然,你如果大多使用欧元记账,则可将这些父科目的货币更换为欧元。在科目树窗口中显示的总额都会换算为相应科目的货币。注意,这里也建立了三个期初余额所有者权益科目,用于向三个银行科目添加初始金额。
注意 | |
---|---|
也可以只建立一个期初余额科目,再通过跨货币转账向使用不同货币的科目添加初始交易,然而这是更进阶的做法,后文第 12.2.3.1 节 “使用外币买入资产”会详细介绍。 |
下面展示了按该示例得到的结果。你在三个银行科目中最初各有10,000元人民币、10,000欧元,以及10,000港元。注意,父科目总金额只包含与之货币相同的子科目金额。换句话说,资产总额和所有者权益总额只体现人民币金额,因为GnuCash
目前还无法换算欧元或港元的金额。一旦设定了货币间的汇率,父科目就会换算出所有子科目的金额。具体操作方法见后文第 12.2.2 节 “记录并更新货币汇率”。
注意此处显示了合计(CNY)列,可以在表头点击 并勾选合计(CNY)。
我们谈到货币的时候,通常是指由政府提供信用担保的通货,或者更准确地说,是ISO 4217中定义的货币。GnuCash
不允许你创建自己的货币。要记录非ISO货币,有两种变通方法可供使用,你可以选择更符合需求的一种。
自定义货币的变通方法
假设你想跟踪在某一企业集团购物时获得的会员积点。记录会员积点的科目为资产:其它:会员积点
将会员积分视为证券——就像股票或基金一样。
在这种变通方法中,要定义一种新的证券,类型为基金,叫做会员积点。思路很简单:创建新的会员积点科目时,只需将科目类型设为股票或基金,点击证券/货币:输入框旁的 按钮,再点击 ,添加一种类型为基金的新证券。
这其实不是股票和基金科目类型的本意,但GnuCash
还是允许这样做。缺点是每项涉及该科目的交易都需要输入“价格”,因为GnuCash
需要价格信息算出积点的货币价值,即将这些积点视为资产的一部分。
使用一种“伪货币”记录会员积点。
在这种变通方法中,你使用一种伪货币记录会员积点。这些货币是“XTS (测试用代码)”和“XXX (无货币)”。如果将其中一种用于会员积点科目,则当向科目录入交易时无需每次都输入份额价格。另外,可以一直使用这两种伪货币跟踪各种数量,目前本年已获得和已使用的的休假津贴、已获得和已使用的年假时长、已用和剩余的医疗保险额度,诸如此类。
这种变通方法的缺点在于你无法定义伪货币的汇率,以将之换算为ISO货币。如果想实现这一功能,就应该使用第一种变通方法。
你可以在GnuCash
中更新货币汇率,手动或自动皆可,操作上与设定投资份额价格(详见第 9.6 节 “设置份额价格”)几乎相同。下面两小节会分别介绍两种方法。
开始前,先简单看一下科目表。
如图所示,总余额没有反映目前持有的欧元或港元的价值。添加货币汇率会解决这个问题。
点击价格数据库。
→ 打开点击
按钮添加一条新的货币汇率记录。可以在弹出的窗口中设定新汇率,如下图所示:将命名空间设为货币,证券设为EUR (欧元)。然后设定选择的“证券”与选择的“货币”之间的汇率。在价格输入框设定购买一个单位的外币需花费多少个单位的本币。在这个情况下,就是指多少元人民币能够买入1欧元。在本例中,将汇率设为1欧元兑7.8元人民币。 Then set the exchange rate between the selected security and the selected currency. The Price box defines how many units of currency are required to purchase one unit of the security. In this case, how many dollars it will take to purchase on 1 Euro. In this example, you will set the exchange rate to 1 EUR for 1 USD.
注意到由于没有录入港元汇率,GnuCash
不会将港元科目余额换算为人民币。下一节会添加港元汇率。
上一节介绍了怎样手动添加新的货币汇率,但GnuCash
也具备自动更新报价的功能,下面进行介绍。
点击价格数据库。
→ 打开点击
按钮即可自动加载需要的多项汇率数据。注意 | |
---|---|
如果 |
每次点击第 9.6.3 节 “配置自动获取报价”所述配置GnuCash
按要求下载报价的时候,GnuCash
就会下载各科目使用的所有货币的汇率数据。
现在查看主科目表,可以看到GnuCash
已经自动将港元金额换算为人民币金额,并计入以人民币记账的父科目中,也就是总计(CNY)中给出的金额。欧元科目也已经同样按最新的汇率更新了金额。
一旦创建了使用非本位币的科目,GnuCash
就会自动开启该货币的汇率获取功能。然而,如果你之后删除那个科目,GnuCash
不会自动停用该货币的汇率获取功能。
Whenever you create an account that uses a non-default currency, exchange rate retrieval will be
automatically enabled for that currency. However, if you later delete that account, GnuCash
will not automatically disable exchange rate retrieval for that currency.
你如果已经删除了最后一个使用某货币的科目,并且以后不想再获取该货币的汇率,则需进行如下操作:
点击
→ 打开证券窗口。确定已勾选显示国家货币。
展开货币行。
双击希望停用汇率获取的货币。
取消勾选获取在线报价并点击 。
使用外币的购买交易可以通过两种不同的方式处理。
本节接下来将主要基于“B”方式介绍操作流程。
你使用的本位币为人民币,但你决定在越南买一艘船。相应地,你需要打开越南的银行科目,从中国转进一些钱,然后买下你的船。
要在GnuCash
中记录这项交易,可以使用如下基本科目结构:
-资产 (CNY) -流动资产 (CNY) -中国银行 (CNY) -越南银行 (VND) -固定资产 (CNY) -船 (VND) -所有者权益 (CNY) -期初余额 (CNY) -人民币 (CNY)
注意 | |
---|---|
每个科目使用的货币标在了括号中。 |
首先,你需要向越南转账10,000元,使用的是中国银行科目(余额100,000元人民币)。银行给出的汇率是1 CNY = 3505 JMD,但收取了150元人民币的兑汇手续费。
选中兑换越南盾的交易行(9,850.00元),右击选择编辑汇率。
你输入 1 CNY = 3505 VND 为汇率,因为这个汇率是银行给定的。在资金转账(编辑汇率)窗口中点击确定,保存分录交易。科目表中现在应当如下所示。
你确定花509,000越南盾买船。要在GnuCash
中记录这项交易,你需要在资产:流动资产:越南银行中将509,000越南盾转账至资产:固定资产:船只。
现在科目表反映出你的银行科目已经减少了509,000越南盾,而固定资产船只科目增加了同样的数额。如果已在科目表的选择列中勾选了总计 (CNY),则可以看到这些科目换算为人民币的金额。人民币金额总是根据自动或手动获取的最新货币汇率换算的。
此示例会展示怎样购买以外币计价的股票。
假定你住在上海,即本位币为人民币。你决定买入在香港交易的、以港元计价的股票。另外,你也想跟踪属于每支股票和每家经纪商的各种收入和费用数额。
你决定买入港铁公司的股票,编号为0694.HK。由于想要跟踪各种收入和费用金额,所以需要建立如下科目结构:
逐一创建所需科目后的科目表如下:
各支股票可通过证券编辑器(
→ )添加。若尚未将资金(50,000港元)转入经纪商现金账户 (资产:投资:经纪账户:宝盛证券:资金账户),则现在就该转入这笔资金了,可以使用所有者权益(港元)科目,或某一已经存在的银行科目(现金转账)。
有两种录入买入交易的方式,可以在现金科目中录入交易(下文会介绍),也可以在股票科目中录入交易。
注意 | |
---|---|
如果在股票科目中录入交易,会假定股票以父科目使用的货币计价。 |
假设股票价格为每股28港元。要录入买入交易,打开经纪商的港元现金科目(资产:投资:经纪账户:宝盛证券:资金账户),并按下表录入:
资产:投资:经纪账户:宝盛证券:资金账户 | 取出 | 50,000 |
费用:佣金:宝盛证券:0694.HK | 存入 | 500 |
资产:投资:经纪账户:宝盛证券:0694.HK | 存入 | 49,500 (16,500 份) |
如果汇率对话框没有自动弹出,右击股票交易行,选择编辑汇率。在转出份额中录入份额数量(16,500)。
回到科目表后,可以看到买入的份额已经反映在了股票科目的总额中。
不过,可能你已经注意到了,如果GnuCash
还没有记录人民币与港元间的汇率数据,则人民币总额仍为零。要解决这个问题,前往
→
点击 按钮自动获取所需汇率数据。
注意 | |
---|---|
需要重申,该示例展示了怎样在提供买入资金的现金科目账簿中录入交易,来以任意一种货币买入股票。也可以在股票科目账簿中录入买入交易,但要注意股票默认使用其父科目的货币记价。 在此示例中,股票科目的父科目(资产:投资:经纪账户:宝盛证券)以港元记价。由于父科目货币也就是股票的计价货币,因此可以放心地在股票科目账簿中录入买入交易。 |
当你决定投资于其它国家的货币,并希望相对于本国货币升值时,你就是在进行外币投资。
向GnuCash
录入这些交易时,需要考虑是记录得简单些,还是详细些。
如果你一点也不在意细节,下面这个相当简单的科目结构就足够了:
你只需录入两科目间的转账交易,并写明汇率。
但是,你如果想能跟踪资本损益,以及任何形式的手续费,则无疑需要使用更复杂的科目结构,例如:
买入外币,就是以一定的汇率拿本币买入一定数量的外币,例如,你可以买入价值10,000元人民币的瑞士法郎,即 1 CNY = 5 THB,交易手续费150元人民币。
资产:投资:货币:银行 (CNY) | 取出 | 10,000 |
费用:投资:货币:银行 (CNY) | 费用 | 150 |
资产:投资:货币:外币银行:THB (THB) | 存入 | 49,250 |
在离开上述分录外币交易的最后一行时,汇率窗口会自动弹出。如果没有弹出窗口,右击该交易行或选择编辑汇率。在汇率窗口中设定由银行给出的汇率。
,再选择录入外币卖出的操作与外币买入相同,不过这里是将钱从外币科目转回本币银行科目(与第 9.7 节 “卖出份额”很类似)。
外币卖出要录入得合理,就必须明确记录已实现损益,这可以通过分录交易实现。分录交易必须体现来自收入:投资:货币:外币银行:资本利得:XXX科目的损益。要平衡这项收入,需要录入外币资产两次,一次记录实际发生的卖出(使用实际金额和实际汇率),另一次用来平衡收入获利(份额设为0)。
简而言之,外币卖出交易应当如下所示,也可以在资产:投资:货币:外币银行:XXX科目中看到这项交易。
表 12.1. 使用分录交易方案卖出外币
科目 | 存款/费用 | 取款/收入 |
---|---|---|
资产:投资:货币:银行 (CNY) | 卖出金额 - 兑汇手续费 | |
费用:投资:货币:银行 (CNY) | 兑汇手续费 | |
资产:投资:货币:外币银行:XXX (XXX) | 卖出金额 (= 余额 + 获利) | |
收入:投资:货币:外币银行:资本利得:XXX (XXX) | [亏损] | 获利 |
资产:投资:货币:外币银行:XXX (XXX) | 获利 (转出份额=0) | [亏损 (转出份额=0) ] |