1

我的 Excel 电子表格中有两列我想互斥。例如 B1 公式:IF(A1 包含“是”,然后 B1 设置为“-”)以及 A1 公式:IF(B1 包含“是”,然后 A1 设置为“-”)

基本上这应该意味着当一个单元格更改为“是”时,它旁边的另一个单元格会自动更改为“-”

当我尝试在 excel 公式生成器中执行此操作时,它说我创建了一个循环公式。有谁知道我能做些什么来完成这项工作?

谢谢

4

2 回答 2

3

像这样的东西怎么样:

' On cell A1
=IF(B1="Yes","-","Yes")

' On cell B1
=IF(A1="Yes","-","Yes")

不利的一面是,在 A1 被赋予“是”或“-”值之后,它不再具有作为其值的函数。这可能不是问题 - 只需根据需要保留 B1 的功能和设置 A1(B1 将更新,因此您不需要更新它)

不完全是您的要求,但希望有一天它会对某人有所帮助!

于 2013-06-26T07:03:42.840 回答
1

这只能在 VBA 中实现。在工作表的模块中复制以下代码(例如Sheet1):

私有 mBlnIsRunning As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)

    如果 Application.Intersect(Target, Me.Range("A1:B1")) _
        什么都没有然后退出子

    '防止死循环
    If mBlnIsRunning Then Exit Sub

    mBlnIsRunning = 真

    如果 Target.Address(False, False) = "A1" 那么
        Me.Range("B1") = 负值(目标值)
    别的
        Me.Range("A1") = 负值(目标值)
    万一

    mBlnIsRunning = 假
结束子

私有函数 Negative(varValue As Variant) As Variant
    '根据你的需要改变这个功能
    如果 varValue = "yes" 那么
        负数=“-”
    ElseIf varValue = "-" 那么
        否定=“是”
    别的
        Negative = "请输入yes或-!"
    万一
结束功能
于 2013-01-20T21:57:05.677 回答