[[20180404170615]] 『ROW関数で困っています』(あず) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ROW関数で困っています』(あず)

=IF(ISREF(INDIRECT("[201804.xlsm]八田!$E6")),INDIRECT("[201804.xlsm]八田!$E6"),"")

上記の式を設定し、正しい値が返ってくることが確認できました。

この数式をオートフィルでコピーしたいと思い、

=IF(ISREF(INDIRECT("[201804.xlsm]八田!E"&ROW(E6))),INDIRECT("[201804.xlsm]八田!E"&ROW(E6)),"")

に変更したのですが、空白になってしまいます。

どこがおかしいのかお教えいただけませんでしょうか。
よろしくお願いいたします。

EXCEL2016で作成しています。
※INDIRECTを使っているのはまだ作成していないブック(201805、201806…)があるためです。

< 使用 Excel:Excel2016、使用 OS:Windows7 >


式は正しそうですけど、ブック名やシート名に書き間違いはありませんか?(存在しないブックやシートで空白になるなら、それは想定通りのはず)
(???) 2018/04/04(水) 18:01

ありがとうございます。

上記の式で返り値を確認していて、それにROW〜を足したので書き間違いは
ないと思うのです。
ROW〜を削除して参照先セルを直すとちゃんと返ってくるのです。

ただ、式をダブルクリックしてみたら
=IF(ISREF(INDIRECT("[201804.xlsm]八田!E"&ROW(E6))),INDIRECT("[201804.xlsm]八田!E"&ROW(E6)),"")の
E6が参照元ではなく参照先(でいいのでしょうか?)のE6にマークがつきました。

そもそもなのですが、
ROWのあとにもブック名シート名が必要なのでしょうか?

すみませんが引き続きよろしくお願いいたします。
(あず) 2018/04/04(水) 19:12


 >ROWのあとにもブック名シート名が必要なのでしょうか? 
 それは不要ですよ。
 どのシートでも、ROW(E6)は6に決まっていますから。

 それはいいのですが、ROW関数って、たとえ1つでも配列型なんですよ。

  つまり6じゃなく{6}。

 どこが違うんかい、と思いますが、時々それがわざわいすることがあります。

 今回の件では、当方はトラブルが再現しないのですが、
 念のため、MAX関数を使って配列型を解消してみるとどうなりますか?

 つまり
  ↓
 =IF(ISREF(INDIRECT("[201804.xlsm]八田!E"&MAX(ROW(E6)))),INDIRECT("[201804.xlsm]八田!E"&MAX(ROW(E6))),"")

(半平太) 2018/04/04(水) 20:16


 あの、失礼を承知で、念の為の確認なのですが、

 INDIRECTは存在しない参照先・定義した名前や、
 開いてないブックを参照する文字列を指定すると
 #REF!エラーを返します。

 っていう事情と、

 =ISREF(#REF!) の戻り値はFALSEです。

 っていう事情は考慮出来てますでしょうか?

 特に
 >開いてないブックを参照
 について。

 可能性排除のつもりでの確認です。
 気を悪くなさらないで下さいね^^;

(白茶) 2018/04/04(水) 20:42


半平太さま
ありがとうございます。
MAX関数やってみましたがダメでした(涙)

ROWなしではうまくいくんですよ!なのに。
「式は正そう」とお墨付きをいただいているのに
もうなんなんでしょうか…(泣)

ここに入力した数式もコピーしてきたものですし
試すことがなくなってしまってお手上げです。

私がしようとしていることは
このセルに201804ブックの八田シートE6を引っぱってきてE7E8E9…とコピーします
もし#REFになったときは空白にします
という式になってますよね?

もし良いお答えがありましたらお願いいたします。

私も引き続き頭を冷やしてトライしてみます。
(あず) 2018/04/04(水) 20:59


白茶さま(ネコちゃんですか?(笑)我が家にもおります)
ありがとうございます。

FALSEで戻るのですか!?
空白で戻るように数式ができていると思ってました(恥)

トライしているセルは存在するブックで開いているのです。
開いてなかったら「あーそうかー!」となったのですが…

ちょっと時間を置いてまたがんばります。
(あず) 2018/04/04(水) 21:04


 なぜ表示されないのかわかりませんが(拡張子は「xlsm」で合ってますよね?)
 ↓ だとどうなるんですか?

 =INDIRECT("[201804.xlsm]八田!E"&ROW(E6))

 それと、一応確認ですが ↓ ではダメなんですか?

 =IFERROR([201804.xlsm]八田!E6,"")

 以上です
(笑) 2018/04/04(水) 21:30

(笑)さま
ありがとうございます。
拡張子、確認してます。合ってます。

ご提案いただいた数式それぞれ入れてみました。

=INDIRECT("[201804.xlsm]八田!E"&ROW(E6))

#VALUEで返ってきてしまいました…
どうもROWと相性が悪いようです。

=IFERROR([201804.xlsm]八田!E6,"")
は正確に返ってきました。
コピーもOK!でした。
なのですが、
まだ作成していないブック(201805、201806…)の分も
数式を入れておきたいのです。
この数式ですとファイルを指定しろと言われてしまいました。

後出しになって申し訳ないのですが
条件付き書式の設定は何か関係ありますでしょうか?

もうあきらめて一行一行書き換えていこうかという
モードに入ってきました。

(あず) 2018/04/04(水) 23:43


 >#VALUEで返ってきてしまいました…

 #VALUEエラーですか?

 ファイル〜オプション〜詳細設定〜Lotusとの互換性の設定
「計算方式を変更する」にチェックが入っていませんか?

 >=IFERROR([201804.xlsm]八田!E6,"") 
 >この数式ですとファイルを指定しろと言われてしまいました。

 それ、無視できませんかね?

 確認だけ
(笑) 2018/04/05(木) 01:01

(笑)さま

ありがとうございます。

>「計算方式を変更する」にチェックが入っていませんか?

入ってました〜!

これがどういうものなのか検索して読んでみたのですが
理解できませんでした…(恥)

チェックが入っている状態がデフォルトなんですよね?
そこをチェックするなんて私にはとても気づけません(泣)

数式を使うならチェックをはずした状態をデフォルトと
考えた方がいいということでしょうか?

作成していた表は一行一行書き換えたので
チェックをはずしてROWが含まれた式での一連の作業は
まだしていませんがのちほどトライしてみます。

結果出ましたらご報告します。

(あず) 2018/04/05(木) 12:06


報告です。

ファイル〜オプション〜詳細設定〜Lotusとの互換性の設定 「計算方式を変更する」にチェックが入っていませんか?

チェックをはずしてROW付きの数式をいれたところ、
結果は空白でした。(本当は文字が入ってくるはず)
そして条件付き書式設定が変なことになってしまいました…

みなさま、お時間を取らせてしまって申し訳ございませんでした。

何が悪かったかわからないまま終わるのは忍びないのですが
手作業で進めました(涙)

ありがとうございました!!
(あず) 2018/04/05(木) 13:39


=INDIRECT("E"&ROW(E6),1)

=INDIRECT("E"&ROW(E6))

,1と省略.....参照形式

上記数式は,1ありで値がでました

下記数式ではエラーが返りました

ほかの関数でも ,1と省略.....参照形式が必要等ありますが

(72のおちゃん) 2018/04/05(木) 18:58


 こちらからも報告。

 ■ =INDIRECT("[201804.xlsm]八田!E"&ROW(E6))

 ↑ の式で「計算方式を変更する」にチェックを入れた場合、#VALUE!エラーになりました。
 チェックを外すとE6以下の値が正しく返りました。

 ■ =IF(ISREF(INDIRECT("[201804.xlsm]八田!E"&ROW(E6))),INDIRECT("[201804.xlsm]八田!E"&ROW(E6)),"")

 ↑ の式で「計算方式を変更する」にチェックを入れた場合、「空白」になりました。
 チェックを外すとE6以下の値が正しく返りました。

 言うまでもなく 201804.xlsm が開いていることが前提です。

 以上です
(笑) 2018/04/05(木) 19:35

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.