条件AでなおかつBの数字の個数を数える関数かVBA

このQ&Aのポイント
  • Excel 2010で、条件AでなおかつBの数字の個数を数える関数かVBAを使いたいです。
  • 質問のデータには日付、地方名、県名、数字のあるセルの情報があります。同じ県名でも日付が変われば何回も出てくるものとします。数字が1~6まであり、同じ県名ごとに1~6の個数を数えた表を作りたいです。
  • 具体的には、近畿の大阪の場合、数字の1が2個、2が3個、3から6までは0個です。これをすべての県名ごとに計算し、最終的に表形式で表示したいです。
回答を見る
  • ベストアンサー

条件AでなおかつBの数字の個数を数える関数かVBA

関数で難しいならVBAでよろしくお願いします。 Excel 2010です。 日付 地方名 県名 数字のあるセル→以下続く 1/1 近畿 大阪 1 2 1 2 1 2 1 2 2/1 四国 愛媛 1 3 4 5 6 2 3/1 中国 山口 1 2 3 4 5 6 3/2 近畿 兵庫 2 1 2 3 4 5 3/3 近畿 大阪 3 2 1 2 3 4 4/1 中国 山口 6 5 4 3 2 1 2 1 1 1 1 1 6 ・以下続く ・ ・ ・ 数字が1~6まであるとして、同じ県名も日付が変われば何回も出てくるものとします。 1つ目の近畿の大阪の行では数字の1が2個、2が3個、3から6までは0個 というように数えていき、同じ件名なら1が合計~個というようにしていき最終的に以下の表にしたいです。 1の個数 2の個数 3の個数 ・・・・6の個数 近畿 大阪 近畿 兵庫 四国 愛媛    ・    ・    ・ どういう関数あるいはVBAを使えばいいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.1

>どういう関数あるいはVBAを使えばいいでしょうか? SUMPRODUCT関数でカウントできます。 添付画像はExcel 2013で検証したものですが、他のバージョンでも再現できるはずです。 S2セルへ次の数式を設定して右と下へオートフィルコピーすれば良いでしょう。 =SUMPRODUCT(($B$2:$B$11&$C$2:$C$11=$R2)*($D$2:$P$11=S$1)) 元データの行数は2行目から11行目の10行分になっていますので、実際のデータ数に合わせて数式を変更してください。 また、R2=B2&C2として文字列の連結を行って、下へ必要数オートフィルしてから重複を削除しました。 目的から推測して地方名の照合を必要としないでも良いと考えられますので、その時はR列をC列からコピーし、重複の削除を行えばよいでしょう。 その時はR列との比較はC列のみで良くなります。

KAIJI-000
質問者

お礼

前回に引き続きご回答有難うございます。画像のおかげで分かりやすかったです。

関連するQ&A

  • VLOOKUP関数をVBAで書くには

    EXCEL VBAの初心者です VLOOKUP関数をVBAで書きたいのですが、よくわかりません すいませんがどなたかご教授、願えないでしょうか? sheet1     sheet2 A    B  A    B      名称 CD    名称 CD 滋賀県 25     滋賀県  25 京都府 26     大阪府 27 大阪府 27 兵庫県 28     兵庫県 28 sheet2のA列をキーにsheet1のA列と照合して sheet2のB列にsheet1で一致した行のB列をコピーする VLOOKUP関数を使うと、sheet2のB2は =IF($A2="","",VLOOKUP($A2,Sheet1!$A$2:$B$5,2,0)) としたら、25を得ることができました VBAでする場合、どのように書けばいいのでしょうか? よろしくお願いします

  • VBA:小数点以下の数字を取得できる関数は?

    VBAで、小数点以下の数字を取得できる関数または、それに必要な関数を教えていただけたらと思います。たとえば、 1.325…から0.325  3.256224から0.256224 5.23549から0.23549を取得。 といった感じです。(取得する値はdouleで桁数は不定です。)よろしくお願いいたします。

  • EXCEL関数でセルの数値の個数を求めたい

    以下のように各セルに入力されている場合に各セルに含まれる "," を除いた数字の個数の合計を求めたいのですが、どのようにすればできるでしょうか。 以下の場合ですと、 1行目 3個 2行目 2個 3行目 3個 で、8個という結果を得たいです。 LEN(substitute(A1,",","")) や (LEN(A1)+1)/2 などで一つ一つのセルに含まれる数値の個数は出せますが、列全体の個数の合計を求めたいです。 ---- 列A 行1-> 3,6,9 行2-> 2,5 行3-> 2,8,11 ※入力規則として、数値を","で区切ります。 ※列を追加して上の関数を各行に設定した上で合計を出す方法以外で。

  • VBAとメッセージ関数

    こんばんは。 VBA初心者で、勉強中です。 今、エクセル2003で以下画像のようなシートを作成しました。 B列に商品の納品日、C列に売上日があります。 そこでVBAで、売上日の列の日付を検索し、 直近の売上日(一番古いものから)から一番最後の売上日(一番新しい日付)までを 以下のようにmsg関数で画面表示したいのです。 売上日:1/2~4/4 データ検索はA列の店舗名が空欄になるところまでとします。 今は手作業でやっているので大変です。 よろしくお願いします。

  • EXCEL VBAで行う複数の検索条件に合致する行の個数のカウント方法について

    すいません EXCEL VBAで教えていただきたいことがあります。    A列  B列 1行:野菜  秋物 2行:果物  秋物 3行:穀物  夏物 4行:野菜  夏物 5行:野菜  春物 6行:穀物 秋物 7行:果物  夏物 8行:野菜  秋物 ・・・以下300行まで続く というデータがあるとして、A列が「野菜」、B列が「秋物」に合致する 行の合計個数をカウントするのはどうしたらよろしいんでしょうか。 関数だとデータベース関数を使えば何とかできそうな感じなのですが VBAだと、どうもいいアイデアが浮かびません。よろしくお願いいたします。

  • 複数条件での値参照をする関数

    Excel2007を使っています。 以下のような表があります。 店番  月度  個数 111     4    1 111     5    0 113     4    0 112     4    1 113     5    2 別のシートに以下の表があります。 店番  4月個数  5月個数 111 112 113 この4月個数の列と、5月個数の列に関数で値を参照させたいと思います。 店番をA1セルとすると、B2セルには店番が111の4月の個数を表示させたいです。 B2に =IF(ISERROR(VLOOKUP(A2,元!A:B,2,0)),"",IF(VLOOKUP(A2,元!A:C,2,0)<>4,"",VLOOKUP(A2,元!A:C,3,0))) C2に =IF(ISERROR(VLOOKUP(A1,元!A:B,2,0)),"",IF(VLOOKUP(A1,元!A:C,2,0)<>5,"",VLOOKUP(A1,元!A:C,3,0))) このような式を入れると、4月か5月どちらか上に書いた方しかデータが表示されませんでした。 更新ボタンやトリガーを使わずにできるといいので、ピボットやVBAではなく関数でやりたいと思っているのですが、どのようにすれば良いか分かりません。 使える関数があれば、ぜひ教えて下さい。

  • 甲状腺の治療 近畿圏内か四国圏内でお薦めの病院は?

    甲状腺の治療に優れた病院を近畿圏内で探しています。 実家が四国なので四国でも探しています。 兵庫県の「隈病院」か 大阪府の「すみれ病院」を候補に挙げていますが どうでしょうか? ご存知の方がいらっしゃれば教えてください。 他にも近畿圏内か四国圏内で お薦めの病院がありましたら情報を頂ければ幸いです。 宜しくお願いします。

  • 全国高校軟式野球大会のブロック分けについて・・

    全国高校軟式野球大会のブロック分けについて・・ 北海道、北東北、南東北、北関東、南関東、東京、北信越、東海、近畿、大阪、兵庫、東中国、西中国、四国、北部九州、南部九州 の16ブロックに分けて予選が行われるみたいですが、この分け方って硬式の地方ブロックとはかなり違いますね。 これについて、詳しく知りたいです。 各地方の南北、東西の境界線、また、東京・大阪・兵庫は関東・近畿の中では別枠扱いなのか、また何故この3都県だけ分けられているのか? 教えてください。

  • エクセル・関数について~(複数の)条件に応じた名称を表示する方法

    複数の条件に応じた名称を表示する方法を考えているのですが、なかなかうまくいきません。 田中  500 ~ 1000 山田  1001 ~ 1500 山口  1600 ~ 2000 といった感じでそれぞれ、名前・最小値の数字・最大値の数字をセルに記入しています。 たとえば、あるセルに「520」と入れたら、500以上1000以下に当てはまる値の「山田」と出てくるような関数はあるでしょうか? 名前のところは20件くらいあります。

  • エクセル 複数条件 VBA

    VBAと関数の両方を教えていただきたいです。 シート”DATA”に以下の入力フォームがあります。 A列には日付 B1には”りんご”、B2以降には数量 C1には”みかん”、C2以降には数量 D1には”なし”、D2以降には数量 シート”照会”に以下の照会画面があります。 B1には開始日、D1には終了日 A2には”りんご” A3には”みかん” A4には”なし” B2以降はそれぞれの開始日から終了日までの個数が入るようにしたいのです。 例えば、シート”DATA”に毎日10が入力されていて、シート”照会”のB1に1/1、D1に1/3と入力されたら30、B1はそのままでD1が1/10なら100と果物ごとに表示されるようにしたいのですが、どうすればよいでしょうか。 よろしくお願い致します。

専門家に質問してみよう