单线数据的最终分析中的单元参考偏移

时间:2016-06-30 22:59:29

标签: excel excel-vba excel-formula vba

我已经尝试过自己解决这个问题了。但是,我还没有找到适合我特定情况的示例或参考。

我有以下数据集:

Sheet Electronics

但是,由于我不能发布超过两个链接,我无法显示其他表格 - 但它们同样相似。

它们是单行项目。 (另请注意,在这种情况下,我的数字会不断变化,因为我正在使用" = RANDBETWEEN(0,1000)"。不要专注于数字。

当我尝试在最后一页上进行商店分析时出现问题。

这是我的问题:

Analysis Sheet -- Problem

STORE 1,JAN 16:Electronics Cell" E4"是电子产品!E5"

STORE 2,JAN 16:Electronics Cell" E10"是"电子产品! E11 "

什么时候应该是"电子产品! E6 "

这只是一个例子,我的实际数据有数千行数据,否则我只会暴力破解。

有什么想法吗?

谢谢, Calrabian

2 个答案:

答案 0 :(得分:0)

首先,我必须说你的日期真的让我感到烦恼。对某些人使用yy-mmm而对其他人使用mmm-yy只会让我陷入困境。

获得实际答案。由于您不是一次移动1个单元格,因此需要进行一些数学运算才能使公式一致。

首先需要的是获得一个返回正确行的公式。 第4行返回第5行 第10行返回第6行 第16行返回第7行(假设)

使用功能

=int((row()-4)/6)+4

然后将其插入索引函数并获得解决方案

=index(Electronics!E:E,int((row()-4)/6)+4)

答案 1 :(得分:0)

我建议您使用VLOOKUPMATCH功能进行参考搜索,而不是单独依靠位置。

例如,假设您的数据位于Electronics!$C$1:$F$10,您可以在E4中使用数组公式并将其复制到E11

=INDEX(Electronics!$C$2:$F$10,MATCH($C4,Electronics!$A$2:$A$10,0),MATCH(E$3,Electronics!$C$1:$F$1,0))

*使用 Ctrl + Shift + Enter 输入公式作为数组公式,然后复制到 E11

说明:

  • 主要公式结构为INDEX(<data area>, <match Store row>, <match Date column>)
  • INDEX函数根据提供的行索引和列索引返回数组/引用中的数据。
  • MATCH函数可以水平或垂直查找索引。
  • 第一个MATCH($C4,Electronics!$A$2:$A$10,0)在商店列A中找到商店行.C4是要查找的商店名称。您可以使用此参考来满足您的需求。
  • 第二个MATCH(E$3,Electronics!$C$1:$F$1,0)在日期第1行中找到日期列。

你可以使它更灵活和复杂,但这是一般的想法。