excel - 查找、替换和计算多个值
问题描述
旧值
1. A + B + C
2. A + B
3. A + D + E +I
健康)状况
(A=1, B=2, C=3, D=4, E=5, I=6)
新价值观
1. 6
2. 3
3. 16
=替换(替换(K2,索引(旧,O5:O9),索引(新,P5:P9)),索引(旧,O5:O9),索引(新,P5:P9))
=替换(替换(K2,索引(旧,O5:O9),索引(新,P5:P9)),索引(旧,O5:O9),索引(新,P5:P9))
所以,实际上我想改变和计算值。只求和没有字母的数字,使用 excel 公式的符号
解决方案
如果您愿意将 UDF 放入您的项目中,那么这将为您完成。
Public Function CalculateBasedOnAlphabetIndex(ByVal strFormulaToEvaluate As String) As Double
Application.Volatile
Dim i As Long, strLetter, dblNumber As Double, varValue As Variant
strFormulaToEvaluate = UCase(strFormulaToEvaluate)
On Error Resume Next
For i = 65 To 90
strLetter = Chr(i)
Err.Clear
varValue = WorksheetFunction.VLookup(strLetter, Range("AlphaLookup"), 2, False)
If Err.Description = "" Then
dblNumber = varValue
Else
dblNumber = i - 65 + 1
End If
strFormulaToEvaluate = Replace(strFormulaToEvaluate, Chr(i), dblNumber, , , vbTextCompare)
Next
On Error GoTo 0
CalculateBasedOnAlphabetIndex = Evaluate(strFormulaToEvaluate)
End Function
...没有错误检查,但只要您坚持公式编写的基础知识,它就会起作用。
要完成上述工作,您需要在转换表的顶部创建一个命名范围,该范围需要称为“ AlphaLookup ”,并在代码中的VLOOKUP中使用以获取字母对应的值......
...然后将用于查找字母并找到它的赋值。不过,这张桌子有一个巧妙的技巧。如果字母对应的数字与其在字母表中的索引不同,您只需要维护该表中的字母。
例如,您说 A = 1、B = 2、C = 3、D = 4、E = 5 和 I = 6,所以在填写该范围时,根据上述内容,您必须输入的所有内容都是I,因为我在字母表中的位置不是第 6 位,而是第 9 位。
如果您不熟悉如何进入 Visual Basic 编辑器,请按Alt + F11,它将为您打开。
从这里插入一个新模块,然后粘贴该代码。
您现在可以直接在单元格中应用公式,就像这样......
=CalculateBasedOnAlphabetIndex(A1)
此 UDF 还将评估带有数字的公式,因此以下示例将起作用。
我希望这对你有帮助。
推荐阅读
- wpf - 模态窗口在没有明显原因的情况下变得模糊
- css - 如何定位带有触摸屏/没有鼠标的设备?
- android - Android Things:树莓派游戏手柄 USB
- nativescript - 如何在 NativeScript 中创建具有动态行数和列数的表?
- node.js - 如何使用 Promise.All 在 array.map 中使用 async/await 模式使用现有的 SQL Server 池连接
- php - get_call_class() $this 对象
- php - 如何在不破坏我的 html 标签的情况下从 mysql 数据库中获取评论
- python - 当我运行这个脚本时,它会在 else 行告诉 IdentationError,为什么?
- aws-lambda - 您如何使用 AppSync 和无服务器管理更新/回滚和多个版本?
- swift - Swift 将命令传递到 jar 文件中