【エクセル】エクセル2003で下記内容を計算させる方法を教えて下さい。よろしくお願い致します。
A----B----C----A`----`B`----C`
山田---10---5---山田----10----11
鈴木---10---5---山田----22----6
伊藤---20---4---伊藤----20----4
川上---15---4---伊藤----10----8
伊藤---10---8---川上----15----12
山田---10---6---鈴木----10----5
山田---22---6
川上---15---8
上記内容で
1.Aの中に「同じ文字」があり、Bも「同じ数値」の場合はCの数字を合計してA‘、B‘、C‘のセルに表示
2.Aの中に「同じ文字」があり、Bは「違う数値」の場合はCの数字を個別に表示
3.Aの中に「違う文字」があり、Bは「同じ数値」の場合はCの数字を個別に表示
4.Aの中は「文字」です!数値ではありません。しかも文字には規則性がなくランダムに続きます
5.例文は8行ですが複数行続きます
http://www.atmarkit.co.jp/fwin2k/win2ktips/359pivot/pivot.html
@IT:Windows TIPS -- Tips:ピボットテーブルでクロス集計を行う
ピボットテーブルを使えば一発です。
A,B,Cの先頭に行の名前をつけておいて、
ピボットテーブルのデータ範囲を $A:$C にして、
行のフィールドに A をドラッグ
列のフィールドに B をドラッグ
データアイテムに C をドラッグすれば
クロス集計できます。
何故マクロを受け入れないのか明確にした方が良いです。
単純に使い方が分からないのだとすれば、
マクロの使い方を学習&質問した方が良いと思います。
せっかく回答も貰っていますし、
今後Excelを使用する上でも遙かに有用だと思います。
...余計なお世話ですが。
質問の内容については、A’B’C’に表示する項目数が実行前に
明らかでないのでかなり難しい(私には無理)です。
並べ替えを間に何回か挟めば関数だけでもできるかもしれませんが...。
以上おせっかいでした。
関数だけで やるなら別のセルに 取得したい条件を入れるような作業が必要となる。
やっぱ、クロス集計にはピボットテーブル。
いやなら、Accessでやればいいとおもぅよ。
前回のキャンセルした質問にも、今回の質問にも書きましたが、Aの「文字」という意味が、数値を入力されているなら除外するという意味か、単に文字が入力されているという意味なのかが分かりません。明記して下さい。
1つのセルに収まる関数だけでは不可能です。データの抽出(質問文でA’,B’のデータを作る方法)ができません。
ソートを掛けられ、作業用の列が設けられるなら可能ですが。ただし、これなら文字なのか数値なのかチェックはできません。
急いで作成したので手操作+VBAとなってしまいましたが
「Sub Macro1()」の直後に以下のVBAをコピペすれば全て自動で出来ます。
’ナンバリング
Columns(1).Insert
Xbef = 1: Ybef = 1 ’元データの座標
Do
Cells(Ybef, Xbef) = Ybef
Ybef = Ybef + 1
Loop Until Cells(Ybef, Xbef + 1) = ””
’ソート
Cells(1, 1).Select
Selection.Sort Key1:=Range(”B1”), Order1:=xlAscending, Key2:=Range(”C1”), Order2:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin
ただ特別な理由があってその他の手操作(ソートとか)なしでワークシート関数のみでとなるとちょっと思いつきません。