【復活求む!】惜しくも解散してしまったバンド|J-ROCK編 >>

お世話になります。
エクセルの関数でどうしてもわからないことがあり、質問させていただきます。
Aのセルに、とある年月日が記入されています。
この年月日について、特定の期間内であれば、特定の値を返すようにできたらと思います。
(期間と返す値については、下記の通りです)

<期間>           <返す値>
1943/4/1以前         空白
1943/4/2 ~ 1945/4/1  62
1945/4/2 ~ 1947/4/1  63
1947/4/2 ~ 1949/4/1  64
1949/4/2 以降        65

エクセルの知識があまりなく、本やネットなどで調べてみたのですが、なかなかうまくいきません。
詳しくていらっしゃる方にご助力いただければと思います。

どうかよろしくお願いいたします。

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

A 回答 (4件)

Excelでは1900/1/1以前の日付は日付として扱えないため、「1943/4/1以前」ではなく「1900/1/1~1943/4/1」を空白とすると言う事でよろしいですか?



開始年と対応した値の一覧をシート上に作り、Vlookup関数で値を表示します。
例として、D1:E5に以下の様に一覧が入っているとします。
1900/1/0
1943/4/2 62
1945/4/2 63
1947/4/2 64
1949/4/2 65

B1セルに =""&VLOOKUP(A1,D1:E5,2) と入力し、A1セルに適当な日付を入れて見てください。
「エクセル 特定の期間内の場合に、特定の値」の回答画像1
    • good
    • 0
この回答へのお礼

早速のご回答、ありがとうございます!
VLOOKUPを使うのですね。
浅い知識しか持ち合わせておらず、IF関数付近で必死に考えていて、全く思いつきませんでした。
エクセルは、関数の知識と発想力(論理力?)だなぁ、とつくづく思いました。
そして、1900/1/1以前の日付が日付として扱えないとのこと、勉強になりました。

おっしゃる式で、無事にデータが作成できました。
少し急ぎだったので、素人でも分かりやすく迅速に(そして画像まで!)ご回答下さったことに、感謝の気持ちでいっぱいです。

これからももっと勉強したいと思います。
本当にありがとうございました。

お礼日時:2011/11/03 00:42

エクセルでは、「日付のセルの値」は(日付シリアル値という)正整数なのだ。

1900年1月1日以来のその暇での日数(「順序数)なんだ。これを知らないから、日付で怖気ついたのではないか。
だから例えば、1から9、10から20、・・といった区間にコードを割り当てるのとおなじなんだ。
ーー
またこういう区間で値を割り当てるのは、VLOOKUP関数のTRUE型という、エクセルでは常識の関数がある。
それを使えば仕舞い。もう回答も有るので、書かないが、Googleででも「エクセル VLOOKUP関数 TRUE型」で照会すれば、こんなところへ質問しなくても、腐るほど記事が出てくるのだ。
エクセルの関数の問題などほとんどWEBに解説があるのだ。
ーー
もうひとつ>1943/4/1以前 と不用意に書いているが、エクセルでは,1900年1月1日の前日以前を扱うのは尋常では出来ないのだ。だから、1900/1/1(あるいはそれ以降日付)~1943/4/1とするとエクセルのことが判っているということになる。
ーー
今後エクセル関数を使うなら、都度質問にな無いように、エクセルの解説書(最低でも「エクセル関数50選」など)などを通読してからにすべきだ。
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。
そして、この質問が、回答者様をご不快にさせてしまったようで、大変申し訳ありませんでした。
日ごろ使い慣れていない関数でしたので、咄嗟に思いつきませんでした。
回答者様はきっと、エクセルを熟知なさっているのですね。
うらやましい限りです。

基本的に私も、ネットや解説書を参考にして問題を解決するようにしていますが、今回はあたりのつけ方が悪くてどうしても解決策が見つからず、最終手段としてこちらで質問させていただきました。
日付で怖気づいて、皆さんに問題を丸投げしたわけではないのです。
素人には、あたりをつけることもなかなかに難しいことを、どうかご理解いただけますと幸いです。

今後も、私を含め、エクセルに不慣れな方が、勉強する気持ちで質問されることもあるかと思います。
その際は、あたたかい目で見守っていただけますと幸いです。

貴重なお時間を割いてのご意見、ありがとうございました。

お礼日時:2011/11/03 02:10

方法1)


添付図のように対応表を用意してVLOOKUPしてみるのが一番基本形です。
ただし,対応表の作り方に幾つかコツがあります。

E2のセルには必ずゼロを記入しておくこと
G2のセルには ’(Shift+7) を記入しておくこと

すると数式は
=VLOOKUP(A1,$E$2:$G$6,3)
とします。



方法2)
添付図のように一度日付を記入したあと,E列を選び,ツールバーのカンマボタンをクリックして桁区切り表示にします
すると開始日の日付の表示が
15,798
16,529
17,259
17,990
に変わります。この数字を使って計算します。対応表は使いません

=LOOKUP(A1,{0,15798,16529,17259,17990},{"",62,63,64,65})


方法3)
添付図のF列,「まで」の日付を記入したF2:F5を使います。
B列に
=SUMPRODUCT(FREQUENCY(A1,$F$2:$F$5)*{0;62;63;64;65})
と数式を入れた後,B列を列選択,右クリックしてセルの書式設定の表示形式のユーザー定義で
#
と設定しておきます。
「エクセル 特定の期間内の場合に、特定の値」の回答画像3
    • good
    • 0
この回答へのお礼

早速のご回答、ありがとうございます。

質問文の内容から、式を3パターンも考えつくことができるなんて、素晴らしいです。
(そしてとってもうらやましいです。)
VLOOKUP関数が一番簡単ですね。
関数の知識があまりないため、知っている関数でどうにかなるのではないかと、狭い視野で模索していました。
反省しています。
方法3については、初めて見る関数なので、ちょっと勉強してみますね。

たくさんの方法をご教授いただき、ありがとうございました!

お礼日時:2011/11/03 01:54

B2セルに


=IF(A2<="1943/4/1"*1,"",VLOOKUP(A2,$D$3:$G$6,4))
下へオートフィル(添付図参照)
=IF(A2<=15797,"",INDEX($G$3:$G$6,MATCH(A2,$D$3:$D$6)))
でもOK
「エクセル 特定の期間内の場合に、特定の値」の回答画像2
    • good
    • 0
この回答へのお礼

早速のご回答、ありがとうございます。

IF関数とVLOOKUP関数で、こんなに簡潔な式が完成するんですね!
まずVLOOKUP関数についての知識が不十分だったため、IF関数で長々とした式を・・。
しかし、どうしてもきちんとした数値が返ってこず、皆さんのお力をお借りした次第です。
添付図までつけていただき、とても分かりやすかったです。

表の作り方次第で関数も変わってくることも、勉強になりました。
丁寧にご教授いただき、ありがとうございました!

お礼日時:2011/11/03 01:36

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

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

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

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

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

Qエクセルで特定の列にある日付データの中から、指定した日付範囲を抽出する方法を教えてください

例えばこんなデータなのですが、

2002/07/01 99 25 36
2002/07/05 55 33 25
2002/08/01 80 20 51

日付の入っている列を検索して、2002/07/01から2002/07/31
の範囲ならば、その行のデータを別のシートに抽出したいのですが、
日付の範囲は関数でどうすればよいのか分かりません。ACCESSなら
between 9999/99/99 and 9999/99/99って感じで簡単にできるの
ですが。。。エクセルの関数だとIF関数の論理式にAND関数を使って
>=2002/07/01
<=2002/07/31
と入力したので、2002/07/05ならば、いずれもTRUEなので、値を返して
くれると考えたのですが、なぜかダメでした。
(↓こういう入力をしました)
=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

Aベストアンサー

こんばんは!

=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

おしいですね(^^;
日付をそのまま入力してしまうと数式上では
 2002/7/31 → 2002÷7÷31 になってしまいます。
ダブルクォーテーションで括って(文字列)入力して
それを数値化しましょう!

=IF(AND(Sheet2!A1>="2002/7/1"*1,Sheet2!A1<="2002/7/31"*1),Sheet2!A1,"該当月ありません")

文字列 ="10" に対して 乗算 *1 としても数式が
なり立ち文字列の数字が数値化されます。="10"*1

------------余談--------------------------
ご質問の条件例の場合特例で 2002/7でればOKなので

=IF(TEXT(Sheet2!A1,"yyyym")="20027",Sheet2!A1,"該当月ありません")

でも可能ですね!

こんばんは!

=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

おしいですね(^^;
日付をそのまま入力してしまうと数式上では
 2002/7/31 → 2002÷7÷31 になってしまいます。
ダブルクォーテーションで括って(文字列)入力して
それを数値化しましょう!

=IF(AND(Sheet2!A1>="2002/7/1"*1,Sheet2!A1<="2002/7/31"*1),Sheet2!A1,"該当月ありません")

文字列 ="10" に対して 乗算 *1 としても数式が
なり立ち文字列の数字が数値化されます。="10"*1

--...続きを読む

QSUMIF関数で、条件に日付範囲で指定するには?

SUMIF関数で、条件に日付をいれたいのですが、
10日毎の範囲で集計を取るにはどうすればいいでしょうか。

A列に日付、B列に数値で
=SUMIF(A:A,"【2013/9/1~2013/9/10】",B:B) 
こんな感じで日付の部分が問題のところです。

date関数を入れてみると例えば9/3だけなど、一日だけの計算はできたのですが…
1~10,11~20、21~末日(31日)で合計するにはどう記入すればいいでしょうか。

Aベストアンサー

こんにちは。

2013/9/10までを求めて、2013/9/1以前を引けば答えが出ます。
=SUMIF(A:A,">=2013/9/10",B:B)-SUMIF(A:A,"<2013/9/1",B:B)

どうでしょうか。

Q指定した期間内での数値を合計する関数。

関数について教えて下さい。

SUMIF関数で条件に合うセル内の数値を合計するのは出来るのですが
その条件に更に条件を加えたいのですがやり方がわかりません。

下記の画像でD28セルに8/1~8/3までの間の海山商事さんの個数を
合計して表示させるにはどんな関数が入るでしょうか?

SUMIF関数で全期間の海山商事さんの個数を合計する事はできますが
期間を指定する関数がどうしてもわかりません。

初歩的な質問かもしれませんがよろしくお願いします。

Aベストアンサー

こんにちは。

8/3までの個数から8/1以前の個数を引けば8/1~8/3までの個数になります。

=SUMIF(B5:B20,"<=8/3",F5:F20")-SUMIF(B5:B20,"<8/1",F5:F20")

今回は8/1から始まっていて以前がないので、8/3までの個数を求めればSれが答えになります。

QMS Excel 日付範囲を条件としたvlookup

以下のようなテーブルがあります。

A列___B列___C列___D列___E列
販売先___製品コード___単価___開始日___終了日
AAA___F1234___$1,000___11/01/2008___11/15/2008
BBB___F1234___$1,500___11/01/2008___11/15/2008
AAA___F1234___$900___11/16/2008___11/29/2008
BBB___F1234___$1,100___11/16/2008___11/29/2008
.
.
.
(セルの区切り目を表す為、"___"を便宜上ここでは使っています。)

実際のテーブルは販売先、製品コードも複数存在します。同じ販売先&製品コードで日付の範囲がオーバーラップすることはありません。
このようなテーブルにおいて、
「11/18/08の販売先AAAのF1234」の単価を引っ張ってきたいとき、Vlookup関数を使って(vlookupと何かほかの関数を組み合わせることになるかと思いますが。。)単価を検索することはできますでしょうか。
日付は開始日と終了日は別々のセルに入っています。

よろしくご教示お願いいたします。

以下のようなテーブルがあります。

A列___B列___C列___D列___E列
販売先___製品コード___単価___開始日___終了日
AAA___F1234___$1,000___11/01/2008___11/15/2008
BBB___F1234___$1,500___11/01/2008___11/15/2008
AAA___F1234___$900___11/16/2008___11/29/2008
BBB___F1234___$1,100___11/16/2008___11/29/2008
.
.
.
(セルの区切り目を表す為、"___"を便宜上ここでは使っています。)

実際のテーブルは販売先、製品コードも複数存在します。同じ販売先&製品コードで日付の範囲がオーバーラッ...続きを読む

Aベストアンサー

11/18/08は開始日と終了日の間なんですね
なので先ほどの回答は無視してください

___A___B___C___D___E
1___販売先___製品コード___単価___開始日___終了日
2___AAA___F1234___$1,000 ___11/01/2008___11/15/2008
3___BBB___F1234___$1,500 ___11/01/2008___11/15/2008
4___AAA___F1234___$900 ___11/16/2008___11/29/2008
5___BBB___F1234___$1,100 ___11/16/2008___11/29/2008
6
7___販売先___製品コード___開始日___終了日
8___AAA___F1234___<=11/18/2008___>=11/18/2008
9
10___対象の日付___11/18/2008
11___単価___900

C8セルに="<="&B10
D8セルに=">="&B10
B10セルに
=DGET($A$1:$E$5,A10,$A$7:$C$8)

11/18/08は開始日と終了日の間なんですね
なので先ほどの回答は無視してください

___A___B___C___D___E
1___販売先___製品コード___単価___開始日___終了日
2___AAA___F1234___$1,000 ___11/01/2008___11/15/2008
3___BBB___F1234___$1,500 ___11/01/2008___11/15/2008
4___AAA___F1234___$900 ___11/16/2008___11/29/2008
5___BBB___F1234___$1,100 ___11/16/2008___11/29/2008
6
7___販売先___製品コード___開始日___終了日
8___AAA___F1234___<=11/18/2008___>=11/18/2008
9
10___対象の日付___1...続きを読む

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すると関係ないセルの値が返るので、
場...続きを読む

QExcel日程表:開始日~終了日を自動で色付けたい

Excelで月間スケジュールを作りたいと思います。

複数案件の一覧表にし、案件の開始日と終了日の期間のセルに、自動で色が付くようにしたいです。
条件付き書式で出来るでしょうか?
どのような条件付けをすれば実現できますか?
添付画像のような表をイメージしています。

<やりたいこと>
(1)左側に日付を入れると、右側のカレンダー部分に色がつく。(開始日から納品日まで)
(2)受注日と納品日は濃い色を付ける。
(3)月をまたがる日付を入れてもエラーにならない。

<目的>
各案件への取り組み期間が一見してわかるようにしたいです。
複数案件の進行が重複し、稼働の重たくなる時期を確かめるためです。


※2003でも2007でも使える書式設定でお願いします。
※私はマクロの知識が乏しい&Excelスキルの低い同僚にも使ってもらうため、マクロは使いたくありません。
※のちのち数式が崩れたときにも修復が容易なように、シンプルな数式だとありがたいです。
※条件付き書式以外の方法で、上記が解決できるならそれも教えてください。



ご教授ください。よろしくお願いします。

Excelで月間スケジュールを作りたいと思います。

複数案件の一覧表にし、案件の開始日と終了日の期間のセルに、自動で色が付くようにしたいです。
条件付き書式で出来るでしょうか?
どのような条件付けをすれば実現できますか?
添付画像のような表をイメージしています。

<やりたいこと>
(1)左側に日付を入れると、右側のカレンダー部分に色がつく。(開始日から納品日まで)
(2)受注日と納品日は濃い色を付ける。
(3)月をまたがる日付を入れてもエラーにならない。

<目的>
各案件への取り組み期間が一見...続きを読む

Aベストアンサー

こんばんは!
一例です。
カレンダーもシリアル値の方が何かと便利ですので、
余計なお世話かもしれませんが、↓の画像のようにカレンダーを作成します。
(開始日・受注日・納品日はすべてシリアル値で入力します)

A1セルに「西暦年」C1セルに「月」を入力します。
E3セル(セルの表示形式はユーザー定義から d とだけしておきます)に
=IF(MONTH(DATE($A$1,$C$1,COLUMN(A1)))=$C$1,DATE($A$1,$C$1,COLUMN(A1)),"")

E4セルに
=IF(E3="","",TEXT(E3,"aaa"))
という数式を入れ、E3・E4セルを範囲指定 → E4セルのフィルハンドルでAI列までコピーしておきます。
これで「年」・「月」を変更すればちゃんと大の月・小の月の対応ができます。

後は条件付書式で可能です。
Excel2003の場合
色を付けたいセル(E5セル以降)をすべて範囲指定
書式 → 条件付書式 → 「数式が」を選択 → 数式欄に
=OR(AND(E$3<>"",E$3=$B5),AND(E$3<>"",E$3=$D5))
として → 書式 → パターンから「赤」を選択

次に条件付書式 → 「追加」 → 上記と同様に数式欄に
=AND(E$3<>"",E$3>=$B5,E$3<=$D5)
として → ・・・ → パターンから「黄色」を選択
これで↓の画像のような感じになります。

※ Excel2007以降ですと、条件付書式 → 「数式を使用して・・・」という項目になると思います。
数式欄は同じ数式にします。

※ 条件が重複する場合は最初の条件付書式が優先されますので、
「受注日」・「納品日」の条件付書式を条件1にします。
Excel2007以降の場合は条件付書式の項目で上の行に表示されている方が優先されますので、
右側の▲▼で優先順位は自由に変更できます。

参考になりますかね?m(_ _)m

こんばんは!
一例です。
カレンダーもシリアル値の方が何かと便利ですので、
余計なお世話かもしれませんが、↓の画像のようにカレンダーを作成します。
(開始日・受注日・納品日はすべてシリアル値で入力します)

A1セルに「西暦年」C1セルに「月」を入力します。
E3セル(セルの表示形式はユーザー定義から d とだけしておきます)に
=IF(MONTH(DATE($A$1,$C$1,COLUMN(A1)))=$C$1,DATE($A$1,$C$1,COLUMN(A1)),"")

E4セルに
=IF(E3="","",TEXT(E3,"aaa"))
という数式を入れ、E3・E4セルを範囲指定 → E4セ...続きを読む

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

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

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

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

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

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

宜しくお願いします。

Aベストアンサー

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

でどうでしょうか?

Q期間と条件を指定してカウントする関数。

下記の図でG4~I6に入る関数を教えて下さい。

ピボットテーブルを試しましたがよく分からず、COUNTIFS関数を使用しましたが
日付の入力の仕方がいまいちわかりません。

試しにG4に入力した関数は以下の通りです。

=COUNTIFS(D:D,"○○",C:C,8/16:8/21)

この8/16~8/21という指定の仕方がわかりません。

どういう関数を入れればカウントできますでしょうか?
あと出来ればこのフォームを使い回したいので表のG3~I3の数字を変えるだけで
カウント出来るようにしたいのですが可能でしょうか?

宜しくお願いします。

Aベストアンサー

回答No.1の数式に一部誤りがありましたので訂正します。
G4=COUNTIFS($D:$D,F4,C:C,">="&LEFT(G$3,FIND("~",G$3)-1)*1,$C:$C,"<="&MID(G$3,FIND("~",G$3)+1,LEN(G$3))*1)
   ↓
G4=COUNTIFS($D:$D,$F4,$C:$C,">="&LEFT(G$3,FIND("~",G$3)-1)*1,$C:$C,"<="&MID(G$3,FIND("~",G$3)+1,LEN(G$3))*1)

数式中のC:Cを$C:$Cに、F4を$F4に修正しました。

誤りの内容はセルの指定で$が不足しているため右にコピーしたとき検索条件範囲が移動してしまうことです。
検証時にはH3セルとI3セルの範囲に入るデータが存在しなかったのでチェック漏れになりました。

あなたの検証で全てが0と表示されることとは異なるチェックミスです。

Qエクセルで 指定する期間内の数値を合計する関数はありますか?

エクセルで 指定する期間内の数値を合計する関数はありますか?
自分に合う家計簿をエクセルで自作してるのですが、カード払いの集計でつまづいています。

Aカード10/15~11/14・Bカード10/11~11/10(締め日)までの期間に使用した
カードの合計を別シートのセルに表示したいのです。

たとえばですが、11月の家計簿シートで
11/ 1 Bカード 1000円
11/ 9 Aカード 1000円
11/10 Aカード 1000円
11/16 Aカード 1000円
を使用したとして、

 Aカード 2000円(12月支払い額のセルに金額表示)
 Aカード 1000円(1月支払い額のセルに金額表示)
 Bカード 1000円(12月支払い額のセルに金額表示)

と金額だけを表示させたいと思います。
可能でしょうか?
または似たような表示方法があれば伝授お願いします。

結局は、11月に使用した金額を何月にいくら支払うのかを把握できるようにしたいということです。
説明が下手で申し訳ないのですが アドバイスいただけたら助かります。


よろしくお願いします。

エクセルで 指定する期間内の数値を合計する関数はありますか?
自分に合う家計簿をエクセルで自作してるのですが、カード払いの集計でつまづいています。

Aカード10/15~11/14・Bカード10/11~11/10(締め日)までの期間に使用した
カードの合計を別シートのセルに表示したいのです。

たとえばですが、11月の家計簿シートで
11/ 1 Bカード 1000円
11/ 9 Aカード 1000円
11/10 Aカード 1000円
11/16 Aカード 1000円
を使用したとして、

 Aカード 2000円(12月支払い額のセルに金額表示)
 ...続きを読む

Aベストアンサー

こんばんは!
色々方法はあるかと思いますが・・・
一案です。
↓の画像のような配置にしてみました。
A列は通常の日付でシリアル値・E列は各月の1日のシリアル値にして表示形式をユーザー定義から
yyyy/m としています。

そして、各カードの各月の始まりから締日をI~K列のような表にしています。

F2セルに
=SUMPRODUCT(($A$2:$A$1000>=DATE(YEAR($E2),MONTH($E2)-1,VLOOKUP(F$1,$I$2:$K$3,2,0)))*($A$2:$A$1000<=DATE(YEAR($E2),MONTH($E2),VLOOKUP(F$1,$I$2:$K$3,3,0)))*($B$2:$B$1000=F$1)*($C$2:$C$1000))
という数式を入れ、列方向と行方向にオートフィルでコピーすると
画像のような感じになります。
尚、元データの1000行目まで対応できる数式にしています。

尚、「0」が目障りであれば当方使用のExcel2003の場合は
メニュー → ツール → オプション → 表示タブで「ゼロ値」のチェックを外せば
「0」は表示されなくなります。

あくまで一つの案ですので
他に良い方法があれば読み流してくださいね。m(__)m

こんばんは!
色々方法はあるかと思いますが・・・
一案です。
↓の画像のような配置にしてみました。
A列は通常の日付でシリアル値・E列は各月の1日のシリアル値にして表示形式をユーザー定義から
yyyy/m としています。

そして、各カードの各月の始まりから締日をI~K列のような表にしています。

F2セルに
=SUMPRODUCT(($A$2:$A$1000>=DATE(YEAR($E2),MONTH($E2)-1,VLOOKUP(F$1,$I$2:$K$3,2,0)))*($A$2:$A$1000<=DATE(YEAR($E2),MONTH($E2),VLOOKUP(F$1,$I$2:$K$3,3,0)))*($B$2:$B$1000=F$1)*($C$2:$C$1000))
...続きを読む


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

人気Q&Aランキング