作者:乔山办公网日期:
返回目录:excel表格制作
AH2=INDEX($C$1:$AG$1,32-MOD(LARGE($C2:$AG2+(34-COLUMN($C2:$AG2))/10000,COLUMN(A2)),1)*10000)数组公式来向下向右复制
数组公式,公式输完后,光标放在源公式编辑栏同时按zhidao下CTRL+SHIFT+回车键,使数组公式生效
不太明百白你的条件,你根据什么来度得到这些列名?
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Column
End Sub
这段代码能得专到你改动的单元格的地址,是要属这个吗?
利用excel2016以上版本的power query可以完成这个功能
如图,各个任务百都是以+隔开,先选中表格,在数据中,新建一个查询,查询是基于表格的(不同版本位置可能不同)
先将周一到周五的所有任务度分别分成单个的列,分隔符图中是 “+”
即使某一天没有一个人做多个任务的,也做一下这个操作,知因为以后可能会有人做这样的操作。做道完以后的样子如下图
选中除姓名外的所有行,做一次逆透视
结果如下图
下面回把周一.1之类的.1,.2删除,也是用一次拆分,分隔符为“.“
把多余的属性.2列删除
再做一个一定会出错的一个操作,根据任务和日期,对姓名进行求和,因为同一任务可能会有多个人,要进行合并,但普通用户不会输入命令,就用这样的方式改最简单
再进行一下修改,原来是
修改为
Text.Combine([列1],","), 要注意大小写
如果这样的表答格就能满足要求了,可以不再继续了。
如果要再透视,选中属性(日期),进行透视,值是计数(姓名)再有一个特殊的操作,一定要选“不要聚合”
再修改各个列的名字,再将结果进行上载即可,如果要放到指定的位置,就用“上载至……”
最后的结果是如下图
以后在表1中修改,表2点一下刷新即可。
按如下步骤操作: 1。E2中输入 =ADDRESS(MAX((A1:C4=E1)*ROW(1:4)),MAX((A1:C4=E1)*(COLUMN(A:C))),4) 2。输入后 按 ctrl + shift + enter(回车) 注意三个zhidao键同时按,你会发现公式被加了一个大括号,不是手工加的哦 3。根据你的行数,列数调整公式,我的公式是针对你的例子给的,有A1:C4的地方回,你的行数如果是100,就把C4变成C100,同时ROW(1:4)要变成ROW(1:100) 要是D列还有数据,就把所有C变D 改完还是要ctrl + shift + enter 呵呵,你在E1中输入数据,E2就得到该数据在数据库中的位置了,呵呵,搞定了 关于你的补充问题,在以上操作基础上继续如下操作:答 1。在E3中输入 =sumproduct((e1=a1:c4)*a1:a4) 然后回车 2。在F3中输入 =vlookup($e$3,$a$1:$c$6,column(b:b),0) 回车 3。将F3中函数向右拖动复制至G3 呵呵,搞定