返回列表 上一主題 發帖

[發問] IF的困擾

回復 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

回復 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

回復 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

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

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

TOP

回復 14# Bodhidharma

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

TOP

回復 13# Bodhidharma

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

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

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

回復 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

回復 9# ML089

感謝!!學到了以前所未接觸的,真太妙了!!

TOP

本帖最後由 ML089 於 2013-5-8 23:54 編輯

[條件值]        設置條件格式                                       
                                               
        顯示值        自訂格式代碼                原始值               
        2875 8965        [>99999999](0###) #### ####;#### ####                28758965               
        (021) 2345 9821        [>99999999](0###) #### ####;#### ####                2123459821               
        (0755) 2345 9821        [>99999999](0###) #### ####;#### ####                75523459821               
        99        [>100][紅色]0;[藍色]0                99               
        105        [>100][紅色]0;[藍色]0                105               
        123.40        [>100][綠色]#,##0.00;[<100][紅色]#,##0.00                123.4               
        87.00        [>100][綠色]#,##0.00;[<100][紅色]#,##0.00                87

EXCEL 表格貼上來有點亂,再補充圖形於下
使用TEXT函數格式文本時,其第二個參數的格式代碼,除了各個顏色代碼外,其他的與上表基本相同
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

        靜思自在 : 人的眼睛長在前面,只看到別人的缺點,絲毫看不到自己的缺點。
返回列表 上一主題