元格中的一个引用地址的一部分需要作为变量被赋值

如果单元格中的一个引用地址的一部分需要作为变量被赋值后整个单元格的公式才能正常运算。这个该怎么办?
=SUMIF(消费明细!A$2:A$3000,A2&"*",消费明细!I$2:I$3000)
这个公式里面的 消费明细!I$2:I$3000 的 ! 后面的 I列 是得用别的公式才能确定的值。
这个别的公式是MATCH(g$1,消费明细!$A$1:$P$1,0)。要用这个match公式来找到正确的列,这样才能正确的求和。
是关于EXCEL表格数据处理公式的问题。

offset函数,可以改变区域位置、大小。应该是最合适这个场景的函数了。
另外用indirect+address也能实现,比较别扭一些。
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-10-31
修改公式:
=SUMIF(消费明细!A$2:A$3000,A2&"*",OFFSET(消费明细!$A$2,,MATCH(G$1,消费明细!$A$1:$P$1,0)-1,2999,))追问

谢谢,好了。这个思路很不错。运用函数得出整体引用区域。

本回答被提问者采纳
第2个回答  2018-10-30
从PHP内核的角度跟你解释下吧,你可以深入理解下,就完全明白了;
PHP的变量在内核中都是通过C语言的结构zval来存储的(你没学过C,你可以理解为是个对象,里面的成员变量都是类的属性,暂时先这样理解),zval结构如下:
struct _zval_struct {
zvalue_value value; // 存储变量的值
zend_uint refcount__gc; //表示引用计数 默认为:1
zend_uchar type; // 变量具体的类型
zend_uchar is_ref__gc; //表示是否为引用
};
举个例子,php代码如下:
$a = 10;
$b = $a;
这时$b没有引用,只是将$a的值赋给了$a,那么zval这个结构中的refcount__gc就变为2了,而is_ref__gc还是false,表示未引用,因为内核$a已经开辟了一块内存空间,当$a赋值给$b时,$b的值只指向了$a,这样就省去了重新开辟一块内存,但是当$b值被改变时($a的值不会变),$b又将会开辟一块新的内存空间,这就是所以的写时复制,到这里,楼主已经明白了,PHP变量在内核中的如何存储了,下面就讲下引用:
$a = 10;
$b = &$a;
这个时候,内核中存储$a的结构is_ref__gc标记为true,代表是引用,那么$a和$b都指向了同一个内存地址,当$b=20的时候,$a也会变成20,说到这里,楼主应该明白区别了吧?追问

谢谢回答了这么多,但是我问的是excel表格数据处理的事情。

元格中的一个引用地址的一部分需要作为变量被赋值
offset函数,可以改变区域位置、大小。应该是最合适这个场景的函数了。另外用indirect+address也能实现,比较别扭一些。

excel理填入的单元格位置是变量时如何填写如何用变量表示单元格地址
1. 在Excel表格中选择一个单元格,输入变量的名称,例如“x”。2. 在另一个单元格中输入变量的值,例如“10”。3. 使用公式或函数引用变量,例如“=A1*2”。在这个例子中,“A1”是变量x的位置,“2”是变量的值。4. 在Excel表格中按下“Enter”键即可看到结果。另外,如果需要将多个单元格的...

VBA如何在某一行查找到指定值的单元格并获取其列号赋予给变量?
是不是已经明白错误的原因了,Range()括号里面的内容不是合法的单元格引用,这里两个错误,一是变量col添加了引号,二是col结果是整数,不是字母,需要用Cells来表达,错误的语句:mum = Range("col+1" & Rows.Count).End(xlUp).Row 需要修改为:mum = Cells(Rows.Count, col + 1).End(xlUp)...

EXCEL 怎么在一个单元格的内容内设置变量?
这个可以考虑在其他单元格,录入,在这个单元格引用。一、用一个单元格选数据,做成下拉菜单。二、在B3单元格录入公式:="感谢"&D3&"帮助解决问题,谢谢!"三、点选需要人的名,出效果。

VBA 单元格引用区域 有变量?
VBA 单元格引用区域 有变量? 20 我想引用区域Range("B41:B53"),但是其中行号是一个变量的代数,即:41=4*f1-2753=4*f2-27请问该如何引用呢?PS:使用偏移offset重置区域大小resize不符合我的编程要求PS:使用这种格式... 我想引用区域Range("B41:B53"),但是其中行号是一个变量的代数,即:41=4*f1-2753=4*...

VBA中,判断某个单元格含有字符类数据,就给一个变量赋值true,反之...
还是根据单元格的内容是否包含A~Z或a~z或标点等符号以及汉字或日文等其他双字节字符就返回True ?下面函数除了0~9以外的都视作字符。function IfContainChar(var) as boolean dim tmp as boolean tmp=false dim V as string v=var dim l as long l=len(var)if l>0 then for k=0 to 9 ...

如何用变量给excel单元格赋值
1、首先打开一个工作样表作为例子。2、使用alt+f11组合快捷键进入vbe编辑器,插入一个新的模块,并在模块中输入以下代码:Sub test2()Worksheets("Sheet1").Range("A1").Value = _Worksheets("Sheet1").Range("A5").ValueMsgBox "现在A1单元格中的值也为" & _Worksheets("Sheet1").Range("A5...

vba如何在一个有内容的单元格后面赋值(插入)一个变量的值
Range("A1").Value = "'" & Range("A1").Value & i

excel引用单元格,单元格是变量
B3公式=VLOOKUP(F2,数据!A:C,2,0)D3公式=VLOOKUP(F2,数据!A:C,3,0)

VBA 单元格赋值一个语句语句是有固定字符串和变量衔接而成如何实现谢...
VBA引用 范围(“A”&I)细胞(I,J)子Sheet5_按钮1_单击()行(“3点03分” )。选择 范围(选择,Selection.End(xlDown))。选择 范围(选择,Selection.End(xlDown))。选择 范围(选择,选择结束(xlDown)。)选择 范围(选择,Selection.End(xlDown))选择 Selection.Delete移位:.. ...

相似回答