[[20250503195242]] 『INDIRECT関数で取得したセルの値を、範囲指定に使』(マナブ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『INDIRECT関数で取得したセルの値を、範囲指定に使うことはできますか』(マナブ)

=(管理!A1:C1000)
この数式の"1000"の部分にINDIRECT関数で取得したセルの値(最終行を取得しています)を入れ込むにはどうしたらいいのでしょうか。

< 使用 Excel:Excel2019、使用 OS:Windows11 >


 一例を示します。

 B1セルに
 =COUNTA(管理!C:C)
 A1セルに
 =SUM(INDIRECT("管理!A1:C"&B1))
 とすると、
 管理シートのA1〜C列最終行までの合計がA1に求められます。
 なお、C列には空白ではないセルがC1から連続している前提です。
(xyz) 2025/05/03(土) 20:48:52

 INDIRECT関数はOffice Tanakaさんの動画がおすすめです。
 ざっくり言うと「文字列を&で無理やり生成してその先を参照する」です
 https://youtu.be/31oTg-2QwTc?si=qLYYAMFp-uR8Z5a-
(TKG) 2025/05/04(日) 02:17:05

xyzさん
教えていただいた数式だと、0になってしまうのですがなぜでしょうか。
(マナブ) 2025/05/04(日) 08:50:00

TKGさん
すみません、動画を見たのですがよくわかりませんでした。
具体的な数式を教えていただくことはできますでしょうか。
(マナブ) 2025/05/04(日) 08:57:43

 私の手元では0になりません。数値が返ります。

 ・B1の数値はいくつになりますか?
 ・合計の対象となるセル範囲には数値が入っていますか?
 ・INDIRECTを使わずに単純にSUM式を書いたらいくつになりますか?
 確認して3つともぞれぞれを回答して下さい。
(xyz) 2025/05/04(日) 13:14:03

COUNTA は、文字列含む数をカウントします
それに引き換えSUM関数は文字列は対象外
その差では
count(a1:c5)とかにすれば数値だけカウントします
まあ、データとやらがどうなっているのかわからんけど
(対象外) 2025/05/04(日) 14:49:28

ああ、こんな感じになってると0ですな
  A 
1
2
3 10
4
5 10

=count(A1:A5)  2
=SUM(INDIRECT("A1:A" & count(A1:A5)))

(対象外) 2025/05/04(日) 14:59:23


 # > ああ、こんな感じになってると0ですな
 # 確かにそうですね。
 # 
 # でも私は、
 # > なお、C列には空白ではないセルがC1から連続している前提です。
 # と書いています。私の書いたものとはまた別の話ですね。(その積りのコメントでしょうけど)

 (1)
 そういう話じゃなくて、たぶん、こういうストーリーじゃないですか?
 =(管理!A1:C1000)
 と自シートのA1に書いて、3000セルを自動展開できると思っていたのでしょう。
 その上で、1000を可変にしたいと。

 しかし、Excel365と違って、Excel2019にはスピル機能はありません。
 =INDIRECT("管理!A1:C" & D1)   
            (D1セルに最終行を求める式。)
 などと、自シートのA1に書いたとしても、単に管理!A1が自シートのA1に表示されただけでしょう。
 (そこは多分空白セルだったので、 0 になったのでしょう。)

 どういうことかと言うと、
 Excel2019では、展開されるべき想定範囲全体に式を書かないといけないので(配列数式にするとしても)
 1000を可変にして、「自動で展開されるセルの範囲を可変にすること」はもともとできない話なのです。

 (2)
 なお、INDIRECTに関する動画を見てもわからないということなら、
 どんな説明をしても余り効果はないのかもしれません。
 というよりも、INDIRECTとは別のところで道を間違えている可能性があります。

 # 最初に、されたいことを確認すべきだったとも言えますが、
 # ひとつの値を返す話と、こちらが勝手に当然の前提としていたことが
 # 違っていたのではないかと疑っています。

(xyz) 2025/05/05(月) 21:19:23


コメント返信:

[ 一覧(最新更新順) ]


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