Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 公式来查找日期范围之间的值,然后使用它旁边的数字_Excel_Excel Formula - Fatal编程技术网

Excel 公式来查找日期范围之间的值,然后使用它旁边的数字

Excel 公式来查找日期范围之间的值,然后使用它旁边的数字,excel,excel-formula,Excel,Excel Formula,我已经为我的办公室工作准备了一份工作表。我还开发了将在其中使用的公式。但是,公式很长,我想缩短 下面是公式的细节 =IF( AND( [Date]>=DATE(2014,7,1), [Date]<=DATE(2014,7,31), [Description]="Diesel Oil"), [Value Ex. Sales Tax]*'Tax Status'!$B$3, IF( AND( [Date]>=DATE(2014,

我已经为我的办公室工作准备了一份工作表。我还开发了将在其中使用的公式。但是,公式很长,我想缩短

下面是公式的细节

=IF(
  AND(
    [Date]>=DATE(2014,7,1),
    [Date]<=DATE(2014,7,31),
    [Description]="Diesel Oil"),
  [Value Ex. Sales Tax]*'Tax Status'!$B$3,
  IF(
    AND(
      [Date]>=DATE(2014,8,1),
      [Date]<=DATE(2014,8,31),
      [Description]="Diesel Oil"),
    [Value Ex. Sales Tax]*'Tax Status'!$B$4,
  IF(
    AND(
      [Date]>=DATE(2014,9,1),
      [Date]<=DATE(2014,9,30),
      [Description]="Diesel Oil"),
    [Value Ex. Sales Tax]*'Tax Status'!$B$5,
  IF(
    AND(
      [Date]>=DATE(2014,10,1),
      [Date]<=DATE(2014,10,31),
      [Description]="Diesel Oil"),
    [Value Ex. Sales Tax]*'Tax Status'!$B$6,
  IF(
    AND(
      [Date]>=DATE(2014,11,1),
      [Date]<=DATE(2014,11,30),
      [Description]="Diesel Oil"),
    [Value Ex. Sales Tax]*'Tax Status'!$B$7,
  IF(
    AND(
      [Date]>=DATE(2014,12,1),
      [Date]<=DATE(2014,12,31),
      [Description]="Diesel Oil"),
    [Value Ex. Sales Tax]*'Tax Status'!$B$8,
  IF(
    AND(
      [Date]>=DATE(2015,1,1),
      [Date]<=DATE(2015,1,31),
      [Description]="Diesel Oil"),
    [Value Ex. Sales Tax]*'Tax Status'!$B$9,
  IF(
    AND(
      [Date]>=DATE(2015,2,1),
      [Date]<=DATE(2015,2,28),
      [Description]="Diesel Oil"),
    [Value Ex. Sales Tax]*'Tax Status'!$B$10,
  IF(
    AND(
      [Date]>=DATE(2015,3,1),
      [Date]<=DATE(2015,3,31),
      [Description]="Diesel Oil"),
    [Value Ex. Sales Tax]*'Tax Status'!$B$11,
  IF(
    AND(
      [Date]>=DATE(2015,4,1),
      [Date]<=DATE(2015,4,30),
      [Description]="Diesel Oil"),
    [Value Ex. Sales Tax]*'Tax Status'!$B$12,
  IF(
    AND(
      [Date]>=DATE(2015,5,1),
      [Date]<=DATE(2015,5,31),
      [Description]="Diesel Oil"),
    [Value Ex. Sales Tax]*'Tax Status'!$B$13,
  IF(
    AND(
      [Date]>=DATE(2015,6,1),
      [Date]<=DATE(2015,6,30),
      [Description]="Diesel Oil"),
    [Value Ex. Sales Tax]*'Tax Status'!$B$14,
  IF(
    AND([Description]="Furnace Oil"),
    [Value Ex. Sales Tax]*0.17,IF(AND([Description]="Lubricants"),[Value Ex. Sales Tax]*0.17,0)
  )))))))))))))

如果有任何不清楚的地方,请让我知道,以便我能说得更清楚。

假设日期的格式实际上是这样的,而不是存储为文本,这应该可以:

=IF(
    [Description] = "Diesel Oil",
    INDEX(
        TaxStatus!$B:$B,
        MATCH(
            DATE(
                YEAR(
                    [Date]
                ),
                MONTH(
                    [Date]
                ),
                1
            ),
            TaxStatus!$A:$A,
            0
        )
    ) * [ValueEx.SalesTax],
    IF(
        OR(
            [Description] = "Furnace Oil",
            [Description] = "Lubricants"
        ),
        [ValueEx.SalesTax] * 0.17,
        0
    )
)

(经过编辑,在结尾添加了最后两个标准并修复了几个错误。)

是的,这确实是一个很长的公式,请简要说明它的作用。此外,如果您可以发布示例工作簿以查看公式的工作情况,这将非常有用。这将计算每个月的税额。税率将从税表中提取。如果你认为我太粗鲁,请原谅,但是如果你只是给出“计算税额”的描述,并且只发布一个输入范围,你几乎找不到任何人分析你的数百字符长的公式。请帮助我们了解您的问题,以便能够提供帮助。如果我向您发送我的文件的图像,然后对情况进行分析,您是否有可能获得帮助。我认为,可以将其简化为
年([Date])和月([Date])
,并在
vlooop
中使用它来查找匹配的
税务状态
。此外,使用可使公式更具可读性。
=IF(
    [Description] = "Diesel Oil",
    INDEX(
        TaxStatus!$B:$B,
        MATCH(
            DATE(
                YEAR(
                    [Date]
                ),
                MONTH(
                    [Date]
                ),
                1
            ),
            TaxStatus!$A:$A,
            0
        )
    ) * [ValueEx.SalesTax],
    IF(
        OR(
            [Description] = "Furnace Oil",
            [Description] = "Lubricants"
        ),
        [ValueEx.SalesTax] * 0.17,
        0
    )
)