• 締切済み

エクセルでの数値検索方法

A列に日付が上から順に入力されており、B列には数が入力されている時、同一シート上のセルに開始日を、もう一つのセルに終了日を入れると、その期間の数の合計が表示される計算式を教えてほしい。 (イメージ)   A  B        開始日→□  1__ 1____18        終了日→□ 2__ 2____10         合 計→□   3__ 3____14 4__ 4____ 9

みんなの回答

noname#35109
noname#35109
回答No.1

INDIRECT関数を使えば一応,できます。   A  B          C 1__ 1____18        開始日→C1セル  2__ 2____10        終了日→C2セル  3__ 3____14        合 計→C3セル   4__ 4____ 9 として, C3セルに =SUM(INDIRECT("B"&C1&":B"&C2)) と書きます。 そして,C1セルに開始日,C2セルに終了日を入力すれば, 合計(C3セル)に指定日内の数の合計が出ます。 わかりにくいと思うのですが, 任意のセルに「=SUM(INDIRECT(D1))」と書いて,D1セルに「B1:B4」と書けば, B1~B4までの合計が出るのです。 これの変形バージョンで, D1セルに「B1:B4」と書くところを「"B"&C1&":B"&C2」とバラしているのです。 ====================================== 日付が飛ぶ場合は,さらにややこしくなりますが, データベース関数の,DSUM関数の方が良いと思います。 -----------------------------   A  B   C      D  1__ 日___数____日____________日 2__ 1____18____>=終了日____<=終了日 3__ 2____10____=DSUM(A:B,2,C1:D2) 4__ 3____14 5__ 4____ 9 ---------------------------- ~元の形からの変形の方法~ 1.1行目を挿入 2.A1に「日」,B1に「数」,C1に「日」,D1に「日」という文字を記入, 3.C3に「=DSUM(A:B,2,C1:D2)」を記入。 以上です。 この関数には列見出しが要るようで,「日」とか「数」とかの見出しが必要です。 C2の「>=終了日」に例えば「>=2」,D2の「<=終了日」に「<=4」, と入力すると,C3は「10+14+9」で「33」という値が入ります。 不等号が必要です。 「=DSUM(A:B,2,C1:D2)」の真ん中の ,2, は,A:Bのうち2列目という意味の2です。 ここの2を列見出しである 「"数"」 に変えてもらっても同じ結果が得られます。

関連するQ&A

  • エクセルマクロで日付検索について

    エクセルのマクロで日付を検索するマクロについて質問です。 ブックAのシート1のA列に A1 2017/3/13 A2 2017/4/1 A3 2017/4/19 A4 2017/5/16 A5 2017/7/17 A6 2017/9/5 というような日付が入っています。 ブックBのシート1のA1セルに2017/6/3と入力してマクロを実行した際に その日付に一番近い一つ前の日付を探し、見つけた日付のB列のセルを ブックBのシート1のA2セルに表示したいです。 今回の例であれば2017/6/3に対してブックAのシート1のA列はA4セルが当てはまり その当てはまったA4セルの1つ横のB4セルの内容をブックBのシート1のA2セルに表示するということです。 よろしくお願いします。

  • エクセル関数で、ご教示下さい

    例として、セルA1~A10に、1.2.3.・・・・10と番号を入れて       セルB1~B10には、商品の在庫数が入力されているとします。 この時、セルC1に集計の開始番号 セルC2に集計の終了番号を入力すれば、      D1に開始番号から終了番号までのB列の合計を表示させたいのですが、      このような集計ができるD1に入れる関数はあるでしょうか。 例えば、B列の3行目から6行目までの合計をD1に表示させたい場合に      C1にA列番号の3を入力、C2には6を入力すれば、D1にB3からB6の合計を      表示してくれる、といった関数です。      開始番号、終了番号は、何番~何番までと、その都度変わります。 どなたか、よろしく、お願いいたします。         

  • エクセルExcelでの空白を詰めてのデータ抽出の方法

    ぜひ力を貸してください(>_<) Sheet1は入力専用で A列は日付で固定、B列に入力をします。B列は空白が多いです。  A  B 7/20 7/21 160 7/22 7/23 230 7/24 185 7/25 これをSheet2にB列の空白を詰めて 日付順に表記させたいです  A  B 7/21 160 7/23 230 7/24 185 Sheet2の関数式を教えていただきたいです よろしくお願いいたします

  • 検索したい日付からデータを抽出したい。

    こんにちわ。 キャンペーンが何日~何日までどういった内容がある、という一覧を作成しています。 Aの列が開始日、Bの列が終了日、Cの列がキャンペーン内容、です。 検索したい日付をD1のセルに入力したら、その日付に該当するキャンペーンすべてを別のシートに抽出できないでしょうか・・・ オートフィルタで抽出は出来るのですが、日付を入力しただけで抽出 させたいのですが、無理でしょうか・・・ よろしくお願いします。

  • エクセル2000でこんなことはできますか?【初歩的な質問ですみません。】

    Sheet1の入力 (1) B4に5000が入力されています。 (2) B7から2006/10/6、B8に2006/10/5、B9に2006/10/4・・・のようにB506まで日付の新しい順に並んでいるものとします。 B7 2006/10/6 B8 2006/10/5 B9 2006/10/4 (3) C7からは4桁の任意の数がC506まで並んでいるものとします。 C7 7685 C8 2394 C9 1542 ・ ・ C506 6473 Sheet2の入力 (1) A列にはA2から1~9999まで入力されているものとします。 A2 1 A3 2 A4 3 ・ ・ ・ A10000   9999 (2) B列には日付、C列には任意の数が入力されているものとします。        B        C 2    2006/6/8     120 3 2006/1/24     457 ・ ・ 10000  2005/12/3    6750 (3) D列には日付、E列にも任意の数が同様に入力されているものとします。 【Sheet1に次のような作業列を関数で作りたいと思いますができるのでしょうか。】 Sheet1のB4に入力されている数をSheet2のA列から抽出しその行すべてをSheet1のB5から右側に表示する。 まだ先は続きますが、さしあたり上記の疑問につきましてお分かりの方がいらっしゃいましたら、ご教示をお願いします。

  • 複数条件での検索

    エクセルでワークシートの A列に開始日が日付形式で入っています B列に終了日が日付形式で入っています C列に商品番号がAA2035のような文字列で入っています。 D列に価格が数値で入っています。 各列とも、重複する値があります。 E1セルに日付、F1セルに商品番号があった場合のその日付(E1)が開始日(A列)から同じ行の終了日(B列)の間にあるその商品の価格を求めたいのです。なお、この条件に該当する価格は各商品ともひとつしかありません。 作業列を使用する方法はわかりますので使用しない方法を教えてください。

  • エクセルでこんなことはできますか?

    エクセルで、 A列には日付が入っていて、B列には数値が入っています。 「A列の日付の月が5月のところのB列の値を合計する」 という式を作ることは可能でしょうか? ワークシートのセルに式を入力して実現できるでしょうか? それともマクロでないとできないでしょうか?? 自分で考えてみたのですが、ギブアップです。。。 日付が入力されているセルの月の値を抽出というか 検索する方法がわかりません・・・ どなたかご教授いただけないでしょうか?

  • SUM関数で教えて下さい。

    関数かマクロで教えて下さい。 シート1に日付が4/1~9/30があり、その下に売上数字があります。 シート2のセルA1に集計開始日、セルC1に集計終了日を入力すると セルB2にシート1の集計期間の売上合計が計算されるようにしたい のですが、わからなくて困ってます。 集計期間は、変動しますので集計開始日、集計終了日を入力した 期間で集計したです。 わかりにくい説明ですみませんが宜しくお願い致します。 シート1 日付 4/1 4/2 4/3 4/4 4/5 → 9/28 9/29 9/30 売上 10   21   3   9   6    → 4   6  7 シート2 5/1 ~ 5/15 売上合計 163

  • エクセル SUMPRODUCT関数について教えてください

    エクセルで作成した表から ○○かつ●●のデータ個数を求めたく、 SUMPRODUCT関数を こちらで調べておりましたが どうしても解決しない部分があります。 どうぞ よろしくお願いいたします。 下記8桁数字は、日付です。 カウントしたい数は、B列(終了)が、A1セルに入力された年月かつ、区分(C列)が「A」の数です。 =SUMPRODUCT((LEFT(B2:B100,6)=A1)*(C2:C100="A")) こちらで、『B列=A1セル かつ C列="A"』のみのカウントは出来たのですが、 終了延長(D列)が空欄でない場合は、D列日付データの方をカウントする。 早期終了(E列)が空欄でない場合は、D列・B列よりも E列を優先し、カウントする。という条件を付けたいのですが、 Sheet1 A1セルに「200810(数を調べたい年月を入力)」 (開始)  (終了)     (区分)  (終了延長)  (早期終了)  A列     B列      C列     D列      E列 20061001   20081001   A    -        - 20070926   20081020   A    -        - 20071102   20081009   A    20081201    - 20080101   20081013   B    -        - 20080208   20081010   A    -        20080210 ・・・ この場合、「2」となるようにです。 IF、OR関数あたりかな と考えておりますが、SUMPRODUCT関数のどの部分で条件付ければ良いか解りません。 説明下手で大変申し訳ございませんが、ご助力いただければ幸いです。 

  • ■EXCELでこんな関数なんですが・・・教えて!!

    たとえばA列のセルに任意の数値が入力されています。B列のセルにある条件で日付が入力されます。そして別のセルにB列の日付が入力されるごとに隣接するA列の数値を合計していく関数なんですが。よろしくお願いします。