![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.2ベストアンサー
- 回答日時:
回答No.1様が回答されたもの以外の方法として、
=IF(SUMPRODUCT((A$5:INDEX(A:A,1000)=I5)*(J$5:INDEX(J:J,1000)<=K5+1))>1,"○","")
とする方法もあります。
因みに、回答No.1様が仰っておられる
>OFFSET関数なども利用
という方法は次の様なものです。
=IF(SUMPRODUCT((OFFSET(A$5,,,996)=I5)*(OFFSET(J$5,,,996)<=K5+1))>1,"○","")
尚、Excelbookの中にINDIRECT関数やOFFSET関数が使用されているセルが存在していた場合、Excelのウィンドウを閉じる際に、例え入力値を何も変更していなくとも、一々、「変更を保存しますか?」と尋ねて来るという現象が発生します。
【参考URL】
インストラクターのネタ帳 > Excel(エクセル)の関数・数式の使い方 > 変更してないのに保存確認メッセージが表示される
http://www.relief.jp/itnote/archives/001519.php
別にそのまま[保存]ボタンを押して保存すれば良いだけの話なので、大して問題視する様な話でもないのですが、人によっては、その事を煩わしく思うのか、これらの関数を使用する事を嫌う人も一部には居るようです。
遅くなりましたが、ご回答ありがとうございます。
すぐに拝見したのですが、大変助かりました。
>=IF(SUMPRODUCT((A$5:INDEX(A:A,1000)=I5)*(J$5:INDEX(J:J,1000)<=K5+1))>1,"○","")
こういった書き方があるのですね。
しかし、INDEX関数での範囲指定の仕方がよくわからなかったので、教えていただけると幸いです。
INDEXの書き方を調べてみると、「=INDEX(範囲,行位置,列位置 [,領域番号]」と書いてありました。
「A$5:INDEX(A:A,1000)=I5」とは、A列の5行目から1000行目までの間にI5があるかを調べていると思うのですが、なぜ「INDEX(A:A,1000)」でA列の1000行目までを意味することができるのでしょうか。「A:A」とは何を意味するのでしょうか。
よろしくお願いいたします。
No.5
- 回答日時:
>私の最初に組んでいた質問文にある関数と同じようには動きません
具体的な各セルの内容も,計算結果がどうちがうのかの具体的な状況もナイショのままなので,あくまで一例としてですが。計算してるセルに「空っぽのセル」が混じっていると,結果が異なるかもしれません。他の原因なのかも?しれません。例えばご相談で掲示されてる数式からして,実際のエクセルと実は違ってるのかもしれません。
何が「正しい」のかは,今のエクセルの実際のデータを精査して「どうあるべきか」ご自分で判断なさって下さい。
ご相談の内容は「行削除しても参照が修正されない」ためにはで,その回答としてINDIRECTを使いますと回答しています。
検討がめんどくさいなら,今のあなたの計算方法そのまま
IF(SUMPRODUCT((INDIRECT("A$5:A$1000")=I5)*(INDIRECT("J$5:J$1000")<=K5+1))>1,"○",""))
としてください。
余計なことを回答して混乱させたようで,ごめんなさい。
おっしゃるとおり空白セルがあったのでそれを削除して最初に書いていただいた式を入れたのですが、#VALUE!のエラーになってしまいます。
また、今回の回答で書いていただいたとおりに
=IF(SUMPRODUCT(INDIRECT("I$5:I$1000")=I5)*(INDIRECT("J$5:J$1000")<=K5+1)*(INDIRECT("K$5:K$1000")>=J5-1))>1,"○",""))
と式を入れたのですが、エラーになってしまいます。
いずれにしろ、丁寧に答えていただきありがとうございました。
No.4
- 回答日時:
>ANo2さんのご回答のように「セル:INDEX関数」方式の数式も
>>一々、「変更を保存しますか?」と尋ねて来るという現象が発生します。
>という点では同じなので、誤解無いようお願いします。
失礼致しました。
「尚、Excelbookの中にINDEX関数やOFFSET関数が使用されているセルが存在していた場合、Excelのウィンドウを閉じる際に、例え入力値を何も変更していなくとも、一々、『変更を保存しますか?』と尋ねて来るという現象が発生します。」
と書こうとした際に、「INDEX関数」と書くところを間違えて、「INDIRECT関数」と書いてしまっておりました。
尤も、INDIRECT関数の場合も同じ現象が発生する様です。
No.3
- 回答日時:
ん?
一応ご参考までに
ANo2さんのご回答のように「セル:INDEX関数」方式の数式も
>一々、「変更を保存しますか?」と尋ねて来るという現象が発生します。
という点では同じなので、誤解無いようお願いします。
#当方、他の方の回答とかやり取りに、横から口を挟むようなマネは通常はしないんですが。
ご親切に、ありがとうございます。
しかし、私のファイルではindex関数をすでに使っているのですが、そういったメッセージがでません。
出るときもあるということなのか、条件によっては出なくなるということなんでしょうか。
いずれにしろ、ありがとうございます。
No.1
- 回答日時:
>行を削除しても、範囲の参照が修正されないようにする方法はありますか?
#ご相談の作文は500とか1000とかだいぶごっちゃになってますが、そこは触れない事にして
たとえば
=IF(COUNTIFS(INDIRECT("A5:A1000"),I5,INDIRECT("J5:J1000"),"<="&(K5+1))>1,"○","")
などのように、INDIRECT関数を使って出来ます。
状況に依ってはOFFSET関数なども利用できます。
もっとも、
=IF(COUNTIFS(A:A,I5,J:J,"<="&K5+1)>1,"○","")
のようでは何故いけないのか、そもそも500行までとホントに範囲限定する必要があるのか(SUMPRODUCT関数じゃ確かに問題ありですけどね)検討してみるのも、一つの解決策です。
ありがとうございます。
>=IF(COUNTIFS(INDIRECT("A5:A1000"),I5,INDIRECT("J5:J1000"),"<="&(K5+1))>1,"○","")
などのように、INDIRECT関数を使って出来ます。
とのことですが、私の最初に組んでいた質問文にある関数と同じようには動きませんでした。
なぜでしょうか。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル 関数参照範囲のセルの表示 1 2023/03/16 14:55
- Excel(エクセル) エクセルの複写について 4 2022/04/10 01:02
- Excel(エクセル) エクセル開いたらウィンドウがでました 2 2023/03/28 16:24
- Excel(エクセル) エクセルVBA 複数行にまたがっている選択を判定するには 2 2023/05/21 21:54
- Excel(エクセル) エクセルの数式について ブック内の別シートの値の含まれたセルの個数を集計したい 全シート一覧のシート 1 2022/07/21 19:28
- Excel(エクセル) エクセルの印刷範囲をページ単位で可変にする方法 3 2022/05/23 13:04
- Excel(エクセル) エクセルで重複データを行ごとに抽出したい 4 2022/12/05 08:18
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Excel(エクセル) こんにちは。ExcelのVLOOKUP関数のことで教えてください。 2 2022/05/07 11:33
- Visual Basic(VBA) 他のシートからコピーする下記マクロで貼付け位置をWorksheets(1).Range("A3")の 8 2023/01/30 18:48
このQ&Aを見た人はこんなQ&Aも見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
エクセルの参照行の挿入による追加と行の削除に対応できる関数を教えてくだ
Excel(エクセル)
-
Excelで計算式がずれるパターンとずれないパターンを教えて下さい(絶対参照の話ではない)
Excel(エクセル)
-
エクセルで行挿入しても計算式がずれない方法
Excel(エクセル)
-
-
4
関数で行の挿入、削除で範囲がズレてしまう
Excel(エクセル)
-
5
エクセル:参照しているセルが削除されても数式の参照セル値を変えない。
Excel(エクセル)
-
6
エクセル 行の挿入すると別シートに行が挿入され、関数も自動更新される方法
Excel(エクセル)
-
7
リンク元の行を削除すると♯REF!が表示されます。
Excel(エクセル)
-
8
Excelの計算式内の文字列の一括置換は出来ますか
Excel(エクセル)
-
9
エクセル if文で偽判定のとき、何も起こらないようにしたいのですが・・・
Access(アクセス)
-
10
excelのマクロで該当処理できなければ飛ばして進むにはどうすればよいのでしょうか
Visual Basic(VBA)
-
11
エクセルの機能について 計算結果を別のセルに飛ばしたいのですが、飛ばす先のセルには計算式等は入れず
Excel(エクセル)
-
12
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
13
複数のexcelファイル 同一セルの値を一気に変更するには、
Excel(エクセル)
-
14
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
15
Excelの条件付き書式設定の太い罫線
Excel(エクセル)
-
16
含まない言い方ってどうしたらいいんでしょうか
日本語
-
17
IF関数などを使って条件に合った「行」を削除するような機能はありますでしょうか?
Excel(エクセル)
-
18
エクセルのシートを同時に行削除、行挿入させて自動連動させたい
Excel(エクセル)
-
19
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
20
Excelにメールを添付する
Yahoo!メール
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数について教えて...
-
Excelデータをコピペして、ペー...
-
Excel関数-文字列で自動作成さ...
-
スプレッドシート、Excelでの数...
-
Excelで50個のセルに同じ文字を...
-
Microsoft Officeの中古は信用...
-
スプレッドシートで使う数式を...
-
エクセルVBA、別ブックへ転記す...
-
エクセルで会社の従業員のデー...
-
エクセルで不等号記号(≠)が上に...
-
エクセルの表で1年間の曜日を...
-
A列とB列を参照してC列に連番を...
-
エクセルの空欄をつめて、次の...
-
エクセルでの特別な文字を上に...
-
エクセルでセルに標準で入力さ...
-
エクセル日付 文字列の関数がエ...
-
エクセル2013で月間勤務表から...
-
エクセルの日付を編集する
-
EXCELの質問です 119から足した...
-
【マクロ】アクティブセルにブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報