Board logo

標題: [發問] INDIRECT函數不能動態參照的問題 [打印本頁]

作者: ziv976688    時間: 2020-12-16 20:46     標題: INDIRECT函數不能動態參照的問題

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

[attach]32821[/attach]
[attach]32822[/attach]
=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的公式應該如何修正為宜?
謝謝!

作者: 劉大胃    時間: 2020-12-17 13:48

使用Column + Char 含數搭配不就可以了?! CHAR(66)="B" ....??
作者: ziv976688    時間: 2020-12-17 15:51

回復 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!"
不知哪裡錯了?
請賜正!謝謝!
作者: 劉大胃    時間: 2020-12-17 16:32

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),"")
作者: ziv976688    時間: 2020-12-17 17:17

回復 4# 劉大胃
謝謝回覆:D
只是B16儲存格也是顯示"#VALUE!":funk:
尚請再賜正~謝謝您:lol
作者: 准提部林    時間: 2020-12-17 19:44

本帖最後由 准提部林 於 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,),"")
作者: ziv976688    時間: 2020-12-17 22:07

本帖最後由 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是代表什麼意思?
敬請賜教!謝謝您!
作者: ziv976688    時間: 2020-12-18 07:00

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

本帖最後由 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檢視公式其它的各片段,找了許久還是不知公式中有哪一個是錯誤值
作者: 劉大胃    時間: 2020-12-18 15:26

回復 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))
作者: ziv976688    時間: 2020-12-18 16:16

回復 10# 劉大胃
劉大大:您好!
謝謝您的耐心說明。
瞭解了~感恩




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)