[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『sumproductでtrueを返す行の情報を取得する』(+チック)
お世話になります。
現在、シート「詳細記入表」に予定を記載すると、シート「予定一覧表」に、その日の予定件数を反映するというカレンダーを制作しています。
詳細記入表
C D E --- H --- M --- 4 10月予定 5 業者名 施工日 邸名 商品名 予定 6 A店 1 加藤邸 ○○ 予約 7 A店 1 鈴木邸 ○× 確定 8 A店 1 9 A店 2 諏訪邸 ×× 予約 10 A店 2 11 A店 2
96 A店 31 佐田邸 ○○ アフター 97 A店 31 98 A店 31 99 B店 1 大島邸 ×× その他 100 B店 1 101 B店 1
3499
予定一覧表
B C D E F G --- AG 4 1 2 3 4 5 31 ←施工日 5 A店 2 1 0 0 0 1 6 B店 1 0 0 0 0 0 - - - 29
予定一覧表のC5には、その日に入っている予定の件数を数えるため、以下の数式を入れ、AG29までオートフィルしています。
=SUMPRODUCT((詳細記入表!$M$6:$M$3499={"予約","確定","アフター","その他"})*(詳細記入表!$C$6:$C$3499=予定一覧表!$B5)*(詳細記入表!$D$6:$D$3499=予定一覧表!C$4))
(ちなみに、詳細記入表のM列にはこの4つの値以外は使用しません)
ここまで作成したところで欲が出てしまったのですが、例えばこの例で言うと予定一覧表のC5セルをダブルクリックしたときに、メッセージボックスでその日に入っている予定を
加藤邸 ○○ 予約 鈴木邸 ○× 確定
というような形で表示することなどは出来ますでしょうか?
要は、上の数式でtrueを返している行の情報を表示したいということなのですが・・・・・・。
よろしくお願いします。
< 使用 アプリ:Excel2000、使用 OS:WindowsXP >
月単位のようなので、年、月情報はなく日付の数字だけの管理と思います。 またメッセージボックスということなので、マクロの要望でしょうか。
面白そうだったので、とりあえずのサンプルです。 下記をダブルクリックするシートモジュールにおいてください。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim corpName Dim dayNum dayNum = Cells(4, Target.Column).Value corpName = Cells(Target.Row, "B").Value
Dim res Dim r As Long With Worksheets("詳細記入表") For r = 6 To .Cells(.Rows.Count, "C").End(xlUp).Row If .Cells(r, "C").Value = corpName And .Cells(r, "D").Value = dayNum Then res = res & IIf(res = "", "", vbNewLine) res = res & .Cells(r, "E").Value res = res & " " & .Cells(r, "F").Value res = res & " " & .Cells(r, "G").Value End If Next End With If res = "" Then res = "予定はありません" MsgBox res
Cancel = True End Sub
(Mook) 2014/09/16(火) 16:30
ありがとうございました。
(+チック) 2014/09/16(火) 19:25
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.