请用EXCEL 函数或VBA做 | |||
a列 | b列 | c列 | d列 |
0.29 | 1.76 | 4.71 | -2.65 |
2.5 | 5.91 | -2.05 | -0.91 |
3.04 | -3.48 | -4.57 | -1.3 |
-0.21 | 3.99 | -3.01 | 3.29 |
-4.77 | -1.5 | -0.85 | 1.11 |
-1.46 | -6.34 | -0.24 | 2.2 |
-3.98 | 2.65 | -0.36 | -0.96 |
-0.32 | 2.37 | -0.32 | 1.83 |
-0.29 | 3.11 | 2.62 | 2.14 |
-2.03 | -0.58 | 0.87 | 0.14 |
3.07 | 0.25 | 1.31 | 0.25 |
2.58 | -0.07 | 0.93 | -1.39 |
-0.76 | 4.85 | -1.09 | 0.23 |
-1.78 | 0.2 | 0.86 | -1.12 |
-1.67 | 0.9 | 1.22 | 1.54 |
现在要把每一列大于-1小于1的数字中把a列-+0点右第一位数字不相同的提取到e/f/g/h列第2行到第17行的任意一行上。如,e列某一行为:237 |
请用EXCEL 函数或VBA做
答案:2 悬赏:50 手机版
解决时间 2021-05-19 14:43
- 提问者网友:孤山下
- 2021-05-19 11:50
最佳答案
- 五星知识达人网友:枭雄戏美人
- 2021-05-19 12:16
同时按Alt和F11进入宏界面,点菜单的插入,模块,粘贴如下代码:
Function dyy(xRng As Range) As String
Dim i As Integer
Dim tmpStr As String
For i = 1 To xRng.Rows.Count
If Abs(xRng.Cells(i, 1)) < 1 Then
tmpStr = Mid(xRng.Cells(i, 1), InStr(xRng.Cells(i, 1), ".") + 1, 1)
If InStr(dyy, tmpStr) = 0 Then dyy = dyy & tmpStr
End If
Next i
End Function
回到Excel,在E1输入 =dyy(A1:A16),公式向右复制。
Function dyy(xRng As Range) As String
Dim i As Integer
Dim tmpStr As String
For i = 1 To xRng.Rows.Count
If Abs(xRng.Cells(i, 1)) < 1 Then
tmpStr = Mid(xRng.Cells(i, 1), InStr(xRng.Cells(i, 1), ".") + 1, 1)
If InStr(dyy, tmpStr) = 0 Then dyy = dyy & tmpStr
End If
Next i
End Function
回到Excel,在E1输入 =dyy(A1:A16),公式向右复制。
全部回答
- 1楼网友:佘樂
- 2021-05-19 12:48
本模块可行,但EXCEL 表一关再打开,结果就没有了!麻烦你赐教一下!!!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯