我怎样才能轻松表达一个有很多嵌套 Ifs 的公式
How can I express easily a formula that has a lot of nesting Ifs
我想表达一个公式,表示如果列中的数字是 50 到 99,则 return 50。如果 100-149,则 return 100、150-199,然后return 150 等等。对于可能达到 2000 的数字(以 50 为增量),我需要一种更简洁的方法来做到这一点。
现在我的公式是 =if(and >50 <100),50,if >100,100,true,0) 或类似的东西,我现在看不出来。
将数字除以 50,然后将其整数乘以 50:
=INT(A1/50)*50
或减去一半的数字并使用 MROUND:
=MROUND(A1-25,50)
可能有更快的方法,但我会这样做:
创建一个向下舍入到最接近的 50 的新列:
假设数字在 A 列中:
=CONCAT(FLOOR(A2,50),"-",IF(FLOOR(A2,100)-1<FLOOR(A2,50),FLOOR(A2,100)+99,FLOOR(A2,100)-1))
这将为每一行生成最接近的 50 和最接近的 100-1。此外,它允许您达到 10,000、50,000、100,000,而无需更改此公式。
唯一的事情是为任何低于 50 的数字添加另一个嵌套 if,但这取决于您。否则,50 以下的任何数字都显示为 0-99,99 以下但 50 以上的任何数字显示为 50-99。
编辑
我发现,在所有这些工作之后,您只是希望它四舍五入到最接近的 50。只需使用 =FLOOR(A2, 50)
我想表达一个公式,表示如果列中的数字是 50 到 99,则 return 50。如果 100-149,则 return 100、150-199,然后return 150 等等。对于可能达到 2000 的数字(以 50 为增量),我需要一种更简洁的方法来做到这一点。
现在我的公式是 =if(and >50 <100),50,if >100,100,true,0) 或类似的东西,我现在看不出来。
将数字除以 50,然后将其整数乘以 50:
=INT(A1/50)*50
或减去一半的数字并使用 MROUND:
=MROUND(A1-25,50)
可能有更快的方法,但我会这样做:
创建一个向下舍入到最接近的 50 的新列: 假设数字在 A 列中:
=CONCAT(FLOOR(A2,50),"-",IF(FLOOR(A2,100)-1<FLOOR(A2,50),FLOOR(A2,100)+99,FLOOR(A2,100)-1))
这将为每一行生成最接近的 50 和最接近的 100-1。此外,它允许您达到 10,000、50,000、100,000,而无需更改此公式。
唯一的事情是为任何低于 50 的数字添加另一个嵌套 if,但这取决于您。否则,50 以下的任何数字都显示为 0-99,99 以下但 50 以上的任何数字显示为 50-99。
编辑
我发现,在所有这些工作之后,您只是希望它四舍五入到最接近的 50。只需使用 =FLOOR(A2, 50)