ご教授お願いします。
=countif(a1:a10,"A") と いう式の、a10 の 10 の部分を b1 セルに入力してある数式から算出される数値にしたい場合、
10の部分を b1 として、& を使って式を入力すれば良いと考えるのですが、うまくいきません。
例えば、 =countif(a1:a & b1 & ","A")" などとしてもうまくいきません。
おそらく、& と "" の使い方が適切でないのだと思うのですが、いつもこのような時に苦労します。
正しい書き方を教えていただけると幸いです。
また、
& と "" の使い方 の基本的な法則など教えていただけるとありがたいです。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
=countif(indirect("A1:A"&B1),"A")
と入力します。
""は、文字列を作るときに使用します。
"A1:A10"は、単なるA1:A10とかかれた文字列になります。
この文字列をセル範囲のA1:A10に変換するには、indirectを使用します。
indirect("A1:A10")はA1:A10のセル範囲になります。
つまり
=countif(A1:A10,"A")
と
=countif(indirect("A1:A10"),"A")
は同じことになります。
更に
A1:A10の文字列は"A1:A10"でOKですが、
これは "A1:A"と"10"を結合したものになります。
文字の結合は&なので
"A1:A" & "10"でおなじことになります。
"10"はB1に格納されているので
"A1:A" & B1
になります。
従って
=countif(indirect("A1:A"&B1),"A")
になります。
10がB1に格納されていて、それを使いたい場合は
"A1:A" & B10
ズバッと回答していただきありがとうごさいました。sandpaperさんのおっしゃるとおり、まだまだ、数式というものの理解があいまいな自分に気づかされます。
No.3
- 回答日時:
セルの指定/セルの範囲指定(例えば a1:a10)は、文字列ではありませんし
文字列で指定はできません。
多分セルの指定と文字列を混同していると思います。
"xxx"は文字列であることを示します。
& は文字列を連結する時に使います。
(セルの中身との連結にも使えます。 =A1 & "個" など)
しかしセルの指定/セルの範囲指定の部分には使えません。
例えば、INDIRECT関数は、*文字列* を引数としてセルの参照を返します。
=INDIRECT("A5")
とすると、そのセルはA5の内容が表示されます。
INDIRECT関数の引数は文字列ですから
=INDIRECT(A5)
としてはいけません。
ところでご質問の件ですが、countif関数の最初の引数は文字列では指定できません。
そこで、a1:a10 の部分をOFFSET関数を使って表現するようにします。
=countif(offset(A1,0,0,B1,1),"A")
これでうまくいくと思います。
ありがとうございました。おっしゃるとおり、数式を単なる文字列と考えていたと思います。もう一度よく考えて、自分のなかですっきりと理解できるか、混乱しているあたまを整理してみたいと思います。
No.2
- 回答日時:
「A1:A10」のセル範囲をB1セルの値で可変したいのですよね。
一般的に可変したい場合には、OFFSET関数を使います。
=COUNTIF(OFFSET(A1,0,0,B1,1),"A")
OFFSET関数なら、引数に「基準、行数、列数、高さ、幅」を指定できる
ので、[基準]になるA1セルから開始して、同じ列の[高さ]であるをB1を
指定することで、セル範囲を指定できるからです。
http://www.officetanaka.net/excel/function/funct …
OFFSET関数は基準になるセル以外は数値で指定できるので、他の数式で
得た数値を使うのに便利だからですね。
&と""の組み合わせで求めるのなら、INDIRECT関数を使います。
http://www.officetanaka.net/excel/function/funct …
=INDIRECT("A"&B1)
これでA10セルなどの指定ができるようになるので、
=COUNTIF(A1:INDIRECT("A"&B1),"A")
と書くことができます。
&と""の組み合わせのままでは、参照するセルのアドレスは文字列の
ままなので、INDIRECT関数で参照ができるようにする必要があるため
ですね。
この書き方だと、A列の範囲だと判りにくいので、No.1の回答者さんが
書いているようにします。
=COUNTIF(INDIRECT("A1:A"&B1),"A")
ありがとうございました。
まだまだ力不足で「ああ、そうか」とはすぐに理解できないのですが、よくよく考えて理解できればと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Excel(エクセル) EXCEL 複数の条件に合致する個数を求めるには? 3 2022/04/19 16:39
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Excel(エクセル) Excelで数式をそのままコピーしたい どうすればいいですか? 4 2022/09/16 02:16
- Excel(エクセル) エクセル関数教えてください 3 2022/06/21 10:22
- Excel(エクセル) エクセル関数についてお教えください 3 2023/07/24 12:33
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- Excel(エクセル) Excel 関数 数式 について 2 2022/09/02 21:45
- Excel(エクセル) Microsoft Excel 入力した値に応じて別セルの塗りつぶしの色を変えたいです。 2 2022/09/18 04:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで全部の数字を3倍したい
-
エクセルVBA: 別のセルからの...
-
エクセルでの先頭文字について
-
スピンボタンのコピー
-
HYPERLINKのリンク先のセル範囲...
-
【頭の良い人へ】同セル内の文...
-
Excelで数値→文字列変換で指数...
-
テキストボックス内の文字のふ...
-
エクセルでグラフタイトルが折...
-
Excelで行ごとコピー、同じ行を...
-
エクセル
-
PDFの一部を切り取って別のシー...
-
Excelの関数について、特定の文...
-
エクセルにおける、グラフの指...
-
エクセル 入力中に表示されな...
-
エクセル 指定した文字列を含...
-
日付が1年以内になると他のセル...
-
数字がセルの左側に寄っていて...
-
塗りつぶしの色をコピーするには
-
エクセルグラフの一括設定。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの数式で教えてください。
-
スピンボタンのコピー
-
エクセルVBAを使いセルを指...
-
HYPERLINKのリンク先のセル範囲...
-
エクセルVBA: 別のセルからの...
-
エクセルで全部の数字を3倍したい
-
エクセル VBA 特定の範囲内に一...
-
セルに入力したファイル名を参...
-
データベース関数のCriteria(...
-
エクセルでの先頭文字について
-
VBAからIEを操作する時のウィ...
-
エクセルで最後に入力したセル...
-
& と "" の使い方
-
Excel関数 - 文字列のなかに6ケ...
-
エクセル 同一セル内の特定文...
-
Excelのマクロを使わず、数式内...
-
エクセルについて、a1からa10の...
-
エクセルVBA 結構初歩的なこと...
-
【エクセル2016】行数を指定し...
-
Excelで数値→文字列変換で指数...
おすすめ情報