高分悬赏关于Excel的问题.好的有追加分.

一列表格(报价单).N项.每项价格都要加点钱.不过得按数值来加...要求如下:
<180 +10元
181-300 +15元
301-1000 +30元
1001-2000 +50元
2001-3000 +100元
>3001 +120元
因本人office全系列近乎白菜.不过我想应该会有类似于公式,函数之类的办法可以批量更改的吧...请把过程表达的详细点.好的还有追加分100分.还有就是.数值中有类似 白XXX元 黑XXX元,这样操作起来会不会受影响

完美方案:用VBA自定义函数
近乎白菜也无所谓,按以下步骤操作就行:
1、EXCEL里,按Alt+F11,打开VBA编辑窗口
2、点菜单“插入”-“模块”
3、把下面的代码复制过去

Public Function Newstr(str0 As String) As String
Dim str1, strNum, tmpA As String, tmpN As Integer

str1 = ""
strNum = ""

For i = 1 To Len(str0)

tmpA = Mid(str0, i, 1)

If tmpA >= "0" And tmpA <= "9" Then
strNum = strNum & tmpA

If i = Len(str0) Or (Mid(str0, i + 1, 1) < "0" Or Mid(str0, i + 1, 1) > "9") Then
tmpN = CInt(strNum)
Select Case tmpN
Case Is <= 180
tmpN = tmpN + 10
Case 181 To 300
tmpN = tmpN + 15
Case 301 To 1000
tmpN = tmpN + 30
Case 1001 To 2000
tmpN = tmpN + 50
Case 2001 To 3000
tmpN = tmpN + 100
Case Is >= 3001
tmpN = tmpN + 120
End Select

strNum = ""
str1 = str1 & tmpN

End If

Else
str1 = str1 & tmpA
End If
Next

Newstr = str1

End Function

4、关闭VBA窗口,返回EXCEL工作表
5、假如原数据在A1,在新单元格输入公式:
=newstr(A1)

就这样。。。。。。。。。。。。追问

公式怎么输入。。。还有就是可以一次输入一列吗。。。求具体操作。OK马上给分

追答

第3条那些代码有没有复制到VBA里?
如果已经复制好了,就可以像EXCEL的其他公式一样使用。
即:在要在求值的单元格里输入:=newstr(A1)就行了(A1为存储原始数据的单元格,可根据实际情况调整)
其他单元格用复制单元格的方法就可以了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-14
选函数,选区域,然后设置下
第2个回答  2012-06-14
狂晕,楼主用EXCEL这样做表啊?这样做还不如用TXT算了,用什么电脑都能打开
以后,做表的时候,项目一列,价格一列,这样,再加价格的时候,直接用IF函数套用就改了,就算不改价格,做排序查找都比这样的方便
顺便把公式写一下吧
把处理好的数据另起一列粘贴,在粘贴的或者原来的价格列输入公式=if(b2<180,b2+10,if(b2<300,b2+15,if……)),b2是对应的单元格,可以自己换
后边的一样道理,自己添了
第3个回答  2012-06-14
设置条件公式:
=IF(AND(A1>=0,A1<=180),A1+10,IF(AND(A1>180,A1<=300),A1+15,IF(AND(A1>=300,A1<=1000),A1+30,IF(AND(A1>1000,A1<=2000),A1+50))))

太长了,我未设置完,你自己复制这部分条件来修改完IF(AND(A1>1000,A1<=2000),A1+50
第4个回答  2012-06-15
商品按价位,分几个工作表中。
然后,各自加入公式。
这样,公式简单,也好理解。
lienhao2004@163.com
第5个回答  2012-06-15
A1为商品名称 A2为商品价格(必须是数字格式)。
=if(A2>3000,A2+120,IF(A2>2000,A2+100,IF(A2>1000,A2+50,IF(A2>300,A2+30,IF(A2>180,A2+15,A2+10)))))
相似回答