gpt4 book ai didi

excel - 如何在 Excel 中使用公式或 VBA 获取具有两个条件的范围的不同值?

转载 作者:行者123 更新时间:2023-12-04 22:22:25 25 4
gpt4 key购买 nike

我有一列大约有 16k 行,其中包含重复日期,应该在其中搜索一周之间的唯一日期计数。这里SHEET WMR in the code是唯一计数应存储在第 DAYS #8 行中的工作表,其上方是应用作条件的日期。我已经尝试过 Sum/countifs 数组公式,但我得到了 0 错误的除法。然后我尝试了这个循环

Dim WMR, MHR, P, D As Worksheet

Set WMR = Sheets("WMREP")
Set MHR = Sheets("MACH-HRS")
Set P = Sheets("PRODUCTION")
Set D = Sheets("DELAYS")

Dim last_row, last_row1, last_row2 As Long
last_row = MHR.Cells(Rows.Count, 1).End(xlUp).Row
last_row1 = P.Cells(Rows.Count, 1).End(xlUp).Row
last_row2 = D.Cells(Rows.Count, 1).End(xlUp).Row
counter = 1

For x = 8 To 11
For y = 3 To last_row1
If P.Cells(y, 1) >= WMR.Cells(7, x - 1) And P.Cells(y, 1) < WMR.Cells(7, x) Then
If P.Cells(y, 1) <> P.Cells(y - 1, 1) Then
counter = counter + 1
End If
End If
Next y
WMR.Cells(8, x) = counter
counter = 0
Next x

但它返回的值超过 7,这是不对的。我被这个困住了。公式或 VBA 解决方案将不胜感激。

Sheet P in the code

最佳答案

好吧,如果您可以访问 DA 功能,那将相当容易:

=COUNT(UNIQUE(FILTER(Sheet2!$A2:$A16000,Sheet2!$A2:$A16000>G7-1,Sheet2!$A2:$A16000<G7+7)))

但无法访问这些,您可以尝试:
=SUM(--(FREQUENCY(IF((Sheet2!$A2:$A16000>G7-1)*(Sheet2!$A2:$A16000<G7+7),Sheet2!$A2:$A16000),Sheet2!$A2:$A16000)>0))

注:第二个选项需要通过 CtrlShiftEnter 来确认。两个选项都可以放入 G7在 Sheet1 上并向右拖动。

知道,如果需要,您还可以对 A 列进行动态引用,这样您就不必对行进行硬编码。

关于excel - 如何在 Excel 中使用公式或 VBA 获取具有两个条件的范围的不同值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61478909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com