我正在寻找一个简单的Excel VBA或公式,可以将Excel中的整行转换为存储为文本'的数字。为vlookup原因的实际数字。
有人能指出我正确的方向吗?
答案 0 :(得分:2)
您应该使用INDEX(MATCH)
代替VLOOKUP
,因为VLOOKUP
会以不可预测的方式运行,从而导致错误,例如您可能遇到的错误。
INDEX ( <return array> , MATCH ( <lookup value> , <lookup array> , 0) )
使用0
作为MATCH
的最后一个参数意味着匹配必须准确
Here是关于INDEX(MATCH)
- ing
添加零+0
将值转换为数字
这可以(危险地)扩展IFERROR()
以将非数字文本转换为零:
=A2+0
=IFERROR(A2+0,0)
对于反向,您可以安排空字符串&""
以强制该值为字符串。
如果0
未用作MATCH
的最后一个参数,它会发现各种意外的“匹配”......更糟糕的是,即使完全匹配,它也可能找到不同的值本。
通常需要做一些额外的工作来确定MATCH
查找列中是否存在重复项,否则将返回找到的第一个值(参见示例)。
MATCH
的帮助来自here,特别是第三个参数控制的匹配逻辑。
答案 1 :(得分:0)
我确实找到了这个,但是有没有人也有公式?
Sub macro()
Range("F:F").Select 'specify the range which suits your purpose
With Selection
Selection.NumberFormat = "General"
.Value = .Value
End With
End Sub
答案 2 :(得分:0)
试试这个:
Sub ConvertToNumber()
Application.ScreenUpdating = False
Dim cl As Range
For Each cl In Selection.Cells
cl.Value = CInt(cl.Value)
Next cl
Application.ScreenUpdating = True
End Sub
要使用它,只需用鼠标选择相关的单元格块,然后运行宏(Alt + F8调出对话框)。它将遍历所选范围内的每个单元格,并将其保存的任何值转换为数字。
答案 3 :(得分:0)
我编写了一个自定义的vlookup函数,它不关心数据格式。将它放入VBA中的模块并使用= VLOOK而不是= VLOOKUP
Public Function VLook(sValue As String, rDest As Range, iColNo As Integer)
' custom vlookup that's insensitive to data formats
Dim iLastRow As Long
Dim wsDest As Worksheet
Set wsDest = Sheets(rDest.Parent.Name)
iLastRow = wsDest.Range(wsDest.Cells(100000, rDest.Column).Address).End(xlUp).Row
If iLastRow < rDest.Row + rDest.Rows.Count Then
For X = rDest.Column To rDest.Column + rDest.Columns.Count
If wsDest.Cells(100000, X).End(xlUp).Row > iLastRow Then iLastRow = wsDest.Cells(100000, X).End(xlUp).Row
Next X
End If
sValue = UCase(Application.Clean(Trim(sValue)))
For X = rDest.Row To iLastRow
If UCase(Application.Clean(Trim(wsDest.Cells(X, rDest.Column)))) = sValue Then
VLookDM = wsDest.Cells(X, rDest.Column + iColNo - 1)
Exit For
End If
Next X
End Function
答案 4 :(得分:0)
我能想到的最简单的方法是使用内置函数= VALUE(TEXT_TO_CONVERT_TO_STRING)。
答案 5 :(得分:0)
如果在vlookup或索引/匹配行之前添加它,这应该可以工作:
{
_id: "$firebaseUserId",
owner_id: {
$first: "$owner_id"
},
testinnn: {
$first: "$testinnn"
}
}