如何从列表中检索值并使用excel在矩阵中更新

时间:2016-02-22 17:13:12

标签: excel matrix

我在excel中开发了植被模型,需要添加放牧功能。

我有几个矩阵可以完成植被成分的所有计算,现在我有一个步骤列表(访问的随机单元格,2500个中的750个)以及从该特定单元格中获取了多少生物量。

我需要再次将该列表中的每个单元格值更新为矩阵格式,以计算剩余的生物量。我尝试了几种" index"的组合。和#34;匹配"和查找,但无法使其工作。

我甚至编号所有2500个单元格,使其更简单,而不是使用行和列引用。任何线索? (将是使用函数Index从矩阵中检索值的oposit)

3 个答案:

答案 0 :(得分:0)

我认为我认为适合你的东西。我创建了3个工作表。它们被命名为VegMatrix,VisitedCells和VegMatrixNew。

VegMatrix是起始矩阵,我认为它是50 x 50,A1中的第一个数据单元。这是部分图片:

OJO

下一张是CellsVisited。它有行,小块和从细胞中移除的植物的数量。

VegMatrix

第三张名为VegMatrixNew。这是移除后原始矩阵的样子。

CellsVisited

这是使用这些VBA宏完成的:它们将起始的VegMatrix数据复制到VegMatrixNew表。然后它将遍历CellsVisited工作表中的行,并获取每个单元格的行,列和数量。从VegMatrixNew中的相应单元格中减去去除的数量。

Sub VegRemove()

    Dim Wbk As Workbook

    Set Wbk = ActiveWorkbook

    Dim row As Integer
    Dim col As Integer
    Dim vegRemoved As Integer

    Dim numRows As Integer
    CopySheet

    Worksheets("VisitedCells").Activate
    numRows = Wbk.Worksheets("VisitedCells").Range("A2", Range("A2").End(xlDown)).Rows.Count


    For x = 2 To numRows + 1 'start at 2 because of header.

        row = Worksheets("VisitedCells").Cells(x, 1).Value
        col = Worksheets("VisitedCells").Cells(x, 2).Value
        vegRemoved = Worksheets("VisitedCells").Cells(x, 3).Value

        Worksheets("VegMatrixNew").Cells(row, col).Value = Worksheets("VegMatrix").Cells(row, col).Value - vegRemoved

    Next x

End Sub
Sub CopySheet()

    Sheets("VegMatrix").Select
    Cells.Select
    Selection.Copy
    Sheets("VegMatrixNew").Select
    Range("A1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("A1").Select

End Sub

答案 1 :(得分:0)

我刚刚找到了一个更简单的方法:

我构建了一个带有单元格引用的矩阵(对应于原始的植被矩阵)

Harvested and corresponding reference table

然后我随机生成从每个细胞收获的量。 “参考”使用“索引”功能搜索X(行)和Y(列)的值,并为这些特定坐标给出“单元名称”。

Reference matrix

在另一个矩阵上,我有一个if.error函数,后跟一个值查找

  

= IFERROR(VLOOKUP(“参考矩阵”,“参考 - >收获金额”,2,FALSE),0)

现在我可以使用这个lates表从原始植被矩阵中减去。

(抱歉,我无法更清楚地说明这一点,但这样可以阻止我嵌入表格和发布两个以上的图片链接。)

答案 2 :(得分:0)

这是我之前无法发布的最后一张表:

Updated harvested matrix

" IFERROR"地方" 0"没有来自收获清单的信息(未收获的细胞)