下記のような【予約シートA】があったとします。

----------------------------------
記帳日  予約日  何日後?
10/2   10/8   6
10/2   10/6   4
10/3   10/4   1
10/3   10/10   7
----------------------------------

「何日後?」のセルは、=(予約日-記帳日)とします。
更に、下記のような【集計シートB】があったとします。

----------------------------------
    1   2   3   4   5
10/3
10/4
10/5
10/6
----------------------------------

この【シートB】に、【シートA】の予約日から、何日前に予約をとったか、という計算式を入れることは可能でしょうか。
例えば【シートA】によると、10/6の4日前に予約がひとつ取れているので、【シートB】の「10/6」行、「4」列に「1」と
カウントするような計算式、ということです。

解りづらくてゴメンナサイ。必要がありましたら、補足しますのでご指摘ください。

A 回答 (2件)

予約シートAに作業列を加えてもよろしければ、


このやり方でいけると思います
  A     B     C
1 記帳日  予約日  何日後?
2 10/2   10/8   6

D行にこの作業列を追加(例としてD2に入力する式)D列全てにコピペ
 =B2&"&"&C2

予約シートB
「10/1」行、「1」列(ここのセルがB2ということで)
B2に下の式を入れて 計算式を入れたいところにコピペ
=COUNTIF(SheetA!$D:$D,$A2&"&"&B$1)

できると思いますがいかがでしょうか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました!
ANo.1、ANo.2いずれの方法でも成功しました!
どちらにも20P付与したいところですが不可能ですので・・・
先にご回答いただいた方から、ということでご了承ください。

お礼日時:2008/10/02 18:51

集計シートBのセルB2に


=SUMPRODUCT((予約シートA!$B$2:$B$5=$A2)*(予約シートA!$C$2:$C$5=B$1))
と入れてコピーでどうでしょう?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました!
ANo.1、ANo.2いずれの方法でも成功しました!
どちらにも20P付与したいところですが不可能ですので・・・
先にご回答いただいた方から、ということでご了承ください。

お礼日時:2008/10/02 18:51

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

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

Q【OpenOffice】 改ページプレビューで「新規シート」「シートコピー」をすると表示範囲(青線)が表示されない 【Excelでも?】

こんにちは、はじめまして。
OSはWindowsXPで、
office系ソフトは使用せず、
無料で見つけた「OpenOffice.org 3.1」を使用しています。
「表計算ドキュメント」についてどうしても解決出来ないので質問させて下さい。

便利なので「改ページプレビュー」を利用するのですが、
この状態で「新規シートの作成」もしくは「コピー」を行うと、
改ページ特有の青い線が表示されず、
全部がグレイになってしまうのです。

この青い線を表示させ、
グレイ部分を白色(=表示)するにはどうすれば良いのでしょうか?
検索して調べようにも、この青い線の事をなんと呼ぶのかもわからず…(すみません)
もうず~っと格闘しているのですが解決できません…
どうかアドバイス頂けないでしょうか…
(本当にあの青い線はなんと呼ぶのでしょうか…)

…ちなみに、今後officeの購入も検討しています。
「Excel」でもこのような状態になると考えると恐ろしいです。
もし「Excel」での解決方法をご存知の方がいらっしゃいましたら、
いっしょに教えて頂けるととてもありがたいです。

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

こんにちは、はじめまして。
OSはWindowsXPで、
office系ソフトは使用せず、
無料で見つけた「OpenOffice.org 3.1」を使用しています。
「表計算ドキュメント」についてどうしても解決出来ないので質問させて下さい。

便利なので「改ページプレビュー」を利用するのですが、
この状態で「新規シートの作成」もしくは「コピー」を行うと、
改ページ特有の青い線が表示されず、
全部がグレイになってしまうのです。

この青い線を表示させ、
グレイ部分を白色(=表示)するにはどうすれば良いのでしょ...続きを読む

Aベストアンサー

> 便利なので「改ページプレビュー」を利用するのですが、
この状態で「新規シートの作成」もしくは「コピー」を行うと、
改ページ特有の青い線が表示されず、全部がグレイになってしまうのです。

試してみましたが、ご質問のような現象は見られません。

「改ページプレビュー」の青い線は「印刷範囲」を示しています。
従って、適当なセル範囲を選択して、右クリックから「印刷範囲の指定」を指定すると、選択したセル範囲が太い青の線で囲まれると思います。

また、この太い青の線にマウスの先端を重ねると、2方向に小さな矢印に変化する場所があります。この状態で線をドラッグすると線の位置が移動して、印刷範囲を変更することができます。

新しいシートを挿入した場合は、何も入力されていませんので、シート全体がグレーになっていますが、何かを入力するとセルの背景が白くなります。

何かが入力されて印刷範囲が表示されたシートをコピーした場合は、当然ながら同じ位置に同じデータが入力されているはずですので、同じ範囲を示した「改ページプレビュー」表示のシートが表示されるはずです。

シートをコピーした場合は、コピーされたシートの名前は「Sheet1_2」のように、アンダーバーに数字の2が付加されますが、ご質問のコピーしたシートの名前はどうなっていますか?

上記の内容は、Microsoft Excelでも同じです。

> 便利なので「改ページプレビュー」を利用するのですが、
この状態で「新規シートの作成」もしくは「コピー」を行うと、
改ページ特有の青い線が表示されず、全部がグレイになってしまうのです。

試してみましたが、ご質問のような現象は見られません。

「改ページプレビュー」の青い線は「印刷範囲」を示しています。
従って、適当なセル範囲を選択して、右クリックから「印刷範囲の指定」を指定すると、選択したセル範囲が太い青の線で囲まれると思います。

また、この太い青の線にマウスの先端を...続きを読む

Q【VBA】シート1の入力表をシート2に並び替えて表示させたい【VBA】

はじめて質問させて頂きます。
駄文で伝わりづらいかと思いますが、大変困っておりますので、ご教授下さい。宜しくお願いします。

【シート1】

      商品コード
店舗コード 001  002 003
0000A  ¥1   ¥2  ¥3
0000B  ¥4   ¥5  ¥6
0000C  ¥7   ¥8  ¥9

【シート2】

店舗コード 商品コード 金額
0000A  001   ¥1
0000A  002   ¥2
0000A  003   ¥3
0000B  001   ¥4
0000B  002   ¥5
0000B  003   ¥6
0000C  001   ¥7
0000C  002   ¥8
0000C  003   ¥9

★実現したいこと
VBAを用いて、シート1にて入力した内容を、シート2のように並べ替えて表示したい。

★条件
店舗コード→可変(A列で上から拾いNULLまでループ)
商品コード→固定(上記例だと001~003の3つ)
金額→可変

以上です。当方VBA初心者ですが宜しくお願いします。

はじめて質問させて頂きます。
駄文で伝わりづらいかと思いますが、大変困っておりますので、ご教授下さい。宜しくお願いします。

【シート1】

      商品コード
店舗コード 001  002 003
0000A  ¥1   ¥2  ¥3
0000B  ¥4   ¥5  ¥6
0000C  ¥7   ¥8  ¥9

【シート2】

店舗コード 商品コード 金額
0000A  001   ¥1
0000A  002   ¥2
0000A  003   ¥3
0000B  ...続きを読む

Aベストアンサー

それほど詳しくはないですが、こんなかんじでしょうか

Option Explicit

Sub sample()
Dim y As Integer
Dim i As Integer
Dim x As Integer
i = 2
y = 3
Do Until Sheets(1).Cells(y, 1).Value = ""
For x = 2 To 4
Sheets(2).Cells(i, 1).Value = Sheets(1).Cells(y, 1).Value
Sheets(2).Cells(i, 2).Value = Sheets(1).Cells(2, x).Value
Sheets(2).Cells(i, 3).Value = Sheets(1).Cells(y, x).Value
i = i + 1
Next
y = y + 1
Loop

End Sub

それほど詳しくはないですが、こんなかんじでしょうか

Option Explicit

Sub sample()
Dim y As Integer
Dim i As Integer
Dim x As Integer
i = 2
y = 3
Do Until Sheets(1).Cells(y, 1).Value = ""
For x = 2 To 4
Sheets(2).Cells(i, 1).Value = Sheets(1).Cells(y, 1).Value
Sheets(2).Cells(i, 2).Value = Sheets(1).Cells(2, x).Value
Sheets(2).Cells(i, 3).Value = Sheets(1).Cells(y, x).Value
i = i ...続きを読む

Q"西暦 1933 年 6 月 20 日" のような日付をエクセルで1933/6/20に変換する。

"西暦 1933 年 6 月 20 日" のような日付をエクセルで1933/6/20のように取扱い可能なものに変換したいのですがよい方法がないでしょうか。

年と数字の間などの半角スペースなどが障害かと思います。

Aベストアンサー

こんばんは。

#5の回答者です。
>年のフォントの問題か数式ではうまくいきませんでしたがマクロではできました。
実は、私のところもそうだったのです。それで、年という文字を新たに入れ直したら、通ったのですが、大量だと大変ですね。

それで、マクロが設置できたのは、本当に、良かったなって思います。今回の方法は「正規表現(RegExp=Regular Expression)」というのですが、これが入れば、もう怖いものナシです。どんなものでも、数字を拾いだしてきます。後々で、修正するのが簡単なのです。欠点は、少し遅いということです。
どこの掲示板でも、「正規表現」を知っている人がいますから、こういう日付だと言えば、誰かが答えます。
.Pattern = ****** の部分を書き換えるだけで、ほとんど済ませられます。

>ただこの日付がいろいろなセルにあるのですが、選択したところのみを変換する、というふうにはできないでしょうか。

やっぱりそうなんだろうなって思いました。ふと、後で気になりました。
簡単に換えられます。

もしも、前のコードをそのまま使うならですが、以下をそのまま貼り付けてもよいです。
もともとは、実験的なものでしたから、今回のものが良ければ、そのまま、こちらに切り替えてください。

ただし、心のこりとしては、、平成・昭和・大正・明治の元号がついている場合と、それから、年号そのものがない場合は、対応出来ていません。必要な場合は、今のを元にして考えられると思います。それと注意点は、今のシステムを利用したものは、1900年以降になってしまいます。

変更点:
'-------------------------------------------
1.SUbの後の最初の名前を換えました。
2.3.「(コメント)ブロック」というのは、センテンスの先頭に「'(シングルクオート)」を書き入れただけです。むろん、削除してしまっても問題ないレベルです。
4.A1~A列のデータの終わりまでとあった所を、Selection.Cells に換えます。
セル上のみで、オートシェイプの上は、ダメです。
'-----------------------------------------------
2.3.を変えたことで、例えば、西暦があっても、なくても、1936年2月13日でも、1936・02・13 でも、西暦1936 年 2月13 日でも、数字の塊が、3つあれば、それを拾ってきます。


'//
Sub ChangingDate() '←名前は同じでなければなんでもよい
 Dim Matches
 Dim n As String
 Dim buf As String
 Dim c As Range
 With CreateObject("VBScript.RegExp")
  Application.ScreenUpdating = False
  For Each c In Selection.Cells '←このように書き換えるだけでよい。
   'If InStr(1, c.Text, "西暦") > 0 Then '←この制限を「'」でブロックします。
    n = c.Text
    .Pattern = "(\d{4})\D+(\d{1,2})\D+(\d{1,2})\D*"
    .Global = False
    Set Matches = .Execute(n)
    If Matches.Count > 0 Then
     With Matches(0).SubMatches
      If .Count = 3 Then
       buf = .Item(0) & "/" & .Item(1) & "/" & .Item(2)
       If IsDate(buf) Then
        c.Value = buf
        c.Value = c.Value
       End If
       buf = ""
      End If
     End With
    End If
   'End If  '←ここも「'」でブロックします。
  Next c
  Application.ScreenUpdating = True
 End With
End Sub
'//

こんばんは。

#5の回答者です。
>年のフォントの問題か数式ではうまくいきませんでしたがマクロではできました。
実は、私のところもそうだったのです。それで、年という文字を新たに入れ直したら、通ったのですが、大量だと大変ですね。

それで、マクロが設置できたのは、本当に、良かったなって思います。今回の方法は「正規表現(RegExp=Regular Expression)」というのですが、これが入れば、もう怖いものナシです。どんなものでも、数字を拾いだしてきます。後々で、修正するのが簡単なのです。欠点は...続きを読む

Qエクセルマクロについてお伺いします。 例なのですが、 A1に2016/6/9 B1に2016/6/1

エクセルマクロについてお伺いします。
例なのですが、
A1に2016/6/9
B1に2016/6/14
と入力したら、下記のようにその期間中の曜日に数字の1を表示させるようなマクロは可能でしょうか?


A B C D E F G H I
1 月 火 水 木 金 土 日
2 今週 1 1 1 1
3 来週 1 1

Aベストアンサー

「下記」の部分が表になってないので細かいところわかりませんが、
C1に
=today()

今週・月 のセルに
=IF(AND($A$1>=$C$1-WEEKDAY($C$1,3),$A$1<=$C$1-WEEKDAY($C$1,3)+6,WEEKDAY($A$1,11)=1),1,"")

来週・月 のセルに
=IF(AND($B$1>=$C$1-WEEKDAY($C$1,3)+7,$B$1<=$C$1-WEEKDAY($C$1,3)+13,WEEKDAY($B$1,11)=1),1,"")

と入力してください。
火曜日~日曜日は、各数式最後の「,1,"")」の部分を、火曜なら「,2,"")」、水曜なら「,3,"")」と増やしていってコピーしてください。

質問中の表だと1がたくさん表示されてますが、本文どおりですとこのようになります。

Qエクセルで特定の条件に一致した文字を抜き出す方法 シート1 4/1 シート2 1行目 4/1 4/2

エクセルで特定の条件に一致した文字を抜き出す方法

シート1
4/1

シート2
1行目 4/1 4/2 4/3
2行目 A B C

シート1の4/1と入力されているセルを指定するとシート2のAをシート1の4/1の下に表示するには関数をどう使えば良いですか?

Aベストアンサー

シート2の行と列を入れ替えることはできませんか?
↓こんな感じ

4/1 A
4/2 B
4/3 C

これであればvlookupを使ってシンプルにできます。


このカテゴリの人気Q&Aランキング

おすすめ情報