如何根据不同的单元格结果有条件地格式化单元格?

如何根据不同的单元格结果有条件地格式化单元格?

在此处输入图片描述

我正在制作一个电子表格,它可以读取条形码来扫描项目进出。每次扫描条形码时,我都会使用 VB 来执行此操作,因此每次扫描条形码时,它都会在一行中水平添加日期和时间,因此交替的单元格标题为“进”和“出”,然后读取时间和日期。

我想要做的是将包含条形码的单元格格式化为绿色(表示商品在内),红色(表示商品不在内)。这样在查看所有商品的表单时就可以快速参考了。

有办法吗?!我的 excel 技能不是很好,所以现在有点挣扎!

答案1

根据扫描次数明确标明“Out”或“In”的列可能会对您有所帮助。代码可以放在每行的新列中,并应让您知道此信息。请注意,我假设奇数次扫描表示“Out”状态,偶数次扫描表示“In”状态。

将其添加到新列:

=IF(MOD(COUNTA($B2:$ZZ2),2)=0,"In", "Out")

其中 B 是时间戳的第一列,ZZ 是您能想象到的最远扫描距离。

COUNTA() 计算非空白单元格的数量。MOD() 执行模数运算符,表示除法后的余数。IF() 根据测试的真或假结果设置一个值。

从那里,您可以使用条件格式根据“IN/OUT”列自身的值将其着色为适当的颜色。

如果您无法添加列因为需要更改 VBA 代码,这是不可接受的,所以您可以使用这个公式代替我下面为您的条件格式提供的公式:

=MOD(COUNTA(C1:ZZ1),2)>0

此公式将检查物品是否已出库。使用此公式检查物品是否在库中:

=MOD(COUNTA(C1:ZZ1),2)<1

我认为这是条件格式的绝佳用途!

首先选择条形码列,然后转到顶部功能区上的条件格式。

选择“新规则”

选择规则类型列表中的最后一个选项:“使用公式确定要格式化的单元格。”

在公式栏中使用此代码输入此

=ISNUMBER(FIND("Out",$A2))

其中 A2 代表 In/Out 列的位置。请注意,美元符号保留 A 列,但向下调整每行的规则。

现在选择您想要的格式(即条形码单元格的颜色背景)。

然后,当项目为“In”时,您将重复这些步骤以使用绿色背景进行格式化。

编辑:仅供参考,FIND() 函数尝试在指定位置查找给定的文本。如果它找到了您要查找的文本,则它将返回文本在字符串中开始的位置,否则将返回错误。然后我们可以使用 ISNUMBER() 来检查返回的值是否为数字,因此是否位于指定的单元格中。

相关内容