如何跳过空白值并根据特定值进行计算

时间:2014-04-11 06:13:44

标签: excel vba

我是这个论坛的新手,非常感谢您对我遇到麻烦的Excel表格的帮助。

我需要为以下内容创建一个VBA代码:

我需要根据Column H3中列出的以下公式和值,在Column G中计算出该条款。 Column F是值可能包含空行的列,因为我是新的,我无法发布实际工作表的图片:

=IF(F3=0;(G3*(G5-F5)/G5);IF(F3>0;(G5-F5)))

问题是Column F根据特定客户有多少发票而有空格,我需要的是一些公式或VBA代码,它们考虑了空白值。

任何帮助将不胜感激

修改1:示例数据

编辑2:代码我目前有

Sub Check() 
Dim rng1 As Range
Dim cell As Range
Dim i As Long
Set rng1 = Range("F3:F100")

For Each cell In rng1
    If cell.Value > 0 Then
        cell.Offset(0, 5).Value = cell.Offset(0, 1) - cell.Offset(0, 0)
    ElseIf cell.Value = 0 Then
        cell.Offset(0, 5).Value = ???????
    End If
Next
End Sub

在此我添加了其他内容:

Sub Check()
Dim rng1 As Range
Dim cell As Range
Dim i As Long

Set rng1 = Range("F3:F100")
For Each cell In rng1
 If cell.Value > 0 Then
    cell.Offset(0, 5).Value = cell.Offset(0, 1) - cell.Offset(0, 0)
  ElseIf cell.Value = 0 Then
    cell.Offset(0, 5).Value = `(cell.Offset(0, 1) * ((cell.Offset(2, 1) - cell.Offset(2, 0)) / cell.Offset(2, 1)))`
  End If
Next
End Sub

&#34>中显示的问题"上面没有给我正确的比率

1 个答案:

答案 0 :(得分:1)

这是我认为最好的非VBA解决方案 我把你的数据减少到一半,我得到了懒惰的打字,如下所示:

enter image description here

如您所见,我在H3中添加了一个基于您公式的公式。

=IF(F3<>"",G3-F3,G3*(INDIRECT("G$"&I3)-INDIRECT("F$"&I3))/INDIRECT("G$"&I3))

不同之处在于我使用INDIRECT动态控制FG中的参考值。

基本上,FG引用取决于I上的值。
我在I3中使用了这个公式来得到正确的行引用,分别是5,8和17。

=SMALL(IF(F3:F$17<>"",ROW(F3:F$17)),ROW(A$1))

上面是使用 Ctrl + Shift + 输入输入的Array Formula
输入正确后,它将如下所示:

enter image description here

正如我所说,我刚刚使用了部分数据。您可以调整范围大小以满足您的需求。
您可以将其转换为模板,只需复制和粘贴值即可。希望这对你有所帮助 我不是说VBA不是一个选项,但这是我能用ATM最快的。:)