永发信息网

EXCEL2007如何实现?

答案:7  悬赏:0  手机版
解决时间 2021-11-30 02:18
  • 提问者网友:焚苦与心
  • 2021-11-29 14:14
EXCEL2007如何实现?
最佳答案
  • 五星知识达人网友:煞尾
  • 2021-11-29 14:27
把L列分成两列:L列和M列,其中L列保存运算符号(如:+-*/),M列保存具体数据。把减半之类的用语换成:*0.5(或者:/2)。
=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函数,先把能匹配到姓名的人的原始工资取数到L列,然后再给公式,也是就说增加一个辅助列。
VLOOKUP(K4,D:F,2,0)
K4是当前你输入了姓名的单元格,D:F是要引用的列,数字是要引用的列号,2就是工资额那一列。
  • 2楼网友:过活
  • 2021-11-29 18:42
if能不能实现要看你的分类。比如,你的截图,L累有 减半 减 加 × 四种情况,只要5个if就够了。所以,具体要看你L列的种类,如果只有这四类,公式还是很简单的。如果还有其他种类,比如百分之几十 双倍 翻一番 这样类似的表达词汇,那需要根据你L列的具体情况来做公式,或者用代码。请告知L列情况。。。追答

来来来,先给你个你截图的答案。测试你截图中的数据是没问题的,就是if套if,如果L列分类更多,就要做辅助列来缩短公式长度了。电脑不联网,只能手机截图,抱歉。有需要继续留言。追问先谢啦,但是我的需求真的不是If套嵌就可以实现的. 我的K~L栏位的公式需求会有很多,不限于我列出的五类.追答那估计要先把L列规范了,用钱额的空白列显示L列运算规则加减乘除,再开一列显示根据L列得出的数值,然后进行计算。。。。或者,你能否提供你L列的数据,我再看一下。
  • 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
建立辅助列G,让G5 =SUBSTITUTE(E5&VLOOKUP(D5,K:L,2,0),"工资","")
首先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栏,EXCEL最忌讳的是一个单元格里输入N多个数据信息,你不仅仅是数据而且还有一段公式啊!!!没有办法用文字描述作为计算的啊
你可以把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

追问好想看懂,但是...看不懂
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯