我有一本Excel工作簿,其值从F13到F40,这些值会更改我们执行的每个Powershell作业。
我需要找到F13-F40范围内的前3个值,并且需要获取这三个值中每个值的行号 到目前为止,我可以在Powershell中使用此代码获得3个值
$EXCEL = New-Object -ComObject Excel.Application
$EXCEL.visible = $false
$basefinalwb = $EXCEL.workbooks.open("C:\relax\Book1.xlsx")
$basefinalws = $basefinalwb.worksheets.Item("Current Results")
$MAX1 = $basefinalws.cells.item(1,1).Formula = "=LARGE(F13:F40, 1)"
$MAX2 = $basefinalws.cells.item(2,1).Formula = "=LARGE(F13:F40, 2)"
$MAX3 = $basefinalws.cells.item(3,1).Formula = "=LARGE(F13:F40, 3)"
$MAX11 = $basefinalws.cells.item(1,1).value2
$MAX21 = $basefinalws.cells.item(2,1).value2
$MAX31 = $basefinalws.cells.item(3,1).value2
Write-host Max11 is $max11
Write-host Max21 is $max21
Write-host Max31 is $max31
The Results are this:
Max11 is 0.112570356472795
Max21 is 0.097560975609756
Max31 is 0.0881801125703564
现在我需要弄清楚这些值中的每一个来自哪个行
所以我尝试了这段代码,它返回空白
$Cell2 = $basefinalws.range("F1","F40").find("$MAX21")
$Cell2.Value2
$Cell2.Row
$Cell2
在测试中,我什至拉出了数值的来源单元格上的值,并且它们匹配..我只是无法弄清楚为什么“查找”不起作用。
现在我唯一能想到的是F列中的所有值都来自公式=(D13-C13)/ C13,但是上面的代码确实抓住了单元格的值,只是不能-找到它,以便我可以获取行号
如果有人知道我要去哪里错了,可以寻求帮助或完成任务的简便方法吗?
谢谢!
答案 0 :(得分:0)
由于您已经使用LARGE
公式找到了3个最高值,因此使用Find
,ROW
和{{1} }工作表上其他地方的公式...类似的东西(已通过INDEX
中的公式MATCH
进行了测试。
=(D13-C13)/C13