遍历列中的所有单元,而不是单独检查所有单元

时间:2019-07-04 09:24:52

标签: if-statement google-sheets google-sheets-formula gs-vlookup

我在Google Spreadsheet中有一个带有标签和值的简单列表。下面,我在写标签时希望在其中获取值。

enter image description here

例如,如果我在一个单元格中写入D,我希望下一个单元格显示4,该值对应于D

这当然可以用IFIFIF内的B8内重复的=IF(A8=A1;B1; IF(A8=A2;B2; IF(A8=A3;B3; IF(A8=A4;B4; IF(A8=A5;B5;0))))) 来完成,如下所示:

IF

这只是逐行检查:如果写入的值与第1行的标签匹配,则显示该值。如果不是,则在第二行执行新的IF命令。等等

对于许多行来说,这是非常乏味的。 是否可以在Google Spreadsheets中对此进行简化?例如,我可以通过执行A1:A5或类似的方式以某种方式在一个=IF(A8=A1:A5;B1:B5;0) 语句中收集列中的所有单元格吗?类似于:

class HumanProxyModel(QtCore.QSortFilterProxyModel):
    # ...
    @property
    def filters(self):
        if not hasattr(self, "_filters"):
            self._filters = []
        return self._filters

    @filters.setter
    def filters(self, filters):
        self._filters = filters
        self.invalidateFilter()

    def filterAcceptsRow(self, sourceRow, sourceParent):
        for i, text in self.filters:
            if 0 <= i < self.columnCount():
                ix = self.sourceModel().index(sourceRow, i, sourceParent)
                data = ix.data()
                if text not in data:
                    return False
        return True

# ...

class winMain(QtWidgets.QMainWindow):
    # ...
    def handleFilterActivated(self):
        header = self.treeView.header()
        filters = []
        for i in range(header.count()):
            text = header.filterText(i)
            if text:
                filters.append((i, text))
        proxy = self.treeView.model()
        proxy.filters = filters

1 个答案:

答案 0 :(得分:1)

使用简单的VLOOKUP解决此问题:

=VLOOKUP(A8, A1:B5, 2, 0)

0