EXCEL使用ADDRESS抓取其他工作表出現#VALUE

=IF(IF(COUNTIF(IF($B$1>=2,(ADDRESS(ROW($C$2),COLUMN($C$2),,,"Sheet1")&":"&ADDRESS(ROW($C$2)+$B$1-2,COLUMN($C$2)+6))),C$2)=0,C$2=""),"",COUNTIF(IF($B$1>=2,(ADDRESS(ROW($C$2),COLUMN($C$2),,,"Sheet1")&":"&ADDRESS(ROW($C$2)+$B$1-2,COLUMN($C$2)+6))),C$2))

以上是函數全文,我擷取出問題的部份如下(由EXCEL逐步執行找出來的)

IF($B$1>=2,(ADDRESS(ROW($C$2),COLUMN($C$2),,,"Sheet1")&":"&ADDRESS(ROW($C$2)+$B$1-2,COLUMN($C$2)+6))

如果我把這段函數單獨在儲存格執行,結果應該是

Sheet1!$C$2:$I$6

但如果執行第一段,那麼就會出現#VALUE

用EXCEL逐步執行才發現他會變成

"Sheet1!$C$2:$I$6"

多了""(二個字串符號)

如果是這樣子,那當然是會變成#VALUE

因為COUNTIF是不能用字串的,

找了很多知識,但都不知如何解決,

請教各位高手,有沒有什麼方法可以解的?

感謝!點數20點!(好像最多是給20點)

PS:

主要是希望能COUNTIF(Sheet1!$C$2:$I$6,C$2)

而不是COUNTIF("Sheet1!$C$2:$I$6",C$2)

煩請火速回應MSN: slovewpan@yahoo.com.tw

謝謝!!!

Update:

如果是全部我有試過在同一個工作表也不OK,但我必須在不同工作表,所以才會搞不定

Update 2:

太棒了!不愧是高手!搞定了!^^

我還在等滿4小時才能給你點數!(YAHOO規定的,不好意思)

日後還有相關問題再向您請教~

1 Answer

Rating
  • 1 decade ago
    Favorite Answer

    圖片參考:http://l.yimg.com/f/i/tw/ugc/rte/smiley_4.gif

    ADDRESS()傳回為一字串,如要使用在函數中當作Array或Range引數,可以外搭INDIRECT()使用

    您的公式

    =IF(IF(COUNTIF(IF($B$1>=2,(ADDRESS(ROW($C$2),COLUMN($C$2),,,"Sheet1")&":"&ADDRESS(ROW($C$2)+$B$1-2,COLUMN($C$2)+6))),C$2)=0,C$2=""),"",COUNTIF(IF($B$1>=2,(ADDRESS(ROW($C$2),COLUMN($C$2),,,"Sheet1")&":"&ADDRESS(ROW($C$2)+$B$1-2,COLUMN($C$2)+6))),C$2))

    請修改為

    =IF(IF(COUNTIF(IF($B$1>=2,(INDIRECT(ADDRESS(ROW($C$2),COLUMN($C$2),,,"Sheet1")&":"&ADDRESS(ROW($C$2)+$B$1-2,COLUMN($C$2)+6)))),C$2)=0,C$2=""),"",COUNTIF(IF($B$1>=2,(INDIRECT(ADDRESS(ROW($C$2),COLUMN($C$2),,,"Sheet1")&":"&ADDRESS(ROW($C$2)+$B$1-2,COLUMN($C$2)+6)))),C$2))

    這樣試試~

    圖片參考:http://l.yimg.com/f/i/tw/ugc/rte/smiley_4.gif

    • Login to reply the answers
Still have questions? Get your answers by asking now.