返回列表 上一主題 發帖

[發問] INDIRECT函數不能動態參照的問題

[發問] INDIRECT函數不能動態參照的問題

本帖最後由 ziv976688 於 2020-12-16 20:47 編輯

未命名.png
2020-12-16 20:46

INDIRECT.rar (8.88 KB)
=IF(MAX((COUNTIF(OFFSET($B$1,,,,COLUMN($A:$AW)),"<>")=COUNTIF($B$1:B$1,"<>"))*$B4:$AX4)=B4,B4,"")  
想將上述陣列公式有顏色的儲存格位址以INDIRECT函數作參照,
以利公式能一式下拉達到需求結果(詳如B24:AX29的答案)。
EX︰B16
=IF(MAX((COUNTIF(OFFSET($B$1,,,,COLUMN($A:$AW)),"<>")=COUNTIF($B$1:B$1,"<>"))*INDIRECT("B"&$A16&":AX"&$A16))=INDIRECT("B"&$A16),INDIRECT("B"&$A16),"")
但因INDIRECT函數不能作動態參照,所以公式右拉填滿無效。

請問︰
B16的公式應該如何修正為宜?
謝謝!

使用Column + Char 含數搭配不就可以了?! CHAR(66)="B" ....??
新手上路,請多包涵。

TOP

回復 2# 劉大胃
謝謝指導!
有將B16公式改為
=IF(MAX((COUNTIF(OFFSET($B$1,,,,COLUMN($A:$AW)),"<>")=COUNTIF($B$1:B$1,"<>"))*INDIRECT("B"&$A16&":AX"&$A16))=INDIRECT(CHAR(64+COLUMN(B:B))&$A16),INDIRECT(CHAR(64+COLUMN(B:B))&$A16),"")
但儲存格顯示"#VALUE!"
不知哪裡錯了?
請賜正!謝謝!

TOP

Here you are ~

=IF(MAX((COUNTIF(OFFSET($B$1,,,,COLUMN($AAW)),"<>")=COUNTIF($B$1:B$1,"<>"))*INDIRECT("B"&$A16&":AX"&$A16))=INDIRECT(CHAR(64+COLUMN(B16))&$A16),INDIRECT(CHAR(64+COLUMN(B16))&$A16),"")
新手上路,請多包涵。

TOP

回復 4# 劉大胃
謝謝回覆:D
只是B16儲存格也是顯示"#VALUE!":funk:
尚請再賜正~謝謝您:lol

TOP

本帖最後由 准提部林 於 2020-12-17 19:45 編輯

陣列公式:
=IF(MAX((SUBTOTAL(3,OFFSET($B$1,,,,COLUMN($A:$AW)))=COUNTA($B$1:B$1))*OFFSET($B$1,$A16-1,,,49))=INDEX(B$1:B$13,$A16),INDEX(B$1:B$13,$A16),"")

=IF(MAX((SUBTOTAL(3,OFFSET($B$1,,,,COLUMN($A:$AW)))=COUNTA($B$1:B$1))*OFFSET($B$1,$A16-1,,,49))=OFFSET(B$1,$A16-1,),OFFSET(B$1,$A16-1,),"")

TOP

本帖最後由 ziv976688 於 2020-12-17 22:09 編輯

回復 6# 准提部林
准提版主:
貴公式測試成功~感恩^^

=IF(MAX((SUBTOTAL(3,OFFSET($B$1,,,,COLUMN($A:$AW)))=COUNTA($B$1:B$1))*OFFSET($B$1,$A16-1,,,49))=INDEX(B$1:B$13,$A16),INDEX(B$1:B$13,$A16),"")
請教貴公式中的3是代表什麼意思?
敬請賜教!謝謝您!

TOP

回復 6# 准提部林
准提版主:您好!
有上Google爬文,已瞭解3是SUBTOTAL函數的代碼之一,也知道它的作用了。
再次感謝您的熱心指導和幫忙

TOP

本帖最後由 ziv976688 於 2020-12-18 07:50 編輯

回復 4# 劉大胃
劉大大:您好!
雖然本發問題已解決,但還是想研習您的解題公式。
敬請指教!謝謝您

以B16
=INDIRECT(CHAR(64+COLUMN(B:B))&$A16)

=INDIRECT(CHAR(64+COLUMN(B16))&$A16)
測試後的結果:B16的答案都是=58,答案正確

但整段陣列公式的B16(按F9檢視INDIRECT(CHAR(64+COLUMN(B16))&$A16),編輯列顯示{58}~正確);
但整段陣列公式的B16答案卻顯示"#VALUE!"(公式中某值資料類型錯誤)
再按F9檢視公式其它的各片段,找了許久還是不知公式中有哪一個是錯誤值

TOP

回復 9# ziv976688
Hello, ziv976688

沒注意到你是陣列的公式, 剛看了一下, 前後二個公式, 各自用都沒問題, 但一相乘就Fail,
或許CountIF無法使用於陣列吧?
要不然準大應該不會用CountA來做.
這是我的理解.....Thanks ~

1. (COUNTIF(OFFSET($B$1,,,,COLUMN($A:$AW)),"<>")=COUNTIF($B$1:B$1,"<>"))
2. INDIRECT("B"&$A16&":AX"&$A16))
新手上路,請多包涵。

TOP

        靜思自在 : 口說一句好話,如口出蓮花;口說一句壞話如口吐毒蛇。
返回列表 上一主題