indirect函数提取重复
2022-11-29阅读(873)
问:请教 indirect 提取函数,我想提取Excel表中同一位置数据
- 答:如图,提取工作表SHEET1-SHEET8中的A1值。步骤是:
第一步,定义名称。
在SHEET9工作表中,点击逗公式地、逗定义名称地。在逗新建名称地对话框中,逗名称地设置为如X,逗引用位置地输入
=INDEX(GET.WORKBOOK(1),ROW(D1))
然后在A1中输入
=X
向下拖公式,就会显示各工作表名称。
第二步,提取数据
在B1中输入
=INDIRECT(A1&"!A1")
就提取出SHEET1-SHEET8工作表A1单元格的值。 - 答:你那个001是常量是不会变的,把"001"改为TEXT(ROW(A1),"000")
- 答:"001!B" 更改为:
TEXT(ROW(1:1),"000") & "!B"
下拉就能变了
=INDIRECT(TEXT(ROW(1:1),"000") & "!B" &CEILING(ROW(B$4)/2,1)*3)
问:怎样将函数INDIRECT更改去除重复值? =INDIRECT({1,2,3,4,5,6,7,8,9,10,11,12}&"月份!C:C")&""
- 答:分别对1-12月表的c列去重,包括空行
问:EXCEL,提取满足条件的前列对应重复值?
- 答:只显示小明吗?如是的话,可以输入这个公式,然后同时按下ctrl+shift+回车,最后把这个单元格向右复制。
=INDEX($A:$A,SMALL(IF($B:$B="小明",ROW(B:B),65586),COLUMN(A1)))&IF(COUNTIF($B:$B,"小明")<COLUMN(A1),"","小明") - 答:可以用下方法二列转多列,要把人名在前面,号数在后面
- 答:如果表格格式固定的话,可以使用transpose函数进行数组转置合并。不过数组转置需要第一列的大小与第一行的大小一致。
另一种方法是,用index进行偏移,在行中,用column判断自己所在的列,根据列号判断自己偏移了多少列,再把返回的列号,放在index的row位置,就偏移到第一列对应的行了。两行偏移到的位置合并即可。
这个可以不使用辅助列,需要公式嵌套。并不复杂。
不过如果对公式函数不了解的话,用辅助列也是个不错的办法,至少也是实时更新的。
当然, 如果不想使用公式,可以用vba写个change事件,只要B列的有变化, 就把这个数据写到相应的第一行去。
很多方法可以办到的。具体的思路就是以上的思路。具体的公式,最好有具体的表。通常我不自己构建表再写公式发上来,因为即使耗时耗力做了,也未必能达到提问者的要求。我这里只提供思路。如果要我做具体的公式,可私信传原表。
其实我觉得用index偏移的方法最好。方便好用效果好。不过前提是格式固定,第一行对应的列与第一列对应的行要一一对应的这种要求才行。
当然还有其他很多的方法,例如indirect+row+column函数也可以的。