0

Excelで次のテーブルを使用しています。

エクセル画像

次の数式は、セルに直接入力すると正常に評価されます。

=DATE(YEAR(DATEVALUE($A$1)),MONTH(DATEVALUE($A$1)),DAY(INDIRECT(ADDRESS(2,COLUMN()))))

ただし、これを名前付き関数に配置して別のセルでtest呼び出そうとすると、エラーが返されます。調査の結果、私が思いついた最良の答えは、名前付きの式と関数が常に互換性があるとは限らないということです。=test#VALUE!indirect

私が間違っていること、または名前付き範囲内に呼び出しを入れることができない理由を説明するために誰かが光を当てることができれば、私はindirectそれを大いに感謝します!

4

1 に答える 1

2

はい、名前付き範囲で INDIRECT が機能するとは思いません-そのような複雑な式は本当に必要ないはずです-試してみてください

=(C$2&$A$1)+0

日付としてフォーマット

編集: 以下のコメントのとおり、INDIRECT は問題ありませんが、名前付き範囲で COLUMN() が好まれているとは思いません。ROW および COLUMN 関数は、単一の値の場合でも「配列」を返すため、動作が悪いことがあります。そのため、{2} を 2 に変換するには、MAX や SUM などの別の関数が必要です。

=DATE(YEAR(DATEVALUE($A$1)),MONTH(DATEVALUE($A$1)),DAY(INDIRECT(ADDRESS(2,MAX(COLUMN())))))

上で示したように、より短い方法があると思いますが....

于 2013-04-26T23:44:08.920 に答える