Excelで家計簿を作ってますが、来年度の出費予定を本年の内容を参考に作ってます。つまり、本年のワークシートをコピーして最低限の削除・挿入で作ってます。問題は、その際日付の「平成12年x月x日」→「平成13年x月x日」を一括して変換できないかと思って「検索・置換」でTryしてみましたが、一部上手く置換してくれましたが、ほとんどは置換してくれませんでした。原因として、思
い当たるのは、日付部分を所々コピー&ペーストを使用している事かと思います。
とりあえず、該当するワークシート1枚分の置換が出来ればよいのですが・・・?
ご教示の程宜しくお願いします。

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

A 回答 (8件)

私も原因は「全角・半角」か「表示形式」のどちらかだと思います。



nanalyさんの解決策を施してもまだ変換されずにいるセルがありましたら、そのセルをひとつ選択してみてください。仮にそのセルが「平成12年5月5日」と表示していたとして、もし画面上部の数式バーに「2001.5.5」という値が表示されている場合は、そのセルに入力されている値は文字列ではなく数値です。数値を入力されているセルが、表示形式によって「平成12年5月5日」と表示しているということです。

Excelの検索はあくまでも入力されている値に対して行われるものですから「平成12年」という文字列が入力されていないセルを置換することはできません。

ではどうすれば「平成12年5月5日」は「平成13年5月5日」になるのでしょか。
つまり「平成12年5月5日」に相当する数値をどうすれば「平成13年5月5日」相当の数値に変換できるかということです。

365を足せばOKです。

<1>「平成12年5月5日」と入力されているセルを任意のセルにコピーしてください。(コピー元を仮にB4、コピー先をC4とします)
<2>C4に「=B4+365」という数式を入力してください。
以上の作業によりC4には「平成13年5月5日」と表示されるはずです。

MiJunさんは家計簿を加工されているとのことですが、きっと「日付」という一つの列に上から下まで並んでいる日付を一括変換したいということだと思います。先ほどの作業を応用する場合は
<1>日付が入力されている列をコピーしてください。(この列を仮にB列とします)
<2>C列を選択し「コピーしたセルの挿入」を行ってください。
<3>C1に「=B1+365」という数式を入力してください。
<4>C1をコピーしてください。
<5>C列を選択し「貼り付け」てください。
以上の作業によりB列に表示されている日付の一年後の日付がC列に表示されているはずです。
しかしこのままの状態でB列を削除するとC列全体が「#REF!」となってしまいます。したがって
<6>C列をコピーしてください。
<7>そのままC列に「形式を選択して貼り付け→値」を行ってください。

以上の作業により、お求めの結果は得られるはずかと思いますがいかがでしょうか。

この回答への補足

大変丁寧な説明ありがとうございます。
ほぼ解決しました。
ただ、行によっては「明治33年」との表示が出てきました。この原因は「形式を選択して貼り付け→値」にチェックを入れなければなる場合と、入れてもなる場合があります。特に、後者の場合の原因・解決策をご教示下さい。
(もちろん、コピー&ペーストで一応解決はしてますが・・・)

補足日時:2001/01/08 14:00
    • good
    • 0

そうですよね。

列全体に「貼り付け」る必要はないですね。「必要範囲の先頭から末尾を選択」→「貼り付け」でしたね。

そうそう「0」が「明治33年」か「明治37年」かは私も気になっていたところです。

ウィンドウズ版では「ツール→オプション」で現れるダイアログの
マッキントッシュ版では「ツール→初期設定」で現れるダイアログの
「計算方法」の「ブックオプション」の欄の「1904年から計算する」を

チェックすると「0」が「明治37年」(1904年)、
チェックしないと「0」が「明治33年」(1900年)となります。

なぜたった4年のシフトのためにこのチェックボックスは用意されたのでしょう。
ご存じのかたがいらっしゃいましたら
教えて!

あと日付に関連して本編から外れた駄談をしてしまって恐縮ですが
2001年になってから日付入力のキーストロークが増えてしまいましたね。

2000年の頃は
入力年の日付は「5/5」→「2000/5/5」。一年前は「99/5/5」→「1999/5/5」

2001年になってから
入力年の日付は「5/5」→「2001/5/5」。一年前は「2000/5/5」→「2000/5/5」となってしまいました。

「00/5/5」→「2000/5/5」となるようなパッチはないのですかねぇ(単なるボヤキです)。
    • good
    • 0
この回答へのお礼

お礼が大変遅くなり申し訳ありません。
何度も回答して頂いてありがとうございました。

今後ともよろしくお願いします。

お礼日時:2001/02/04 09:11

表示形式の設定により日付として表示されている数値を日付の文字列に変換する場合は「TEXT」関数を用いると便利です。



仮にB列に日付が上から下まで入力されていたとします。
<1>C列を選択します。
<2>「列の挿入」を行います。
<3>「C1」に「=TEXT(B1,"ggge年m月d日")」を入力します。
<4>C列全体を選択する。
<5>選択範囲(C列全体)に「貼り付け」を行う。
<6>C列全体を選択し「コピー」する。
<7>そのまま選択範囲(C列全体)に「形式を選択して貼り付け→値」を行う。
以上の作業により日付が文字列として入力されます。

この回答への補足

10nさん、いろいろと勉強になり、ありがとうございます。
前回の補足同様に、
「<5>選択範囲(C列全体)に「貼り付け」を行う。」では、
B列の選択範囲を「貼り付け」した方が良いのでしょうか?

いずれにしても、お恥ずかしい限りですが「文字列」・「数式」等の基本的な事のおさえが甘かったようです。

補足日時:2001/01/10 11:21
    • good
    • 0

日付の表示形式ですと今後の置換も大変ですので、


一度現状態を文字列に置き換えたほうが良いと思います。
そのVBAを下記に示します。


Sub Macro()
Dim c As Range
'現選択中シート内のセル指定範囲において
For Each c In ActiveSheet.Range("A1:A368")
'セル書式設定が日付型「平成 年 月 日」ならば、
If c.NumberFormatLocal = "ggge""年""m""月""d""日""" Then
'A_単なる文字列へ変換 '←「ココ」
c.Value = Format(c.Value, "ggge""年""m""月""d""日""")'←「ココ」
End If
Next
End Sub


Range("A1:A368")ではA1からA368のセル範囲を指定して日付を文字列へ変換しています。ご自身でここは書き換えて使用してください。
現状を文字列に置換後、標準機能の文字列置換で平成13年にすればよいと思いますが、その際、平成12年2月29日にご注意ください。

ちなみに1年加算して文字列へ置き換えるのは上記 [←「ココ」]行を下記Bの行と置き換えます。(365を足しても良いですが、その場合閏年の判定等わずらわしくなります。)
'B 1年加算して文字列へ
c.Value = Format(DateAdd("yyyy", 1, c.Value), "ggge""年""m""月""d""日""")

また、1年加算して日付のままにしておくのは下記Cの行と置き換えます。
'C 1年加算して日付へ
c.Value = DateAdd("yyyy", 1, c.Value)

マクロの実行方法等はヘルプ等をみて勉強なさって下さい
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありません。
VBAの丁寧な解説有難うございました。
もう少し勉強してからあらためて質問致しますので、今後ともよろしくお願いします。

お礼日時:2001/02/04 09:09

---1つめのケース---


「(連続した)複数行の修正が必要なので、例えばC1をC2からC5に各々コピーし、C1からC5を一括コピーしてC6にペーストする。これを繰り返していく・・・」

この作業の必然性が分かりません。
<1>C1を選択し「コピー」を行う。
<2>C列全体を選択する。
<3>選択範囲(C列全体)に「貼り付け」を行う。
という方法ではまずいのでしょうか。

まぁそれはさておき
このケースにおいてはC列のセルにはすべて「=B?+365」という数式が入力されているはずです。これらのセルが「明治」を表示してしまうケースは1つだけ考えられます。

それは、参照元の「B?」のセルに何も値が入力されていない。つまり空欄のセルであった場合です。

このケースにおいて現れた「明治」セル(仮にC21)には「=B21+365」という数式が格納されているはずです。その「B21」のセルに何も値が入力されていない、つまり空欄のセルであった場合は「=B21+365」という数式が入力されているセル「C21」は「明治」の日付を表示します。

ここでExcelの「日付」について説明します。
例えば「平成12年5月5日」と表示されているセルにはどのような値が格納されているのでしょうか。じつはこのセルには「35189」という数値が格納されています。

ではこのセルに「0」を入力するとどうなるでしょうか。「明治37年1月1日」と表示されます。
つまり「0」を「明治37年1月1日」として「1」が「明治37年1月2日」、「366」が「明治38年1月1日」、「3132」が「明治45年7月29日」、「3133」が「大正1年7月30日」となっています。

つまり「B21」が「0」もしくは空欄であった場合は「=B21+365」は実質的には「365」となるため「明治37年12月31日」の日付を表示してしまうわけです。
==================================================
---2つめのケース---
このケースにおいても、「明治」セルにはどのような数値が格納されたのかという視点から考えてみます。
この「形式を選択して貼り付け」により「明治」セルが現れてしまうケース、つまりセルに「3132」以下の数値が格納されるケースは1つだけ考えられます。

それは、「形式を選択して貼り付け」るときに「演算」の欄で「しない」以外の項目にチェックを入れてしまった場合です。

「形式を選択して貼り付け」ダイアログの中ほどには「演算」という欄があります。
この欄の「減算」という項目をチェックした場合、「貼り付け」前にそのセルに格納されていた値を「コピー」されている値で減算した値が「貼り付け」られます。
同様に「演算」の欄に「除算」という項目があります。これも「貼り付け」前の値を「コピー」されている値で割った値を「貼り付け」ます。

つまり「平成12年5月5日」と表示している「B4」を参照する「=B4+365」という数式が「C4」に入力されていた場合、「C4」は「平成13年5月5日」と表示します。このとき「C4」の値は実質的には「35554」です。
この「C4」をコピーして、「C4」に「形式を選択して貼り付け→値・減算」を行った場合は
(C4の値)-(C4の値)ということで結果、値は「0」となり「明治37年1月1日」となるはずです。
同様に「形式を選択して貼り付け→値・除算」を行った場合は
(C4の値)/(C4の値)ということで結果、値は「1」となり「明治37年1月2日」となるはずです。
==================================================
---まとめ---
「明治」セルが現れてしまったときには
<1>そのセルの参照元が「0」もしくは空欄ではないか。
<2>「形式を選択して貼り付け」るときに「演算」の欄が「しない」であったかどうか。
を確認すればよいと思いますがいかがでしょうか。

この回答への補足

10nさん、何度もありがとうございます。
「この作業の必然性が分かりません。
<1>C1を選択し「コピー」を行う。
<2>C列全体を選択する。
<3>選択範囲(C列全体)に「貼り付け」を行う。
という方法ではまずいのでしょうか。」

まず大変申し訳ないのですが、当方は「Lotus1-2,3,2000」と「Excel2000」の両方をインストールしてます。それで、この質問は本来こちらのミスで「Lotus1-2-3
」とすべきところを「Excel」としてしました。失礼しました。自信はありませんが、恐らく「Lotus」では上記のような方法でないと・・・(?)
----------------------------
「つまり「0」を「明治37年1月1日」」に関しては説明頂き、良く理解できました。

その後、「Excel2000」で確認しました。
2点確認したい事があります。
1.前回の回答で、「<5>C列を選択し、貼り付け・・・。」に関して、
C列全体を選択すると、余分な部分(範囲外)もコピーされ
てしましますね?
→これを回避するにはB列の必要範囲をコピーする・・・?
2.細かい点ですが。「明治33年」ではないでしょうか(1900年は)?

宜しくお願いします。

補足日時:2001/01/10 11:03
    • good
    • 0

「明治」の日付を表示するセルが出現してしまうことの原因としては


「=??-365」の参照元のセルが空欄であることが考えられます。

「明治」セルは作業のどの段階で現れるのでしょうか。

この回答への補足

2つのケースがあるようです??
1.<3>C1に「=B1+365」という数式を入力してください。
<4>C1をコピーしてください。
-------------------------
(連続した)複数行の修正が必要なので、例えばC1をC2からC5に各々コピーし、C1からC5を一括コピーしてC6にペーストする。これを繰り返していく最中にある行で「明治」となる。
============================
2.
<7>そのままC列に「形式を選択して貼り付け→値」を行ってください。
-----------------------------
この貼り付けを行ったある行で「明治」となる。

以上の2つのケースがあるようです。

ご教示の程宜しくお願いします。

補足日時:2001/01/08 15:37
    • good
    • 0

原因として考えられるのは、2つあると思います。


1つめは、先に回答された方のもの(全角・半角混在)と
2つめはセルの書式設定が[日付]の表示形式となっているものです。
1つめは先に回答された方のいうとおり解決できるとおもいますが、2つめのものについては1セルづつ修正していくかVBAを使用して一括修正するしかないと思います。

この回答への補足

ありがとうございます。
原因は2のようです。
「VBA」に関しては以前より興味を持ってましたが、なかなか勉強する機会がありませんでした。少し、この件に関して説明して頂ければ幸いです。

補足日時:2001/01/08 13:58
    • good
    • 0

「平成12年x月x日」の文字列に半角や全角が混在しているのではないでしょうか?


 
「置換」ダイアログボックスで「全角と半角を区別する」がチェックされていたならば、そのチェックを外してから「すべて置換」ボタンをクリックすれば一括置換できると思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
「全角・半角」は質問前に気がつきまして、一部は上手くいきましたがこれだけでは解決しませんでした。

お礼日時:2001/01/08 13:56

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

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

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

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

QAccessのクエリ。日付と顧客で売上合計をだす。

期間を指定して、顧客の売上を合計したいです。

2つのテーブルからクエリを作成しました。

tbl顧客
顧客番号
顧客名

tbl販売
販売番号
日付
顧客番号
金額

Q_売上
日付
顧客番号
顧客名
金額

∑をクリックして、金額の集計は[合計]にしています。
その他は、[グループ化]です。

日付の抽出条件は、
Between [開始] And [終了]
としています。

顧客毎に合計を出したいです。
よろしくお願い致します。

Aベストアンサー

日付の集計をグループ化ではなく、Where 条件にすれば
よろしいかと。

Qエクセル:ワークシートを自動で生成&ワークシート名を自動で割り振り

こんにちは はじめまして

エクセルのワークシートを自動で生成するやり方を教えていただけますでしょうか。

やりたいことは以下の通りです。

何件かお店がありまして、毎日の売り上げ報告がファックスで本部に送られてきます。
そのファックスを見ながら、本部ではエクセルに入力し合計と累計を出すようにしています。

今現在は雛形ワークシートを一つ作り、手動でワークシートを30,31日分をコピーし、ブックには「店舗A2006年3月度分.xls」というようなブック名で保存してあります。
うちの会社は10日締めなので、3月で言うと、20060311から20060410(←数字は西暦)までのワークシートを作ります。

ワークシートのイメージとしてはこんな感じです。↓

シート名:店舗A.xls
ワークシート名:「雛形」
----------------------------
当日の日付
商品A 単価 ○個 小計
商品B 単価 ○個 小計
    ・
    ・ 
         当日の合計
----------------------------

そしてこれの「雛形」を、自動で一か月分ワークシートをコピーするようにしたいのです。(今は手動でやってます)
VBAの本を読んで、For~Next分を使うと、指定した枚数コピーできることはわかったのですが、ご承知の通り30日の月もあれば31日の月もありまして、これを計算で自動に判断するようにできないでしょうか?

欲を言えば、さらにそのワークシート名も自動で「A店舗20060311」というように日付ごとのワークシート名を入れられるようになると助かります。

もっと欲を言えば、各ワークシートの特定のセルに当日の日付を入れてるのですが(セル番地はどこでもいいです)、そこの日付も、ワークシート名と連動して自動で入れられると助かります。

長文になってしまいましたが、どなたか教えていただけると助かります。

よろしくお願いいたします。

こんにちは はじめまして

エクセルのワークシートを自動で生成するやり方を教えていただけますでしょうか。

やりたいことは以下の通りです。

何件かお店がありまして、毎日の売り上げ報告がファックスで本部に送られてきます。
そのファックスを見ながら、本部ではエクセルに入力し合計と累計を出すようにしています。

今現在は雛形ワークシートを一つ作り、手動でワークシートを30,31日分をコピーし、ブックには「店舗A2006年3月度分.xls」というようなブック名で保存してあります。
うちの会社は...続きを読む

Aベストアンサー

申し訳ありません。会社で、サンプルを作成して、帰宅時間になったので、あまり確認せずに、提示してしまいました。
今は、自宅で、再度確認し、修正版を提示いたします。


Dim tmp_dat5 As Date
Dim tmp_dat6 As Integer
Dim cnt As Integer
Dim max As Integer
Dim nen As Integer
Dim getu As Integer
Dim sname As String
Dim tmp_day As String
Dim tmp_getu As String
Dim shop As String
nen = Sheets("Work").Range("A1").Value
getu = Sheets("Work").Range("B1").Value
If getu = 12 Then
nen = nen + 1
getu = 1
Else
getu = getu + 1
End If
tmp_dat5 = DateValue(nen & "/" & getu & "/01")
tmp_dat5 = tmp_dat5 - 1
tmp_dat6 = Day(tmp_dat5)
shop = Sheets("Work").Range("A2").Value
nen = Sheets("Work").Range("A1").Value
getu = Sheets("Work").Range("B1").Value
tmp_getu = Right("0" & getu, 2)
For cnt = 11 To tmp_dat6
tmp_day = Right("0" & cnt, 2)
sname = shop & nen & tmp_getu & tmp_day
Sheets("雛形").Select
Sheets("雛形").Copy Before:=Sheets("雛形")
ActiveSheet.Name = sname
Sheets(sname).Range("L1").Value = nen & "/" & tmp_getu & "/" & tmp_day
Next cnt
nen = Sheets("Work").Range("A1").Value
getu = Sheets("Work").Range("B1").Value
If getu = 12 Then
nen = nen + 1
getu = 1
Else
getu = getu + 1
End If
tmp_getu = Right("0" & getu, 2)
For cnt = 1 To 10
tmp_day = Right("0" & cnt, 2)
sname = shop & nen & tmp_getu & tmp_day
Sheets("雛形").Select
Sheets("雛形").Copy Before:=Sheets("雛形")
ActiveSheet.Name = sname
Sheets(sname).Range("L1").Value = nen & "/" & tmp_getu & "/" & tmp_day
Next cnt

申し訳ありません。会社で、サンプルを作成して、帰宅時間になったので、あまり確認せずに、提示してしまいました。
今は、自宅で、再度確認し、修正版を提示いたします。


Dim tmp_dat5 As Date
Dim tmp_dat6 As Integer
Dim cnt As Integer
Dim max As Integer
Dim nen As Integer
Dim getu As Integer
Dim sname As String
Dim tmp_day As String
Dim tmp_getu As String
Dim shop As String
nen = Sheets("Work").Range("A1").Value
getu = Sheets("Work").Range("B1").Value
If getu = 12 T...続きを読む

Qエクセルで日付が入力されたセルの隣のセルの金額を合計するにはどうするのでしょうか。

A1、C1、E1セルにはユーザー定義(d”日”)で数字を入れると日付になります。
各、隣セルB1、D1、F1には金額が入力されています。
G1には合計が入るようになっています。
例えば、A1とE1に日付が入力された時、B1とF1の合計がG1に。
その後、C1に日付が入力されたらG1がB1、D1、F1の合計になるようにしたいです。
よろしくお願いします。

Aベストアンサー

こんばんは!
横からお邪魔します。

G1セルに
=SUM((A1>0)*B1,(C1>0)*D1,(E1>0)*F1)
ではどうでしょうか?m(_ _)m

QエクセルのワークシートAの1列目(A列)の日付と、ワークシートBの1列

エクセルのワークシートAの1列目(A列)の日付と、ワークシートBの1列目(A列)の日付を一致させて1つのワークシートに纏める方法を探しています。

2つの時系列データがあるのですが、データA(為替データ)とデータB(株式データ)のデータ管理方法が下記のように異なっています。

データA(為替データ)・・・1週間のうち6日間(月曜から土曜まで)
データB(株式データ)・・・1週間のうち5日間(月曜から金曜まで)

おのおのワークシートのA列に日付が入っています。

データAは月曜から土曜までなので、1週間に6行要します。データBは月曜から金曜なので1週間に要するのは5行です。従って、単純にこの2つのデータを張り合わせるだけでは(データBをデータAのシートに張り合わせた時)、1週間に要する行数が違うので1行ずつずれてしまいます。

1週間に要する行数の違いだけでなく、マーケットが休みの日はデータそのものがないため日付が存在しません。(マーケットの休みもおのおの別の日でバラバラです。)

これらの理由により、ただ単に張り合わせるだけだとずれが広がるばかりです。

そこでデータAの日付とデータBの日付を認識して一致させる関数を教えて欲しいと思います。

データAの構成はA1=日付、B1=始値、C1=高値、D1=安値、E1=終値で、データBの構成も同じです。
データAのF1にデータAのA1と同じ日付のデータBの行を貼り付るように設定したいと思っています。

説明が分かり辛い場合は補足しますので、その際はご指摘下さい。

宜しくお願いします。

エクセルのワークシートAの1列目(A列)の日付と、ワークシートBの1列目(A列)の日付を一致させて1つのワークシートに纏める方法を探しています。

2つの時系列データがあるのですが、データA(為替データ)とデータB(株式データ)のデータ管理方法が下記のように異なっています。

データA(為替データ)・・・1週間のうち6日間(月曜から土曜まで)
データB(株式データ)・・・1週間のうち5日間(月曜から金曜まで)

おのおのワークシートのA列に日付が入っています。

データAは月曜から土曜までなので、1...続きを読む

Aベストアンサー

誤記がありましたね。ごめんなさい。

シートCのA2に
2010/1/1
を置いて下向けにえいやっとオートフィルドラッグ,365日の日付を並べておいて
B2:為替
=IF(COUNTIF(為替!$A:$A,$A2),VLOOKUP($A2,為替!$A:$E,COLUMN(B2)),"")
を右に下にコピー。
F2:株式
=IF(COUNTIF(株式!$A:$A,$A2),VLOOKUP($A2,株式!$A:$E,COLUMN(B2)),"")
を右に下にコピー。

これでマーケットの開いてなかった日付がエラーになることもありませんので,追加のご質問も解消でしょうか。

Q抽出結果で、合計と最新日付を得るには?

----A-----B-----C---
1 07/01 商品A 1,000
2 07/02 商品A 2,000
3 07/02 商品B 3,000
4 07/03 商品A 4,000
---------------------
のように、日付・品名・金額の列があり、
「商品A」の合計金額と、その合計した明細の最新日付を
出したいのですが、どうすればいいのでしょうか?

Aベストアンサー

合計は、
=SUMIF(B1:B4,"商品A",C1:C4)

最新日付は、
=MAX(IF(B1:B4="商品A",A1:A4))
と入力してから、CtrlキーとShiftキーを押しながらEnter

Q複数のワークシートEXCELで一つのワークシ-トだけ保存

EXCEL2000をつかっています。
10個ほど、ワークシートが作成してあるbookなのですが、あくまで雛型としてのワークシートなので、その都度どのワークシートを使うかは決まっていなく、保存する時(保存する時は違うファイル名)はその使った一つのワークシートだけ保存したいのです。
(通常どおりにbookまるごと保存すると容量が重くなるで困る)
そういうことって出来るのでしょうか?
たとえば「精算書」というファイル名(10個のワークシート)で、
ワークシート名1: 横浜
ワークシート名2: 川崎
ワークシート名3: 東京・・・・
という風に構成されているとき、
2枚目のワークシート(川崎)だけ、別のファイルとして保存するという意味です。
宜しくお願いします。

Aベストアンサー

 ワークシート名2: 川崎のシートの上で右クリックして,「移動またはコピー」
で「移動先ブック名」を新しいブックにして移動して保存するのはどうでしょうか。

Q日付をキーにその日付から前と後をそれぞれ金額を合計する方法が知りたいで

日付をキーにその日付から前と後をそれぞれ金額を合計する方法が知りたいです。
SUMIFかSUMPRODUCTあたりの関数を使えばいいかなと思うのですが、いい方法が思いつきません。
よろしくお願いいたします。

Aベストアンサー

ちょっと、完璧にイメージできてないですが画像の上部にある日付の右にその日付未満(以下)と以上(それより新しい日付)の合計でいいんでしょうか?

日付をシリアル値と思えばSUMIFで条件式に不等式を入れれば可能です。

A1に軸となる日付が入ると仮定して

軸となる日付以前の日付
=SUMIF(日付データのある範囲,"<="&a1,金額のある範囲)

軸となる日付以降の日付
=SUMIF(日付データのある範囲,">"&a1,金額のある範囲)

どちらに軸となる日付を入れるかは不等号の=をどちらに入れるかです。

SUMPRODUCTでも出来ると思うけど、重くなりそうなので省略します。
きっと、別の方が答えてくれるでしょう。

Qエクセルの折れ線グラフで体重推移のグラフを作って、X軸に日付を入れまし

エクセルの折れ線グラフで体重推移のグラフを作って、X軸に日付を入れました。16~30日までの日付を入れたいのですが、どうしてもX軸が1~15になってしまうのですが、16~30にするにはどうすればよいでしょうか。やり方を知っている方、教えてください。

Aベストアンサー

>どうしてもX軸が1~15になってしまうのです

その状態から,次のようにします。または,体重のセル範囲だけを選んで折れ線グラフを描かせ,最初は1から15が表示されている状態でグラフを描いてから,次のようにします。

[2003までのエクセルの場合]
グラフを選択
グラフメニューの元のデータを開始
系列のタブを開き
「X/項目軸に使用する」欄に,希望の「16日~30日を記入したセル範囲」を指定します。

[2007では]
グラフを選択,
データの選択の横(項目)軸ラベルの編集で希望の「16日~30日を記入したセル範囲」を指定します。
(添付図参照。エクセルのバージョンによって操作の段取りが随分変わります。お互いに二度手間を避けるため,必ずご相談投稿時にご利用のエクセルのバージョンまでしっかり明記してください)

Qエクセル 最新日付以外のデータを合計する

下表があるとしまして、
氏名日付買上金額
鈴木5月5日10
鈴木5月6日60
鈴木5月7日100
鈴木5月9日400
田中5月4日100
田中5月7日200
山田5月1日600
山田5月2日200
山田5月3日300
1970
氏名毎に、最新日付以外の合計を計算したいのです。
この場合、鈴木さんが170 田中さんが100 山田さんが800の合計1070がそれぞれの氏名の最新以外データの合計となりますが、これらを自動的に計算できないでしょうか?
よろしくおねがいします。

Aベストアンサー

こんにちは。

以下の方法でできます。
大きく分けて2ステップです。
データはあらかじめ日付順でソートされているものとします。


1)作業列を作る

最新データの場合のみ買上金額にかかわらず0を返し、
それ以外の場合は買上金額そのままを返す式を、
別な列に入力します。

たとえば例で言えばA~C列に氏名、日付、買上金額ですので、
D列を作業列としましょう。
D1セルに「買上金額2」などと見出しをつけてください。

D2セルに次の式を入力します。
 =IF(A2=A3,C2,0)
そしてこの式をすべての行にコピーします。
すると、最新データの行のみ、0となり、
それ以外の行は、買上金額が表示されます。


2)集計機能で名寄せして集計する

下準備ができたらいよいよ集計です。
リスト内にカーソルを置いた状態で、

 データ-集計

で、集計の設定画面が開きます。
ここで、
 「グループの基準」 を 「氏名」
 「集計の方法」 を 「合計」
を指定します。

そして、
 「集計するフィールド」では、
 「買上金額2」のフィールドにのみ、
チェックがつくようにします。

そして、OKを押せば自動的に集計されます。

こんにちは。

以下の方法でできます。
大きく分けて2ステップです。
データはあらかじめ日付順でソートされているものとします。


1)作業列を作る

最新データの場合のみ買上金額にかかわらず0を返し、
それ以外の場合は買上金額そのままを返す式を、
別な列に入力します。

たとえば例で言えばA~C列に氏名、日付、買上金額ですので、
D列を作業列としましょう。
D1セルに「買上金額2」などと見出しをつけてください。

D2セルに次の式を入力します。
 =IF(A2=A3,C2,0)
そしてこの式を...続きを読む

Qシートをたくさんコピーするには?シートを日付順にコピーするには?

こんにちは、みなさん!!

エクセルのシートのコピーについて

Q1、シートのコピーはコピーするシートをクリックして
Ctrlキーを押しながら右側へドラッグすると1つコピーできますが、1つだけではなく、10個ですとか、20個など多数のコピーを1回ですることはできますでしょうか?

Q2、シート名が例えば「1月1日」とあった場合に、これを1月2日、1月3日・・・・・というように、連続してコピーすることはできませんでしょうか?

以上ご存知の方いらっしゃいましたらよろしくお願いします。

Aベストアンサー

> 1枚のシートのコピーを複数作成する、ということです。マクロ以外には方法はありませんでしょうか?

あまりエクセルは使わないのでわかりませんが、
おそらく無いでしょう。

普段、業務で使うブックにマクロがあるのがイヤなら、
マクロだけのブックを作り、使いたいときだけ、そのブックも開き、マクロの実行が終わったら閉じてしまう、という手もあります。


人気Q&Aランキング