人気マンガがだれでも無料♪電子コミック読み放題!!

タイトル通りなのですが、エクセルでセルの値を数式中で範囲として使うにはどうすればよいのでしょうか?

例えばA1セルに「1」という値が入っており、B2セルに「10」という値が入っているとします。この時、数式中で、「A1」と「B2」を用いて、「E1からE10まで」を指定することは可能でしょうか。可能でしたらどのような数式を組めば良いのでしょうか? よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

(1)タイプ1


セル範囲を(見かけは文字列で)入れるタイプの関数の場合
見かけで、普通に文字列で、手作業でセルに式を入れるような番地文字列を作ります。
A1に2、B1に10が入っているとします。
例えば D5に ="A"&A1&":B"&B1
するとD5は A2:B10 となります。
関数を手から入れるときは=SUM(A2:B10) ですから
=SUM(D5) で良さそうですが、そうは行きません。
エクセルに番地として解釈してくださいよ、という意味で
=SUM(INDIRECT(D5))
とします。
これで結果11
(A2:B10に
A列  B列
51
6
しか、入っていないときの例)になります。
(2)タイプ2
結果的に範囲を対象にしますが、列や行(の隔たり)の数などを引数に、それぞれ独立して数として入れるタイプの関数の場合
例OFFSET関数
=SUM(OFFSET($A$1,1,0,9,2))

=SUM(OFFSET($A$2,0,0,B1-1,A1))
セルの値をそのまま数字として考えればよい例。
この場合数の変わりにセル番地を入れると良い。
    • good
    • 3
この回答へのお礼

丁寧にご解説、ありがとうございました。是非、今後とも参考にさせて頂きます。本当にありがとうございました。

お礼日時:2007/07/18 01:02

◆SUMで確認してください


1)OFFSET関数
=SUM(OFFSET(E1,A1-1,,B2))

2)INDEX関数
=SUM(INDEX(E:E,A1):INDEX(E:E,B2))

3)INDIRECT関数
=SUM(INDIRECT("E"&A1&":E"&B2))
    • good
    • 2
この回答へのお礼

ご回答ありがとうございました。いろいろ試してみたいと思います。

お礼日時:2007/07/18 01:03

仮にSUM関数で、質問の範囲指定方法を使うとしたら



=SUM(INDIRECT("E"&A1):INDIRECT("E"&A2))
    • good
    • 2
この回答へのお礼

素早いご回答、ありがとうございました。おかげで問題を解決することができました。感謝致します。

お礼日時:2007/07/18 01:01

#01です。

二番目の式を訂正します
=OFFSET(E1,A1-1,0,B2,1)
    • good
    • 1

例えば



=INDIRECT("E"&A1&":E"&B2)
=OFFSET(E1,A1-1,B2-1)
    • good
    • 0
この回答へのお礼

迅速なご回答ありがとうございました。早速試してみましたところ、上手くすることができました。本当にありがとうございました。

お礼日時:2007/07/18 01:00

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qセル番号を返す関数

エクセルで、セル番号を返す関数はありますか??
セルの内容ではなくて、番号です。(A1、B3など)
調べてみましたがなかなか見つからなかったので、
わかる方教えてください。
宜しくお願い致します。

Aベストアンサー

文字として"C4"を返す。
=ADDRESS(ROW(C4),COLUMN(C4),4)

式を入力したセルの位置を文字列で返す。
=ADDRESS(ROW(),COLUMN(),4)

ADDRESSの3つ目の引数を変えると
$C$4
$C4
C$4
C4
の4つの形に出来ます。

Qエクセルの関数で,たとえばB15のセルの値を返すには?

エクセルの関数の質問です。

たとえば,
A1のセルに7
A2のセルに8
が入力されているとします。

ここで,少し回りくどいのですが,
A1(の7)と,A2(の8)と,関数などを使って,
あるセルに,B15のセルの値を返したいのですが,
可能でしょうか?

間違ってますが,
=B(A1+A2)
のような式を書きたいのですが…。


あっさりと,
=B15
とすればいいのはわかっていますが,
やむえない事情がありまして…。

よろしくお願いします。

Aベストアンサー

=INDIRECT("B"&A1+A2)
で良いと思います。

QExcel関数/数式内のセル番地を別セルの値で変化させたい

Excelの関数についての質問です。

たとえばセルA11に
=sum(A2:A10)
という数式が入っているとします。
ここで、A1に入っている値が「20」であったら、この数式の内容が
=sum(A2:A20)
となるようにコントロールしたいのですが、どのように参照式を作ればよいでしょうか。
なお、実際には複数セルの数式を同時に変化させることを想定しています。ご助言いただければ幸いです。

Aベストアンサー

ごめんなさい、SUMが多かったです・・・
正しくは
=SUM(INDIRECT("A2:A"&A1))
です。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む

Qエクセルで範囲内の条件を満たす数値を返す関数を教えてください。

エクセルで範囲内の条件を満たす数値を返す関数を教えてください。

100以下なら1111
100超~200以下なら2222
200超~300以下なら3333
300超~400以下なら4444
400超~500以下なら5555
500超~600以下なら6666
600超~700以下なら7777
700超~800以下なら8888
800超~900以下なら9999
900超なら10000

上記のような条件があり、入力した数字が該当する条件の範囲内に該当している数字を抽出したいのですが、それができる関数を教えてください。

例えばA1セルに650と入力するとB1セルに上記の条件で該当する7777を表示する、
A1セルに100と入力するとB1セルに1111、
901とA1に入力するとB1に10000と表示されるなどのようにしたいのです。

IFを使った関数では7つまでしかネストできないので、上記の場合10ネストしなければならないのでIF関数が使えません(使える方法があるかもしれませんが私は知りません)。
ネストせずに「&」を使う方法も考えたのですが、それだと数値として扱われず文字として扱われてしまい表示形式を自在に編集することができなくなってしまいます。

良い解決方法を教えてください。

エクセルで範囲内の条件を満たす数値を返す関数を教えてください。

100以下なら1111
100超~200以下なら2222
200超~300以下なら3333
300超~400以下なら4444
400超~500以下なら5555
500超~600以下なら6666
600超~700以下なら7777
700超~800以下なら8888
800超~900以下なら9999
900超なら10000

上記のような条件があり、入力した数字が該当する条件の範囲内に該当している数字を抽出したいのですが、それができる関数を教えてください。

例えばA1セルに650と入力するとB1セルに上記の条件で該当する7777を...続きを読む

Aベストアンサー

お示しの条件を示す表が例えばD列からF列を使って入力されているとします。D1セルには超、E1セルには以下のように入力します。D2セルには0、E2セルには100、F2セルには1111と入力し、D3セルには100、E3セルには200、F3セルには2222のように入力します。以下同様にします。
そこでA1セルに数値を650のように入力したときに該当のデータをB1セルに表示させるためにはB1セルに次の式を入力します。

=IF(A1="","",VLOOKUP(A1-1,D:F,3,TRUE))

A列のデータに対応させるためにはこの式を下方にオートフィルドラッグすればよいでしょう。

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Q別のシートから値を取得するとき

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

Aベストアンサー

Worksheets("シートA").Range("A1")

みたいな感じでできませんか?

Qエクセル 0や空白のセルをグラフに反映させない方法

以下の点でどなたかお教えください。

H18.1~H20.12までの毎月の売上高を表に記載し、その表を元にグラフを作成しています。グラフに反映させる表の範囲はH18.1~H20.12の全てです。
そのためまだ経過していない期間のセルが空白になり、そこがグラフに反映され見づらくなります。
データを入力する都度グラフの範囲を変更すればいいのですが、うまく算式や設定等で空白や0円となっているセルをグラフに反映させない方法はありますか?

お手数ですが、よろしくお願いいたします。

Aベストアンサー

売上高のセルは数式で求められているのですよね?
それなら
=IF(現在の数式=0,NA(),現在の数式)
としてみてください。
つまり、0の場合はN/Aエラーにしてしまうんです。N/Aエラーはグラフに反映されません。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング