Excel 不等式查找比较

标签 excel excel-formula

我有一个 Excel 文件,我希望在其中比较两列。我正在尝试创建基于条件查找的第三列。

Column1 有输入数据,Column2 有输出数据,Column3 是我希望存储查找表结果的位置。两者也都有时间。我所具备的四个条件如下:

  1. 无输入,无输出,结果为“结果一”
  2. 无输入,输出少于 5 天零 20 小时,结果为“结果二”
  3. 输入小于 24 周,输出小于 24 周,(但两者都大于 1 周)结果为“结果三”
  4. 输入不到一周,输出不到一周,结果为“结果四”

事情就是这样:

<表类=“s-表”> <标题> 第 1 列 第 2 列 第 3 列 <正文> 无输入 无输出 结果一 无输入 输出4d02h 结果二 输入23w4d 输出22w3d 结果三 输入3d01h 输入2d22h 结果四

我尝试创建一个查找表并在 Column1 和 Column2 上使用 concat 功能。这适用于“结果一”,但对于其他结果来说它们是不平等的,因此我不完全确定如何做到这一点。

最佳答案

enter image description here Excel Sheet for Inequalities Lookup Comparison

对于第 1 列

Column1/Week = IFERROR(RIGHT(LEFT(A2, SEARCH("w", A2)-1), LEN(LEFT(A2, SEARCH("w", A2)-1)) - MAX(IF(ISNUMBER(MID(LEFT(A2, SEARCH("w", A2)-1), ROW(INDIRECT("1:"&LEN(LEFT(A2, SEARCH("w", A2)-1)))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(LEFT(A2, SEARCH("w", A2)-1)))), 0)))*1, 0)
Column1/Day = IFERROR(RIGHT(LEFT(A2, SEARCH("d", A2)-1), LEN(LEFT(A2, SEARCH("d", A2)-1)) - MAX(IF(ISNUMBER(MID(LEFT(A2, SEARCH("d", A2)-1), ROW(INDIRECT("1:"&LEN(LEFT(A2, SEARCH("d", A2)-1)))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(LEFT(A2, SEARCH("d", A2)-1)))), 0)))*1, 0)
Column1/Hour = IFERROR(RIGHT(LEFT(A2, SEARCH("h", A2)-1), LEN(LEFT(A2, SEARCH("h", A2)-1)) - MAX(IF(ISNUMBER(MID(LEFT(A2, SEARCH("h", A2)-1), ROW(INDIRECT("1:"&LEN(LEFT(A2, SEARCH("h", A2)-1)))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(LEFT(A2, SEARCH("h", A2)-1)))), 0)))*1, 0)
Column1/Total Hours = D2 * 7 * 24 + E2 * 24 + F2

对于第 2 列

Column2/Week = IFERROR(RIGHT(LEFT(B2, SEARCH("w", B2)-1), LEN(LEFT(B2, SEARCH("w", B2)-1)) - MAX(IF(ISNUMBER(MID(LEFT(B2, SEARCH("w", B2)-1), ROW(INDIRECT("1:"&LEN(LEFT(B2, SEARCH("w", B2)-1)))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(LEFT(B2, SEARCH("w", B2)-1)))), 0)))*1, 0)
Column2/Day = IFERROR(RIGHT(LEFT(B2, SEARCH("d", B2)-1), LEN(LEFT(B2, SEARCH("d", B2)-1)) - MAX(IF(ISNUMBER(MID(LEFT(B2, SEARCH("d", B2)-1), ROW(INDIRECT("1:"&LEN(LEFT(B2, SEARCH("d", B2)-1)))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(LEFT(B2, SEARCH("d", B2)-1)))), 0)))*1, 0)
Column2/Hour = IFERROR(RIGHT(LEFT(B2, SEARCH("h", B2)-1), LEN(LEFT(B2, SEARCH("h", B2)-1)) - MAX(IF(ISNUMBER(MID(LEFT(B2, SEARCH("h", B2)-1), ROW(INDIRECT("1:"&LEN(LEFT(B2, SEARCH("h", B2)-1)))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(LEFT(B2, SEARCH("h", B2)-1)))), 0)))*1, 0)
Column2/Total Hours = H2 * 7 * 24 + I2 * 24 + J2

对于第 3 列

Column3 = IFS(AND(G2=0,K2=0), "Result One", AND(G2=0,K2<140), "Result Two", AND(G2>0,G2<168,K2>0,K2<168), "Result Four", AND(G2>=168,G2<4032,K2>=168,K2<4032), "Result Three", TRUE, "No Result")

关于Excel 不等式查找比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74271629/

相关文章:

excel - 源代码属性 VB_VarMemberFlags 在 VBA 中起什么作用(如果有的话)?

excel - 自动填充使用一半的核心

excel - 在两个列范围之间逐行比较

excel - 确定 VBA 范围内错误数的有效公式或代码

excel - 在 ActiveX 按钮单击上捕获工作表名称

如果公式及其范围求和的Excel问题

excel - 在不使用 VBA 或宏的情况下在 excel 中循环

excel - 下拉公式中的列

vba - 使用 worksheet.function 将工作表公式更改为 VBA 公式

java - 接收导出 XML 映射时无法从 BOOLEAN 单元格获取 NUMERIC 值