我有一个包含 2 个工作表的 Excel 工作簿。
一张工作表用于输入股票交易,另一张工作表则用于概览投资组合。
因此,我希望在投资组合工作表上有一列包含每只股票总数的内容。
现在,为了得到这个,我需要一个公式来检查投资组合工作表上的股票名称,假设它在 B 列,然后在交易工作表(C 列)上找到该股票的最后输入,最后得到我在该行上计算的股票总数,假设在 J 列。
例子:
投资组合工作表
B | C | F |
Stock | Last Price | Cumulative Units |
IBM | ### | (formula needed here) |
交易工作表
A | C | J |
Date | Stock | Cumulative Units |
### | IBM | 10000 |
### | IBM | 20000 |
### | IBM | 30000 |
我需要在投资组合工作表的 F 单元格中输入一个公式来检查 B 列(股票名称)的值,然后在交易工作表中搜索我最后输入的该股票并输出该行的累计单位数字,例如 30,000。
我正在尝试制作一个 Excel 版本的在线 Google Sheet 投资组合跟踪器,Google Sheet 上的公式是
=iferror(INDEX(arrayformula(filter(Transactions!J:J,Transactions!C:C<>"",row(Transactions!C:C)=max(if(Transactions!C:C=B2,row(Transactions!C:C),0)))),1),0)
答案1
Excel 解决方案与您在 Google 上使用的解决方案类似:
=INDEX(Transactions!J:J, MAX(IF(Transactions!C:C=B2,ROW(Transactions!C:C),0)), 1)
您可能忽略的技巧是,这是一个数组公式,因此输入时必须键入Ctrl++ 。ShiftEnter
该IF(Transactions!C:C=B2,ROW(Transactions!C:C),0)
部分创建一个看起来像的虚拟数组,反映了出现在交易表第 2、3 和 4 行
{ 0, 2, 3, 4, 0, 0, 0, … }
的事实。选择最后一个;即最高行号。然后从列中提取值。IBM
MAX
INDEX
Transactions!J