• 締切済み

Excelで抽出?カウント

VBAマクロや関数でデータの抽出とカウントをしたいんですが難しくて混乱したのでヘルプお願いします。 K29ア→K20に2 L29イ→L20に6 M29ア→M20に5 N29イ→N20に3 O29ア→O20に5 P29ア→P20に6 Q29イ→Q20に7 R29イ→R20に8 S29ア→S20に9 T29イ→T20に4 U29イ→U20に3 とありまして"ア"に関連するセルの数値を抽出して何の数値が何個あるか観れるようにしたいです。"イ"についてもそのようにしたいです。 お願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

関数はひらめきが必要な場合がある。 VBAもプログラムを組むのが面倒。 できれば「ピボットテーブル」が使えないか、まず考えるべき。 ーー k20:U20のセル範囲をコピーして、B列へ縦方向に貼り付け。ただしその時、「形式を選択して貼り付け」-「行と列を入れ替える」を使う。 k29:U29のセル範囲をコピーして、A列へ貼り付け。ただしその時、「形式を選択して貼り付け」-「行と列を入れ替える」。 ーー 結果サンプルデータとして、A1:B12に 分類  計数 ア 2 イ 6 ア 5 イ 3 ア 5 ア 6 イ 7 イ 8 ア 9 イ 4 イ 3 ができる。 普通は、スタート時に、このようなデータで考えることが多かろう。 ーー 挿入ーピボットテーブルーOK ーー 「行」へ「分類」をD&D 「Σ値」へ「計数」をD&D 結果別シートに 行ラベル データの個数 / 係数 ア 5 イ 6 総計 11 ができる。 そのB列の「合計/計数」をコピーして、並べてC列に貼り付け ーー B列を選択、して右クリック 「値フィールドの設定」をクリック 「データの個数」を選択 ーー 行ラベル データの個数 / 係数 合計 / 係数 ア 5 27 イ 6 31 総計 11 58

961awaawa
質問者

お礼

imogasiさーん。お礼が遅くなりました。ありがとうございました。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>何の数値が何個あるか観れるようにしたいです どこに表示するのか指定が無いのでMsgBoxで表示しました。 Sub Test()   Dim myDic1 As Variant, myDic2 As Variant   Dim c As Range, d As Variant   Dim str1 As String, str2 As String   Set myDic1 = CreateObject("Scripting.Dictionary")   Set myDic2 = CreateObject("Scripting.Dictionary")   For Each c In Range("K29:U29")       If c.Value = "ア" Then       myDic1(c.Offset(-9).Value) = myDic1(c.Offset(-9).Value) + 1     ElseIf c.Value = "イ" Then       myDic2(c.Offset(-9).Value) = myDic2(c.Offset(-9).Value) + 1     End If   Next   For Each d In myDic1.keys     str1 = str1 & d & "は、" & myDic1(d) & "個" & vbCrLf   Next   MsgBox "アに関連する" & vbCrLf & str1   For Each d In myDic2.keys     str2 = str2 & d & "は、" & myDic2(d) & "個" & vbCrLf   Next   MsgBox "イに関連する" & vbCrLf & str2 End Sub

961awaawa
質問者

お礼

お礼遅くなりました。Watabe007さん、ありがとうございました。

  • msMike
  • ベストアンサー率20% (363/1770)
回答No.1

添付図参照 X21: =COUNTIFS($K$20:$U$20,$W21,$K$29:$U$29,X$20)

961awaawa
質問者

お礼

お礼遅くなりました。ありがとうございました。

関連するQ&A

  • Excelで質問ですが何処が間違ってますか?

    Excel2007のマクロで置き換えと言うか代入という表現が正しいのかは不明なんですが、次のことがしたいです。 1、セルK29からZ29までかそれ以上のセルの1つずつにデータが4つずつ入ってます。 2、それらのデータを、入ってる形によって別な記号に変えてK30からZ30までかそれ以上に入れたいです。 K29アイウエ→K30にA L29アイエウ→L30にB M29アウイエ→M30にC N29アイウエ→N30にA O29アウエイ→O30にD P29アエイウ→P30にE Q29イアウエ→Q30にF R29イアエウ→R30にG S29イウアエ→S30にH T29イウエア→T30にI U29イエアウ→U30にJ V29イエウア→V30にK W29ウアイエ→W30にL X29ウアエイ→X30にM Y29ウイアエ→Y30にN Z29ウイエア→Z30にO ……… と、この様になんですが。 で、 =IF(K29="","",MID("ABCDEFGHIJKLMNO",FIND(","&K29&",",",アイウエ,アイエウ,アウイエ,アウエイ,アエイウ,イアウエ,イアエウ,イウアエ,イウエア,イエアウ,イエウア,ウアイエ,ウアエイ,ウイアエ,ウイエア,")/4+0.75,1)) と関数でこの様に書きましたがなぜかズレていました。 何処が間違ってるか教えてください。

  • 順列・数え上げ

    よろしくお願いします。 ここに下のような390個の文字があります。 (A,B,C,D,E,F,G,H,I,J,K,L,M がそれぞれ10個ずつ、 N,O,P,Q,R,S,T,U,V,W,X,Y,Z がそれぞれ20個ずつあります。) この390個の文字から235文字を選んで一列に並べる方法は全部で何通りありますか。 A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z 以下、私が考えたことを書きます。 この390個の文字から235個の文字を選ぶ組み合わせの総数は、 (Σ[k=0~10]x^k)^13*(Σ[k=0~20]x^k)^13 を展開したときのx^235の係数ですから、 23463540513956137996043929988 通りだということは分かります。 この23463540513956137996043929988 通りのそれぞれについて235個の文字 の順列(同種のものを含む順列)を数え上げれば答えは出ると思いますが、これは あまりにも大変な作業です。 何かよい知恵はないでしょうか。

  • エクセルについて

    エクセルにおいて、下記のように1~5のみ残し、その他無くなった数字は見えなくする、もしくわ文字の色を白にして見えないようにしたいと思っています。   A B C D E F G H I J K L M N O P Q R S T U 1 0 0 0 0 0 1 2 3 3 3 3 3 4 5 5 5 5 5 5 5 5 2 0 0 1 2 2 2 2 3 4 4 5 5 5 5 5 5 5 5 5 5 5         ↓         ↓   A B C D E F G H I J K L M N O P Q R S T U 1 1 2 3 3 3 3 3 4 5 2   1 2 2 2 2 3 4 4 5 私は基本的な関数は使用出来ますが、VBAは勉強し始めたばかりです…。 良い方法をご教示頂ければと思っております。 よろしくお願いいたします。 ※記入した例において、1~5の列がズレていますが、行も列も同じばしょのままでお願いします。

  • エクセル関数(追加質問)

    以前下記の内容で質問しましたが追加で解らないことが出ましたので回答よろしくお願いします。   A  B C D  E F  G H  I J  K L  M  N  O  P Q  R  S  T  U 1 名前1 80  50   51 X 54   80   85   90 51 1 90 2 141 2 7 2 名前2 79  50 X 52 X 53   88   89   91 50 2 91 1 141 1 8 このとき、      C~EのMAXをIに(×の場合は00.0で計算)      F~HのMAXをJに(×の場合は00.0で計算)      (※C~Hの前には×を入れるためのセルあり)      I,J,K共にBの数値が小さいほうが上位に来る      (※I,Jの後ろには、順位を入れるセルあり)      Kは、I+J      Lは、Kの計に対する順位      O1またはQ1が「0(ゼロ)」の時S1に「0(ゼロ)」と表示したい       は解決しましたが、追加で下記の関数をどなたかご回答ください    質問1     O1が0の時Pが空白     Q1が0の時Rが空白     S1が0の時Tが空白   以前下記の関数で回答いただいたのですが、B欄に数値が入ると空白になりません   S1: =IF(OR(O1<0,Q1<0),0,SUM(ROUNDUP(O1,1),ROUNDUP(Q1,1))-B1/10^13)   質問2    S=O+Q、T=Sの順位、U=Sに対する得点(1位=8点、2位=7点・・・以下8位=1点まで)  重複しますが、  T欄の1位にはU欄に8点、T欄の2位にはU欄に7点、T欄の3位にはU欄に6点、T欄の4位にはU欄に5点、T欄の5位にはU欄に4点、T欄の6位にはU欄に3点、T欄の7位にはU欄に2点、T欄の8位にはU欄に1点、T欄の9位以下にはU欄には空白 この場合の関数を回答お願いします。       列がずれていて見にくいです。すみません。

  • OCRで文字変換したいのですが。

    Brother 複合機 DCP-595CN 使用。スキャン項目の三段目 OCR:テキストデータ変換で 本の文字を読み取り wordに写しその文字を自由にフォントやサイズを変えたい。  PCは MacBook Air バージョンは Yosemite 10.11 から Hi Sierraの 10.13.8 に変えました。 以下はできてこんなところです! c c r y O w r n e a n a s h a r k k n o w s y o w % ' l t @ e ' b o y r & s @ e d , h a r d l y a b t e t o c r e d i t h i s h e a r i n g , T h e w o m a n n o d d e d , n o t l o o k i n g a t a n g r t h i n g b u t h e r s k i r t . P a u l o ' s b r e a t h e x p l o d e d " B u t t h a t ' s i m p o s s i b l e ! " T h e w o m a n p a u s e d t o r a i s e b l a c k e y e s i . n u r o n d e r , c ' Y o u h a v e n e v e r h e a r d o f m e @ " s h e a s k e d . P a u l o w a s a t a l o s s t o a c c o u n t f o r t h e w o m a n ' s c a s u a l a c c e p t a n c e o f t h e s h a r k ' s p r e s e n c e A l l k n e w s 3 h a r k s w e r e a m e n a c e ! Y e t t h i s o d d o   ※OKWAVEより補足:「ブラザー製品」についての質問です。

  • エクセルで集計式をコピペすると対照せるがずれ込むのを防ぎたい。

    A1 a A2 数値データー A3 数値データー A4 A2*A3 B1 c B2 数値データー B3 数値データー B4 B2*B3 C1 b C2 数値データー C3 数値データー C4 B2*B3 * * k1 a C2 数値データー C3 数値データー C4 B2*B3                        L4 sumif(A1:k1,”a”,A4:L4) M4 sumif(A1:k1,”b”,A4:L4) N4 sumif(A1:k1,”c”,A4:L4) O1   O2        O3        O4 * * R1   R2        R3        R4 S4 T4 U4 S4 T4  U4に対してL4 M4 N4 からコピーしてくると ずれるのを防ぐ方法はありますか? (O~Sの集計をさせたい) 列数は集計のたび変わります 都度sumif関数を入力するのが面倒に加えて列がスクロール するほどある 印刷は特に考えておりません 可能であれは集計の累計も出して行きたいのです(L4+S4) 説明をうまく書けませんが・・・・

  • EXCELで抽出

    EXCELで選択範囲を入力すると、ランダムで問題を抽出するテストを作りたいと思っています。 以前ここで質問させていただき、親切な方々のおかげで無事英単語テストを作成出来ました。 今回違うものを作ろうと奮闘中なのですが、どうしても分からないところが出てきたので教えて下さい。 現在EXCELで A2 番号   1~1380まで B2 問題文 C2 選択肢1 D2 選択肢2 E2 選択肢3 F2 選択肢4 G2 日本語訳 H2 解答正解番号 I2~I1381 乱数=RAND() J2~J381 順位 =IF(AND(ROW()-1>=$K$2,ROW()-1<=$K$3),RANK(I2,OFFSET($I$2,$K$2-1,0,$K$3-$K$2+1)),"") K2 選択範囲 始め K3 選択範囲 終わり M2~選択した単語番号 =IF(ISNA(MATCH(ROW()-1,$J$2:$J$1380,0)),"",MATCH(ROW()-1,$J$2:$J$2591,0)) N2~ 選択した問題文 =IF(M2="","",VLOOKUP(M2,OFFSET($A$2,$K$2-1,0,$K$3-$K$2+1,3),2,0)) O2 選択肢(1) =IF(M2="","",VLOOKUP(M2,OFFSET($A$2,$K$2-1,0,$K$3-$K$2+1,3),3,0)) P2 選択肢(2) Q2 選択肢(3) R2 選択肢(4) こういうデータがあり、K2とK3で選択した範囲(たとえば10~30等)を入力するとその範囲でランダムに重複ない選択範囲内の問題が抽出されるようなものを作りたいのですが、選択肢(2)~(4)の式がうまく出来ません。 やり方を教えていただけないでしょうか。よろしくお願いします。

  • エクセルで連続した回数をカウントする方法は?

    筋トレなど、ある習慣を続けている回数を表示したいと思っています。 ○が行った日で、×が休んだ日です。この場合、AG4に3と表示するようにしたくて、 その後、7日が×で8日、9日と○が続いたら場合は、AG4には2と表示したいのです。    A     B   C   D   E   F   G    H I J K L M N O P Q R S T U V W X Y Z AA AB AC  AD  AE  AF   AG 3 筋トレ   1日 2日 3日 4日 5日 6日・・・                                   29日 30日 31日 連続回数 4         ○  ○ ×   ○  ○  ○ わかりにくいと思いますが、よろしくお願いします。

  • 表から指定した行のみを別シートに抽出するには

    エクセル2002 ある表から、集計表として別のシートに行を抽出できる関数をおしえてください。 【シート1】      O列  P列  Q列  R列  S列  T列  U列    行9  種類  厚さ   w    H  枚数  か所   計 行10    行11 AAA  t6.8  1500  2000   3    3     9   | | 行15 AAA   t3   1000  2000   2    1     2 行16 bbb   t6.8  500   1500   1    3     3  : : という表から別のシートに 集計表として 【シート1】集計表AAA     O列  P列  Q列  R列  S列  T列  U列    行3  種類  厚さ   w   H   枚数 か所   計 行4  AAA  t3   1000  2000   2    1    2 行5  AAA  t6.8  1500  2000   3    3    9  | | 行15 AAA   t3   1000  2000   2    1    2 行16    : のように抽出する関数を教えてください。 出来れば集計表の横に種類ごとに選択したら、種類ごとに表示が変わるようならばよいのですが。。。  関数初挑戦のため大変なことになりそうな気もします。。。   皆様、ご教授のほどよろしくお願い致します。

  • 光と電子の相互作用の計算について

    こんにちは、下記はmathematicaで、ランダウの「相対論的量子力学」P404の式f(s、u)を計算したものです。プログラムの概要は、残念ながら800文字以上になるので書かれません。、、、、その後、下記を作用させて、式を整理しました。 k0^2-k1^2-k2^2-k3^2->0;j0^2-j1^2-j2^2-j3^2->0; p0^2-p1^2-p2^2-p3^2->m^2;q0^2-q1^2-q2^2-q3^2->m^2; k0*p0-k1*p1-k2*p2-k3*p3->1/2*(s-m^2)/.-k0*p0+k1*p1+k2*p2+ k3*p3->-1/2*(s-m^2); k0*q0-k1*q1-k2*q2-k3*q3->1/2*(m^2-u)/.-k0*q0+k1*q1+k2*q2+ k3*q3->-(1/2*(m^2-u)); p0*q0-p1*q1-p2*q2-p3*q3->(m^2-t/2)/.-p0*q0+p1*q1+p2*q2+ p3*q3->-(1/2*(m^2-u)); j0*p0-j1*p1-j2*p2-j3*p3->1/2*(m^2-u)/.-j0*p0+j1*p1+j2*p2+ j3*p3->-1/2*(m^2-u); j0*q0-j1*q1-j2*q2-j3*q3->1/2*(s-m^2)/.-j0*q0+j1*q1+j2*q2+ j3*q3->-(1/2*(s-m^2)); k0*j0-k1*j1-k2*j2-k3*j3->(-t/2) /.-k0*j0+k1*j1+k2*j2+k3*j3->(t/2); 更に最後にm=0としました。すると、計算結果は、 (1/s^2)*(4*(2*k2^2*p0*q0 + 2*k3^2*p0*q0 + 2*k1^2*(p0*q0 - p1*q1) - 2*k2^2*p2*q2 - 2*k2*k3*p3*q2 - 2*k2*k3*p2*q3 - 2*k3^2*p3*q3 - k2*q2*s - k3*q3*s + k2*p2*u + k3*p3*u - k1*(2*k2*(p2*q1 + p1*q2) + 2*k3*(p3*q1 + p1*q3) + q1*s - p1*u)))となりました。この結果に、どのような法則を使用すれば答えを纏めf(s、u)が得られるのでしょうか?

専門家に質問してみよう