EXCEL2007如何实现?
- 提问者网友:焚苦与心
- 2021-11-29 14:14
- 五星知识达人网友:煞尾
- 2021-11-29 14:27
=if(vlookup(d5,K:M,2,0)="*",E5*vlookup(d5,K:M,3,0),if(vlookup(d5,K:M,2,0)="+",E5+vlookup(d5,K:M,3,0),if(vlookup(d5,K:M,2,0)="-",E5-vlookup(d5,K:M,3,0),if(vlookup(d5,K:M,2,0)="/",E5/vlookup(d5,K:M,3,0),E5))))追问公式可以实现我给出的数据要求,但是就想我问题给出的是,我的K&L栏位的数据会很多,无法以if的形式套嵌使用。是否有办法实现类似匹配条件然后调取相应的公式?
- 1楼网友:不甚了了
- 2021-11-29 19:54
VLOOKUP(K4,D:F,2,0)
K4是当前你输入了姓名的单元格,D:F是要引用的列,数字是要引用的列号,2就是工资额那一列。
- 2楼网友:过活
- 2021-11-29 18:42
- 3楼网友:执傲
- 2021-11-29 18:19
在F5中输入或复制粘贴下列公式
=IF(COUNTIF($K$4:$K$6,D5),E5*VLOOKUP(D5,$K$4:$L$6,2,),E5+VLOOKUP(D5,$K$7:$L$8,2,))
下拉填充
追问你确定这个公式可以?试了,只能实现张三和李四的...还是谢谢- 4楼网友:掌灯师
- 2021-11-29 16:58
首先VLOOKUP(D5,K:L,2,0) 得出 : 工资*2
然后去掉工资得出 :10000*2
思路就是把你的公式按照要求改成实际的公式。如:10000/2,10000+500,10000*4 等。然后让他计算出结果,并显示。
之后使用自定义公式。
ABC=evaluatevba(G5)
最后让F5 = ABC
即可。
- 5楼网友:持酒劝斜阳
- 2021-11-29 16:10
你可以把L栏的规则描述一下,一共分为多少个门类,比如:乘n倍、加或减一个X,让其变成L、M二个列,举例形式如下:
姓名 数字 门类
张三 2 乘
李四 -500 加
张五 0.5 乘
李六 300 加
也就表示张三是工资乘2,李四是工资减500,张五是工资减半,李六是工资加300,若是这样的操作,操作起来就非常简单了,只要加一个IF判断M列即可用VLOOKUPB函数实现了
- 6楼网友:人间朝暮
- 2021-11-29 14:42
用VBA编程,设某个单元格的Formula属性,自动去识别你定义的公式
程序未执行前的画面:
执行后的结果:
VBA代码画面:
VBA代码:
Sub test()
Const ColOfName As Long = 4
Const ColOfWage As Long = 5
Const ColOfTemp As Long = 7
Const ColOfFinal As Long = 6
Const ColOfFormula As Long = 12
Dim nRow As Long
For nRow = 2 To GetLastRow()
Sheet1.Range(Cells(nRow, ColOfTemp), Cells(nRow, ColOfTemp)).Formula = "=E" & nRow & " & MId(VLOOKUP(D" & nRow & ",K:L,2,FALSE),2,20)"
Sheet1.Range(Cells(nRow, ColOfFinal), Cells(nRow, ColOfFinal)).Formula = "=" & Sheet1.Range(Cells(nRow, ColOfTemp), Cells(nRow, ColOfTemp))
Next nRow
End Sub
Function GetLastRow() As Long
GetLastRow = Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlFormulas, SearchDirection:=xlPrevious).EntireRow.Row
End Function
追问好想看懂,但是...看不懂