Excel 根据其他变量的位置和值创建新变量

Excel 根据其他变量的位置和值创建新变量,excel,vba,excel-formula,Excel,Vba,Excel Formula,我试图根据Var_1到Var_8的位置和value_1到value_4的值创建新变量。数据采用面板形式,每ID行重复一次5行。例如,对于5个id和第一个用1填充的变量,相应的NVar#应该取Value#u 1中的五个值。对于相同的5id和第二个Var#填充了1的NVar#,相应的NVar#应取Value#u2中的五个值。等等 在下图中,Var_1在第一个ID块中填充1。因此,NVar\u 1应该具有Value\u 1中的第一个值块Var_3在第一个ID块中也填充了1。因此,NVar_3应该具有V

我试图根据
Var_1
Var_8
的位置和
value_1
value_4
的值创建新变量。数据采用面板形式,每
ID
行重复一次5行。例如,对于5个
id
和第一个用1填充的变量,相应的
NVar#
应该取
Value#u 1
中的五个值。对于相同的5
id
和第二个
Var#
填充了1的
NVar#
,相应的
NVar#
应取
Value#u2
中的五个值。等等

在下图中,
Var_1
在第一个ID块中填充1。因此,
NVar\u 1
应该具有
Value\u 1
中的第一个值块
Var_3
在第一个
ID
块中也填充了1。因此,NVar_3应该具有
Value_2
中的第一个值块。等等

Var_1-8
中每隔5
IDs
的1s模式是可变的,但每个
ID
块中只有4列将填充1s。
Value\u 1-4
中的值每隔5
IDs
重复一次

如对VBA语法或excel公式有任何指导,将不胜感激

下面是输出应该是什么样子。

假设Var_1条目从B2开始,我在NVar_1下提出了以下内容:-

=IF(B2,INDEX($J$2:$M$4,ROWS($N$1:$N1),COUNTIF($B2:B2,1)),0)
因此,您可以从同一行获得值,但列由COUNTIF确定-这将计算Var_1、Var_2等中的个数,直到匹配列(或者您可以使用SUM来计算个数)

实际上,您可以将其简化为在当前行中工作,如下所示:-

=IF(B2,INDEX($J2:$M2,1,COUNTIF($B2:B2,1)),0)

请编辑您的问题以设置文本格式,阅读时非常痛苦。。。使用“格式化内联代码,
**
表示粗体,
*
表示斜体。所有这些都在文本编辑器上方!看起来你可以使用索引公式得到你想要的答案,但现在没有时间去做和测试。谢谢@TomSharpe!我会调查的。谢谢@TomSharp。当公式获得第二个ID块时,我在应该有数据的位置获得
#Ref
。有没有关于出了什么问题的想法?我真的不明白rows部分是如何工作的。好吧,如果我重新启动每个块的rows($N$1:$N1),那么它就工作了。唯一缺少的部分是找出如何重新启动它或让行部分循环每个块的值1-5