ジメジメする梅雨のお悩み、一挙解決! >>

お世話になります。
エクセルで、予約表を自己流で作成しました。
横に(列b~)時間15:00~・16:00~1時間ごとに21:00まで区切っています。
縦は6/5(月)6/6(火)6/7(水)と1週間で一区切りで表を作りました。
1時間6コマ(?)ずつ分かれており、それぞれお客様の1週間の予約状況の管理のため予約時間を集計したいと考えています。
どのような関数で1週間のそれぞれのお客様の予約数をカウントできるのでしょうか?
つたない説明で申し訳ございません。
宜しくお願い致します。

「エクセル シート全体の項目をカウントした」の質問画像

A 回答 (2件)

質問文に十分な説明があるので、図が多少見づらくても、


まあ大丈夫。

しかし、質問文には15:00からとなっているのに、図では12:30からとなっているのが非常に気になる。
(え?…ここ突っ込みいれるところでしょ)


・・・本題・・・

これ、面倒ですから別に集計用のシートを追加して、そのシート上で演算をします。

やっていることは複雑そうで実は単純という、コケ脅しです。

まず、
D41セルに
 =COUNTIF(Sheet1!$D41:D41,Sheet1!D41)
と入力して、それをL41セルまでコピー(複製)する。
(この数式の「Sheet1」はその表がある実際のシート名に置き換えてください。さすがに図からは読み取れない)
 ※これは同じ値がいくつ入力されているかを数える基本的な方法です。
  コピー元とコピー先の数式がどのように変わっているのかを確認しつつ、挙動を理解しておきましょう。

その後、D41セルからL41セルの範囲を選択して、46行までコピー(複製)する。

続いて M41セルに
 =SUMPRODUCT((D41:D46=1)*1+(E41:E46=1)*1+(F41:F46=1)*1+(G41:G46=1)*1+(H41:H46=1)*1+(I41:I46=1)*1+(J41:J46=1)*1+(K41:K46=1)*1+(L41:L46=1)*1)
と入力します。
※SUMPRODUT関数は何をする関数かと言うと、
 縦方向に「品名」が並び、横方向に「単価」と「数量」がある表の合計金額を求める関数
 です。
 横方向に掛け算をして、その結果を縦方向に足し算するんです。
 これを念頭にSUMPRODUCT関数の使い方を調べて、基本の挙動を理解しておきましょう。
この数式の
 (D41:D46=1)*1
の部分は
 (D41=1)*1
の結果を「1」なら「1」、違えば「0」にしていることが分かると思います
(D41セルの値が「1」なら”True"、違えば”False”となるので、そこへ「1」を掛けることで”True”を「1」に、”False”を「0」に変換しています)
そして同様な方法で【強引】に横方向(E列、F列…L列)へ足し算をしていると理解できると思います。
更に
 (D41:D46=1)*1
ですので、42行から46行まで同じことが行われ、最後に合計が求められます。
(これで1日の予約数が求まります)

続いて D41セルからM46セルまでの範囲を選択し、必要な行までコピー(複製)する。

最後にN1セルに
 =SUM(M:M)
と入力して、このN1セルの値を使う。

・・・
この方法では1日に2回別々の予約であっても同じ名称で入力すると一つの予約としてカウントされます。
 A社様前半
 A社様後半
とか
 B様1期
 B様2期
と、別の表記になるよう留意してください。

逆に休憩時間などで予定表に空欄ができても同じ名称であれば一つの予約としてカウントすることができます。


・・・余談・・・

Outlookで管理したほうが良いように思います。
    • good
    • 0
この回答へのお礼

ありがとう

ありがとうございます。
項目の時間が入力間違えを投稿してから気が付きました。
申し訳ございませんでした。

カウントはできました(^^)/ありがとうございました。
あと、名前でカウントする(例えば田中さん週に何回来たのか?鈴木さんは何回という集計方法はできるのでしょうか?
別に質問を出した方がいいのでしょうか?

お礼日時:2017/06/15 19:30

ちょいとお尋ね。


その添付図、私のパソコンでは判読できないけど、貴方はWeb上で読み取れるのですか?
皆さんが判読容易なものを添付しませう!
    • good
    • 0
この回答へのお礼

ありがとう

申し訳ございません。大きさがあるんですよねぇ。勉強します。ありがとうございました。

お礼日時:2017/06/15 19:31

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

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

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

Qエクセル トラブル

ノートPCで昨日まで使えていたエクセル(Word等のoffice製品すべて)が使えなくなりました。。
エクセルを立ち上げようとしたら、
【C:Program Files(x86)\Microsoft Office\root\Office16\AppVlsvSubsystems32.dllはWindows上では実行できないか、エラーを含んでいます。元のインストールメディアを使用して再インストールするか、システム管理者またはソフトウェアの製造元に問い合わせてください。エラー状態0xc0000020。】
とポップが表示されます。

これはどういう状態でどういうエラーなのでしょうか?
また使えるようにするためには何をしたらよいでしょうか?
毎日エクセルを使うので大変困っています。。
よろしくお願いいたします。

Aベストアンサー

以下はお試しになりましたか?
https://support.office.com/ja-jp/article/%E3%82%A8%E3%83%A9%E3%83%BC-%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%AB-AppVIsvSubsystems32-dll-%E3%81%8C%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%80%81%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E9%96%8B%E5%A7%8B%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93-3e8e09b6-5500-41df-9497-e0fc3e3d781c

Qエクセル詳しい方!!お願いします! =IF(会計簿!$C$6=”13-ア”,”会計簿!$A$6”,I

エクセル詳しい方!!お願いします!

=IF(会計簿!$C$6=”13-ア”,”会計簿!$A$6”,IF(会計簿!$C$6=”13-イ”,”会計簿!$A$6”,IF(会計簿!$C$6=”13-ウ”,”会計簿!$A$6”,IF(会計簿!$C$6=”13-エ”,”会計簿!$A$6,””))))
の返しが会計簿!$A$6になるのを会計簿!$A$6に入力されている値にしたい!

Aベストアンサー

あらら・・・、今度は絶対参照にしていませんでした ><
=IF(OR(会計簿!$C$6="13-"&{"ア","イ","ウ","エ"}),会計簿!$A$6,"")

これが正解ですね _ノフ○)))グタリ

Qエクセル SUMPRODUCT関数について

SUMPRODUCT関数を使い、以下の合計を件数を出したいのですが、いろいろ調べてもよくわかりませんのでご教示をお願いいたします。(エクセル2010使用)

【やりたいこと】
以下の表を使用し、「みかん」と「ばなな」を購入した件数を月ごとに合計して表示する関数を作りたい。4月の合計件数はB8セル、5月はB9セル、6月はB10セルに表示できるようにします。

     (A列)  (B列)
(行) 種類  購入日
 1  みかん 4月3日
 2  ばなな 4月15日
 3  りんご 5月6日
 4  りんご 5月30日
 5  ばなな 6月7日
 6  みかん 6月9日
 7
 8 【結果】 4月 2
 9      5月 0
10      6月 2

よろしくお願いします。

Aベストアンサー

こんにちは!

今回の質問の場合は「OR」条件になりますので、足し算にする必要があります。

↓の画像ではA8~A10セルの表示形式をユーザー定義から
0月
とし、単に4とか5という数値のみを入力しています。

B8セルに
=SUMPRODUCT((MONTH(B$1:B$6)=A8)*(A$1:A$6="みかん"))+SUMPRODUCT((MONTH(B$1:B$6)=A8)*(A$1:A$6="ばなな"))

という数式を入れフィルハンドルで下へコピーすると
画像のような感じになります。m(_ _)m

Q1つのSUMIFSをSUMで括った数式の意味について

エクセル2010を使っている者です。

会社で使っているファイルで
=SUM(SUMIFS(合計!J:J,合計!G:G,{"1000","9000"},合計!H:H,"<=160",合計!F:F,5000))
という数式を使っていました。

SUMIFS関数はSUM(合計)の意味を含んでおり、SUMで括る意味がわかりませんでした。
(SUMの中に複数のSUMIFSを入れているのであれば、SUMIFS(・・・)+SUMIFS(・・・)という
意味になり理解できるのですが)

また、{}の意味もわかりません。

どなたか、ご教示願います。

Aベストアンサー

SUMIFS(合計!J:J,合計!G:G,{"1000","9000"},合計!H:H,"<=160",合計!F:F,5000)
を数式バー内で選択して[F9] 配列の結果が返ります。1行2列
それを合計するSUMです。
G列が1000 または 9000の場合で、かつ
H列が160以下で かつ
F列が5000 であるJ列を合計しなさい

G列が1000、かつ
H列が160以下で かつ
F列が5000 であるJ列を合計したものと
G列が9000、かつ
H列が160以下で かつ
F列が5000 であるJ列を合計したものを足しなさい
でもよいです

Q【追加質問】SUMIFとOFFSETの組み合わせについて 先日、下記にて質問をさせていただき解決した

【追加質問】SUMIFとOFFSETの組み合わせについて

先日、下記にて質問をさせていただき解決したのですが、一部ご教授いただいた数式で反映されない部分があり、原因がわからず再度質問させてください。

https://oshiete.goo.ne.jp/qa/9797530.html

前回質問添付画像参照。
合計の表のE68数量、E69売上、E70仕入、E73粗利についてはご教授頂いたSUMIFの式を、E71売上単価、E72仕入単価については平均単価を求めたいのでSUMIFをAVERAGEIFに変えて入力しましたが、反映されない部分がありました。
数量だけ反映されて、売上以下が数値が反映されなかったり、全て反映されなかったりと原因がわかりかねている状況です。
何が原因で反映されないのか?ご教授いただければ幸いです。

Aベストアンサー

>添付頂いた②の画像(前の商品のあと1行はさんで次の商品となります)が希望する表です。
となりますと、-10を-9に修正すればよいということでしょうか?

はい、そうなります。
算出したい行(合計の数量の行)の9行前が最後の商品の数量になりますので、-9になります。

Qexcelで条件に合うよう、複数のセルの合計を求めたい

例えば、次のように並んでいるセルの数値があるとします。

1515
2748
540
5509
2195
680
7142
305
5042
530
667
325
9950
4800

その合計が30000以上で、かつ、最小の数字となるよう、複数のセルを選択したいと思いますが、これを実現できる関数はありますか?

Aベストアンサー

いわゆる「ナップザック問題」と呼ばれる種類の問題になると思います。

14個を選択する/しないなら、総当りしても16384個ですから、力技でも行けるかも。
画像を参考に、
1行目にデータの数値を横並び。
2行目に0~13の固定値を右から
3行目に2の0乗~2の13乗(8192)の固定値を右から
A列に0~16383の固定値
で、

B4:O16387の範囲に、
B4:=MOD(INT($A4/B$3),2)
をコピペして2進数の各桁の値を

P4:P16387の範囲に、
P4:=SUMPRODUCT($B$1:$O$1,B4:O4)
をコピペして、2進数の各桁のビットとデータの数値の積和

で、全16384通りの計算が行われるので、A4:末尾を選択して並べ替えすると、
合計が30002となる、
1515
2748
2195
680
7142
305
667
9950
4800
が確認できるとか。

--
もっと数値の数が増えると、この方法では厳しいので、

ナップザック問題をExcelで解く
http://www.geocities.co.jp/SiliconValley-Oakland/8139/

みたいなプログラムで解くような事になります。


条件が違うのでプログラムはそのまま使えませんが、似た質問。

エクセルで、「袋詰め問題」を解きたい - Excel(エクセル) 解決済 | 教えて!goo
https://oshiete.goo.ne.jp/qa/1255891.html

いわゆる「ナップザック問題」と呼ばれる種類の問題になると思います。

14個を選択する/しないなら、総当りしても16384個ですから、力技でも行けるかも。
画像を参考に、
1行目にデータの数値を横並び。
2行目に0~13の固定値を右から
3行目に2の0乗~2の13乗(8192)の固定値を右から
A列に0~16383の固定値
で、

B4:O16387の範囲に、
B4:=MOD(INT($A4/B$3),2)
をコピペして2進数の各桁の値を

P4:P16387の範囲に、
P4:=SUMPRODUCT($B$1:$O$1,B4:O4)
をコピペして、2進数の各桁のビットとデータの数値の積...続きを読む

Qエクセル IF関数 同じ半角空白文字なのにFalse判定

エクセル2010
Windows10 を利用しております。

あるテキストファイルAとテキストファイルBから文字列をコピーしてA列とB列に張り付けて
それぞれの行の差異を確認するために、A列とB列の違いを確認しているときに
A列のセルも、B列のセルも、同じ半角空白文字列は入っている行があるのですが
=IF(INDIRECT("A"&Row())=INDIRECT("B"&Row()),True,Flase)
の関数で、Falseが返されてしまいます。

このA列とB列の半角文字列のそれぞれの正体を知りたいのですが
何か良い調べ方はありますでしょうか?

何卒、ご教授くださいませ。

Aベストアンサー

MID関数で1文字ずつ切り出して、その文字をCODE関数に入れて比較かな。

表示できない文字を含んでいることも考えられます。
その場合、CLEAN関数に入れて比較したり、TRIM関数に入れて不要な空白を削除して比較することで正しく判断できるかもしれません。

Qエクセルを開いて文字を打つ際、いきなりローマ字入力したい

素のエクセルを開いて文字を打つ際、いきなりローマ字で入力することはできるのでしょうか。

エクセルを開いた後に「半角/全角」を押せばいいとか、「入力規則の設定を変更すればいい」とかではなく、素のエクセルを開いた時に最初からローマ字入力する方法を知りたいのです。

入力規則で入力方法を変更したファイルを開くとローマ字から始めることはできるようですが、設定変更したファイル(例えば設定変更したファイルをデスクトップに保存したものを開くといったこと)ではなく素のエクセルを開いて任意のセルにローマ字入力する方法はないのでしょうか。

Aベストアンサー

こんばんは。

>エクセルを開いた時には「タスクバー」右端のアイコンは「A」になっています。
>これを「あ」の状態で開きたいのです。

最初に、#4についてのフォローアップをさせていただきます。ご質問者さんは、試してみないうちに、自分の推測で判断されたようです。インスタンスという用語はご存知でしょうか。

インスタンスとは、鯛焼きの型(モールド)があれば、同じ形の鯛焼きがいくつもできます。同じ形に出来上がった、食べられる方の鯛焼きのことを、インスタンスといい、鯛焼き型のほうを、クラスと呼びます。#4さんのXlStartに入れたテンプレートはその元の型を意味しています。

XlStart フォルダーに入れたものは、テンプレートとして、新しく生成させるブックのインスタンスを作り、IMEがコントロールされるのであって、その都度、設定されたファイルを開けるのではありません。新規のブックに適用されます。ただし、既存のブックには適用されないのではないかと思います。

それをより具体的にしたものが、VBAで可能です。しかし最近は、こうしたコードをお教えしても、興味を示さない人が多いようです。アドインにしてしまえば、その機能だけに着目しますので、そのコード自体は気にならないはずですが、コードをみると恐れをなしてしまうかもしれません。(アドインにするためには、もう少しコードを加えなくてはなりませんが)

#4さんと同じ発想には基づいていますが、それをVBAでインスタンスを取り付けるわけです。新規ブックでも、既存のブックでも、それ自体には影響はしませんし、一切いじる必要性がありません。

参考:
[XL95]日本語入力システムのオン/オフを制御する方法
https://support.microsoft.com/ja-jp/help/407890

これを、そのまま取り付けても、
>素のエクセルを開いて任意のセルにローマ字入力する方法はないのでしょうか。
ご希望のようにはならないのです。そこで、個人用マクロブックに、クラスのインスタンスを設けるという形になります。別に個々のファイルを書き換える必要はありません。
たかが、このためにこんな長いコードが必要かと思われるでしょうが、プログラムというものはこんなものだということです。たったひとつのボタンを押す行為を、自動で行うようにするためには、こういうことも必要なのです。

'//32bit 用です。
''標準モジュール
Public myClass As New Class1
 Public Declare Function ImmGetContext Lib "imm32.dll" (ByVal hWnd As Long) _
     As Long
 Public Declare Function ImmReleaseContext Lib "imm32.dll" _
     (ByVal hWnd As Long, ByVal himc As Long) As Long
 Public Declare Function ImmSetOpenStatus Lib "imm32.dll" _
     (ByVal himc As Long, ByVal b As Long) As Long
 Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal _
     lpClassName As String, ByVal lpWindowName As String) As Long

Sub Auto_Open()
 Set myClass.App = Excel.Application
End Sub

''Class1

Public WithEvents App As Application

Private Sub App_NewWorkbook(ByVal Wb As Workbook)
 ImeActivate
End Sub

Private Sub App_SheetActivate(ByVal Sh As Object)
ImeActivate
End Sub

Private Sub App_WindowActivate(ByVal Wb As Workbook, ByVal Wn As Window)
ImeActivate
End Sub

Private Sub App_WindowDeactivate(ByVal Wb As Workbook, ByVal Wn As Window)
 ImeActivate
End Sub

Private Sub App_WorkbookActivate(ByVal Wb As Workbook)
ImeActivate
End Sub

Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
  With ActiveSheet  '入力セルを認識させる
   On Error Resume Next
    ActiveCell.Activate
    ActiveCell.Select
   On Error GoTo 0
  End With
  ImeActivate
End Sub

'必要に応じてイベントマクロを増やします。

Function IMEControl(ByVal nMode As Long)
   Dim ClassName As String, WindowName As String
   Dim hWnd As Long, IMC As Long, ret As Long
   ClassName = "XLMAIN"
   'WindowName = Application.Caption '不要
   hWnd = FindWindow(ClassName, vbNullChar)
   IMC = ImmGetContext(hWnd)
   ret = ImmSetOpenStatus(IMC, nMode)
   ret = ImmReleaseContext(hWnd, IMC)
End Function
Sub ImeActivate()
If VBA.IMEStatus = vbIMEModeOff Then
   Call IMEControl(1)
End If
End Sub

こんばんは。

>エクセルを開いた時には「タスクバー」右端のアイコンは「A」になっています。
>これを「あ」の状態で開きたいのです。

最初に、#4についてのフォローアップをさせていただきます。ご質問者さんは、試してみないうちに、自分の推測で判断されたようです。インスタンスという用語はご存知でしょうか。

インスタンスとは、鯛焼きの型(モールド)があれば、同じ形の鯛焼きがいくつもできます。同じ形に出来上がった、食べられる方の鯛焼きのことを、インスタンスといい、鯛焼き型のほうを、クラス...続きを読む

QSUMIFとOFFSETの組み合わせについて

OFFSET関数初心者の為、ご教授願います。

添付したような売上管理表があります。
月の行から粗利の行まで8行で作成されている表が何行もあります。
そして、一番下に合計の表があり、SUMIF関数で集計を出しているのですが
今後、商品2、商品3といったように新規で売上が発生すると、この8行の表を
コピーして挿入で増やしていくことになります。

その際、参照先の行が可変するので都度、数式を変えなくても行が追加になったら
合計のSUMIF関数の参照先が自動的に変わるようにしたいです。
ちなみに、合計、実績の列ともに参照先可変としたいです。
現時点、下記の数式で処理をしています。
=SUMIF($C$4:C54(C列の項目参照),$C68(数量),E$4:E54(実績)の列を参照)
数量以下、同様の数式です。

何卒、よろしくお願いいたします。

Aベストアンサー

No2です。
No2で、E列が変わっても、対応できるようにしました。(E→Hの場合にも対応)
=SUMIF(INDIRECT("$C$4:$C"&ROW()-10),INDIRECT("$C"&ROW()),INDIRECT(ADDRESS(4,COLUMN(),4)&":"& ADDRESS(ROW()-10,COLUMN(),4)))

Q縦に連続する空白セルをカウントしたい。

週40時間勤務計算のために「縦に連続する空白をカウントしたいです。」

Aベストアンサー

考えた式の戻り値が正しいことを検証するために答となる数値を全部書いてください。
それを何処に表示させるのかもネ!


人気Q&Aランキング

おすすめ情報