返回列表 上一主題 發帖

[發問] IF的困擾

回復 1# PJChen
回復 2# p212

隨著每天心情不同,看法也會不同

上次用 TEXT ,現在看起來覺的用得不好,這是純數學比較問題卻用過濾方法來處理,數字轉文字再轉數字多少有精度問題,速度也影響很大

題目是 計算值大於5就取5,用 MIN(5,計算值) 簡單的數學比較就能處理。

原式
Q1249
=IF(IF(AND(N1249<N1250,N1250>0),5/N1250*N1249,5/N1248*N1249)>5,5,IF(AND(N1249<N1250,N1250>0),5/N1250*N1249,5/N1248*N1249))

用MIN()就能縮減
=MIN(5,IF(AND(N1249<N1250,N1250>0),5/N1250*N1249,5/N1248*N1249))

計算式結構修改也能簡短
=MIN(5,5/IF(AND(N1249<N1250,N1250>0),N1248,N1248)*N1249)
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 12# ML089

嗯,用min是個好方法!

是說我最近也遇到類似的問題:
if(一長串算式=0,"",一長串算式)
或是
if((一長串算式=0)+(一長串算式>另一長串算式),"",一長串算式)
這個除了用定義名稱外,有省略的寫法嗎?

note:
一長串算式:INDEX('1020514全名冊'!A:A,MATCH(ROUNDUP((ROW()-2)/31,0)*3-2,'1020514全名冊'!A:A,0)+MOD(ROW()-3,31))
另一長串算式:ROUNDUP((ROW()-2)/31,0)*3

TOP

回復 13# Bodhidharma

if(一長串算式=0,"",一長串算式)
或是
if((一長串算式=0)+(一長串算式>另一長串算式),"",一長串算式)

稍微研究了一下,似乎可以用
text(一長串算式,"[=0] ")
以及
text(一長串算式,"[=0] ;[>另一長串算式] "
的方式處理,不過這理的空格是" ",與""有一點差距
請問text要如何回傳""呢?

TOP

回復 14# Bodhidharma

text的format_text語法似乎很好用,不過找不到教學文件…
text(value,[條件一]格式一;[條件二]格式二...)
似乎是用select case的邏輯在進行的,當符合第n個條件時,就用該格式,然後就跳出此函數
想請教如果要同時符合兩個條件,要如何設定?(用[條件一][條件二]似乎不行…)

TOP

回復 14# Bodhidharma
>if(一長串算式=0,"",一長串算式)
>或是
>if((一長串算式=0)+(一長串算式>另一長串算式),"",一長串算式)
>
>稍微研究了一下,似乎可以用
>text(一長串算式,"[=0] ")
>以及
>text(一長串算式,"[=0] ;[>另一長串算式] "
>的方式處理,不過這理的空格是" ",與""有一點差距
>請問text要如何回傳""呢?

可以用 TEXT(一長串算式,"[<>];;;")
0 回傳為 "",其他依原值回傳,數字仍為 文字格式,使用上仍需注意
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 15# Bodhidharma
>text的format_text語法似乎很好用,不過找不到教學文件…
>text(value,[條件一]格式一;[條件二]格式二...)
>似乎是用select case的邏輯在進行的,當符合第n個條件時,就用該格式,然後就跳出此函數
>想請教如果要同時符合兩個條件,要如何設定?(用[條件一][條件二]似乎不行…)

TEXT 條件只能設定3個,2個可以指定,其他就是第3個
例如
=TEXT(A1,"[>10]!A;[>5]!B;!C")
大於10顯示為 "A"
5 - 10顯示為 "B"
其他顯示 "C"
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 17# ML089

我原想將新學到的式子套進Q2當中,但公式中太多if,就套不出來了,不知以下公式出現很多if時,是否可用其 他函數?

Q2=IF($G2="","",ROUND(IF(IF(E2=0,0,IF(F2<=$AA$2,5/$Z$2*N2,IF(AND(F2>$AA$2,N1=0,N2>$X$2,N2<N3,N3>0),5/N3*N2,IF(AND(F2>$AA$2,N1>0,N2>$X$2,N2>N3,N3=0),5/N1*N2,5))))>5,5,IF(E2=0,0,IF(F2<=$AA$2,5/$Z$2*N2,IF(AND(F2>$AA$2,N1=0,N2>$X$2,N2<N3,N3>0),5/N3*N2,IF(AND(F2>$AA$2,N1>0,N2>$X$2,N2>N3,N3=0),5/N1*N2,5))))),3))

IF_3.zip (13.06 KB)

TOP

回復 18# PJChen
  1. =IF($G2="","",ROUND(MIN(5,IF(E2=0,0,IF(F2<=$AA$2,5/$Z$2*N2,IF(AND(F2>$AA$2,N1=0,N2>$X$2,N2<N3,N3>0),5/N3*N2,IF(AND(F2>$AA$2,N1>0,N2>$X$2,N2>N3,N3=0),5/N1*N2,5))))),3))
複製代碼
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 19# ML089

新的式子確實比原式簡短,函數說明中只標示了:MIN(number1, [number2], ...),
不知在新的式子中,min的用法解釋為何?
有無比較簡易的參考例子可幫忙我了解?
Tks.

TOP

回復 19# ML089

min + if 的用法,以下是我自己的理解,錯了請指正.. TKS.

...MIN(5,IF(E2=0,0,IF(..,IF(..,IF(..))))),3))
解: 最小為5,否則 IF(E2=0,0,IF(..,IF(..,IF(..))))

TOP

        靜思自在 : 修行要繫緣修心,藉事練心,隨處養心。
返回列表 上一主題