如果在当前公式中添加了其他if语句,则Excel公式无法正常运行

时间:2019-03-17 16:29:36

标签: excel excel-formula

我无法在excel公式中再添加一个条件。当前的公式效果很好,但是再添加一个条件会得出错误的数据。

当前公式

def __getitem__(self, int idx):
    if idx>=self.nbars:
        raise IndexError("Helpful error message about index being out of range")
    result = dict(name=self.array[idx].name)
    if self.array[idx].type == FOO_BOOL:
        result['flag'] = bool(self.array[idx].data.flag)
    elif self.array[idx].type == FOO_BYTE:
        result['byte'] = self.array[idx].data.byte
    elif self.array[idx].type == FOO_BOOL:
        result['string'] = self.array[idx].data.string
    else: 
        raise ValueError("Some helpful message?")
    return result

def __setattr__(self,int idx, value):
    cdef bar_t value_c
    if idx>=self.nbars:
        raise IndexError("")
    value_c.name = value['name'] # you might need to do a string copy here
                       # and you definitely want to check the length
    if 'flag' in value:
        value_c.data.bool = 1 if value['flag'] else 0
        value_c.type = FOO_BOOL
    elif 'byte' in value:
        value_c.data.byte = value['byte']
        value_c.type = FOO_BYTE
    elif 'string' in value:
        # Allocate memory for and copy the string
        value_c.type = FOO_STRING
    else:
        raise ValueError("...")

    # Deallocate any data held by existing self.array[idx]!
    self.array[idx] = value_c

结果显示在D14单元格中。从上面的公式获得结果后,我需要检查结果。 如果结果低于0.5,我应该打印0.5。我可以得到前。 -2.4,则结果应为0.5。

任何想法都会有所帮助。

1 个答案:

答案 0 :(得分:0)

如果您只想打印小于0.5的值,则可以使用MAX函数,该函数取0.5到D14之间的较大值。

=MAX(0.5,D14)