エクセルデータで縦に日数、横に時間で日にち別時間別データが顧客の数だけ1つのシートにまとめて送られてきます。
そのデータがA1からW300まであったとすると、11月は30日までなので、1番目の顧客のデータではW30のセルの値がその月の合計値とします。次の顧客の合計値は日数の間隔なのでW60になります。あとは30行毎に各顧客の合計値があります。
現在は月によって行数の間隔が違ってくるので、結局毎月手作業で数値を拾うことになっています。
このように、月によって変動する間隔でも、顧客の合計値を抽出する関数はないでしょうか?その月の日数を決まったセルに入力すれば、算出できるという数式でもかまいません。
宜しくお願いします。
No.1
- 回答日時:
> 11月は30日までなので、1番目の顧客のデータではW30のセルの値がその月の合計値とします。
これは変です。日データーが30行あるので、合計行があるならば、それは31行目のはずで、
次は32-61行、その合計は62行目、となるはずです。
月の日数を求める場合は、
「次月の1日の前日を示すシリアル値から「日」を求める」が一般的です。閏年でも適用できます。
次に、データーの顧客順番リストから「順番」を求めてそれを乗じれば、
開始行と末尾行、あるいは合計行が計算できます。
ありがとうございます。開始日が、案件によってバラバラなので、その点も悩みです。月によって日数が違いますが、開始行と末尾行を設定しうまくそこにデータを張り付けて合計を出してます。
No.2ベストアンサー
- 回答日時:
一つずつ手作業で確認をするとき、どんな手順で処理をしていますか?
その手順通りにマクロなり関数なりを記述すれば良いのです。
11月は30日まで…をどうやって調べたらいいのか分からない。
ということであれば「12月1日の1日前が11月の末日」であることを利用すれば良い。
11月の翌月の1日から1日前の日付を求めれば良いってこと。
これは、うるう年でも正確に日数を求めてくれるので便利です。
=DAY(”2018/12/1”-1)
=TEXT(”2018/12/1”-1,"dd")
とでもしてみてください。
”2018/12/1”の1日前の日付けを表示してくれます。
2018/12/1の部分は
DATE(2018,11+1,1)
としても良いでしょう。
「2018年11月の翌月の1日」
ってことです。
さらにこのまま引き算を省略するために
DATE(2018,11+1,0)
としても良いでしょう。
するとこうなります。
=DAY(DATE(2018,11+1,0))
=TEXT(DATE(2018,11+1,0),"dd")
年(2018)と月(11)がデータのどこか決まったセルに入力されているなら、
そのセルを参照させれば毎月決まった処理をさせることができます。
これで11月は「30日(30行)」毎にデータが並ぶと判断させられます。
・・・
のように一つずつ不明点を解決しながら処理方法を考えましょう。
「代わりに作って」
は【疑問の解決】ではなく、単なる【作業依頼】です。
・・・余談・・・
ちなみに自分ならW列のデータを30行毎に拾う場合は
OFFSET関数か、INDIRECT関数を使って拾います。
OFFSET関数の場合
1件目
=OFFSET(W1,DAY(DATE(2018,11+1,0))*1-1,0,1,1)
2件目
=OFFSET(W1,DAY(DATE(2018,11+1,0))*2-1,0,1,1)
3件目
=OFFSET(W1,DAY(DATE(2018,11+1,0))*3-1,0,1,1)
…
100件目
=OFFSET(W1,DAY(DATE(2018,11+1,0))*100-1,0,1,1)
INDIRECT関数の場合
1件目
=INDIREXT(”W"&DAY(DATE(2018,11+1,0))*1)
2件目
=INDIREXT(”W"&DAY(DATE(2018,11+1,0))*2)
3件目
=INDIREXT(”W"&DAY(DATE(2018,11+1,0))*3)
…
100件目
=INDIRECT(”W"&DAY(DATE(2018,11+1,0))*100)
ありがとうございます。INDIRECT関数は初めてなので、挑戦してみます。
また経過を報告させてください。ありがとうございます。
No.3
- 回答日時:
エクセルの関数とフィルター機能を使ったやり方を紹介します。
◆前提
データはA1からW300まであるとします。
1行目は見出し行になっているものとします。
1行目が見出し行でなければ追加して見出し行にして、連番を入れておきます。
A列は見出し列になっているものとします。
A列の顧客ごとの合計値が記入されているセルに、共通の語句(たとえば『合計』など)が記載されていると便利です。
◆手順
1.データ最下行から2行下の行(1行あける)に集計値を記載します。セルB302に『=SUBTOTAL(9,B2:B300)』を入力して、右方向にコピペします。(W列だけでよいのかもしれませんが…)
2.1行目が見出し行になっていなければ、行を追加して連番を入れておきます。(見出し行になっていれば不要)
3.1行目全体を選択して、メニュー → データ → フィルター とします。
4.A1セルに表示された▼マークをクリックして、テキストフィルター → 指定の値を含む → 合計値共通の語句を入力して → OKをクリック。
共通の語句がない場合は、合計値の項目にのみチェックをつけます。
5.最下行のSUBTOTAL関数を入れたセルに、表示セルの合計値が表示されます。(完了)
※添付図参照です。
ちなみに、フィルターをなくして全表示する際は、データ → クリア(フィルターの右隣) とします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Access(アクセス) 対象月の2桁表示について 1 2023/01/07 05:08
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Excel(エクセル) エクセルデータ。容量を減らすにはどうしたらいい? 11 2022/12/22 09:01
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける (再質問) 4 2022/09/14 22:51
- Excel(エクセル) EXCELピボットテーブル関数について 2 2023/04/10 20:35
- Excel(エクセル) 至急です><Excelの関数を教えてください。 2 2022/03/22 17:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数の文字列のいずれかが含ま...
-
Excelの入力規則で2列表示したい
-
列の数字に100をかけたい
-
別のセルに値が入力されたら、...
-
エクセルでセルの値分の個数の...
-
【EXCEL】指定したセルの値を他...
-
数式が入ったセルを含めて、数...
-
エクセルで1列全部10倍したい
-
スペースとスペースの間の文字...
-
Excelにて、セルをダブルクリッ...
-
エクセルで住所の番地順に並べ...
-
Excel上でのデータ数字が連番で...
-
エクセルで公平にチーム分けす...
-
エクセルのsumifでかけ算してか...
-
エクセル:横長の表を改行して...
-
エクセルで表示されている数字...
-
エクセル セル内の文字数を超え...
-
エクセル バージョンによって...
-
エクセルで特定の文字だけ抽出...
-
C列にF列の担当者(A〜)を順番...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数の文字列のいずれかが含ま...
-
Excelの入力規則で2列表示したい
-
SUMに含まれる範囲から特定のセ...
-
数式が入ったセルを含めて、数...
-
Excel上でのデータ数字が連番で...
-
列の数字に100をかけたい
-
スペースとスペースの間の文字...
-
別のセルに値が入力されたら、...
-
エクセルで表示されている数字...
-
エクセルでセルの値分の個数の...
-
エクセル:横長の表を改行して...
-
[関数について]わかる方教えて...
-
エクセル関数に詳しい方教えて...
-
エクセルで、毎日の走行距離(...
-
エクセルのsumifでかけ算してか...
-
HYPERLINKとADDRESSとMATCHの組...
-
エクセルで曜日に応じた文字を...
-
入退社日より各月末の在籍者数...
-
エクセルで1列全部10倍したい
-
エクセルで小数を含む数値の抽出
おすすめ情報
ありがとうございます。日データが31行目になるのはわかっていましたが、回答をいただくうえで区切りのいい数字のほうが私が理解しやすいと思いまして、そのようにしました。
また、顧客ごとに番号があるので、その番号から各顧客の合計値を検索はできないでしょうか?
ぜひ教えていただいた関数をご教授ください。よろしくおねがいします。