EXCEL根据数据填入对应日期?
=INDEX($B$1:$I$1,MATCH(TRUE,SUMIF($B$1:$I$1,"<="&$B$1:$I$1,B2:I2)>$J2,0))
假设你的日期从A1开始,销售额从B1开始,数据形式为两列,你可以使用以下的函数来计算第一次累计销售额达到多少的日期:
=INDEX(A1:A31,MATCH(TRUE,SUMIF(A1:A31,"<="&A1:A31,B1:B31)>达到多少,0))
这个函数使用了SUMIF来计算累计销售额,并使用MATCH来找到第一个累计销售额大于等于多少的日期。其中,A1:A31是日期所在的列,B1:B31是销售额所在的列,达到是你想要累计达到的销售额,本案例中表示你的材料库存
请注意,这个函数是一个数组函数,需要按Ctrl+Shift+Enter来输入,而不是普通的Enter。
你好,想请教一下里边的公式的详解是什么呀?不是很明白。谢谢
SUMIF($B$1:$N$1,"<="&$B$1:$N$1,B3:N3)
这部分 SUMIF 函数的作用是计算给定区域中所有小于或等于当前单元格的值的和。它的具体参数如下:
第一个参数 $B$1:$I$1 表示要进行求和的数据区域,即第一行中从 B 列到 I 列的所有单元格。
第二个参数 "<="&$B$1:$I$1 表示要匹配的条件,它是一个字符串,由“<=”和单元格区域中的所有值组成。例如,假设 B1 的值为 1,C1 的值为 2,那么 "<="&$B$1:$I$1 的结果将是字符串数组 {"<=1", "<=2", ..., "<=9"}。
第三个参数 B2:I2 表示要进行求和的值区域,即指定行中从 B 列到 I 列的所有单元格。
首先将 "<="&$B$1:$I$1 中的字符串与当前单元格中的值进行比较,判断是否满足小于或等于的条件。
如果满足条件,则将当前单元格的值添加到求和结果中;否则,忽略当前单元格。
根据以上参数,SUMIF 函数将对每个单元格执行以下步骤:
最终,SUMIF 函数将返回 B2:I2 区域中满足条件的单元格的值之和。这个值将被 MATCH 函数用于查找第一个满足给定条件的单元格。
在 Microsoft Excel 中,您可以使用公式或 VBA 代码来根据数据填入对应的日期。
公式法:使用日期函数 DATE 和提取函数 YEAR、MONTH 和 DAY 可以实现此目的。语法为:=DATE(YEAR(A1), MONTH(A1), DAY(A1)),其中 A1 为您希望提取的数据所在的单元格。
VBA 代码法:您可以创建宏代码来实现此目的。请按以下步骤操作:
a. 按 ALT + F11 键打开 Visual Basic 编辑器。
b. 在 “Microsoft Excel Objects” 下面选择您希望添加代码的工作簿,然后单击右键,选择 “Insert” > “Module”。
c. 在代码窗口中粘贴以下代码:VBnet网络Copy codeFunction FillDate(date_value As Date) As Date
FillDate = date_valueEnd Function
SCSSCopy coded. 按 ALT + Q 键返回工作簿,然后在需要填入日期的单元格中输入以下公式:=FillDate(A1),其中 A1 为您希望提取的数据所在的单元格。
这两种方法都可以帮助您根据数据填入对应的日期,请根据自己的需求选择合适的方法。
=IF(A1-A2<0,TODAY(),"")
其中A1是当天的材料数量,A2是前一天的材料数量。如果A1-A2小于零,则表示材料不足,此时单元格将显示当前日期。您可以在其他单元格中复制此公式,以适应每天的数据。
注意:您需要使用绝对引用(例如$A$1)来引用单元格,以防止公式在复制时发生错误。
没解决,可能我表达不清楚吧,前边日期下边的是当天需要的材料。而后边的是库存。现在想要的是,库存材料到哪一天就缺料,然后对应的日期填写在黄色位置。现在黄色位置是我手动写的,我想要公式函数