パターンがない表の値計算
MS excel2003で動作する、マクロを使用しない関数の組み合わせで次のような表内の値の合計を計算したいのですが、簡単でスマートな方法が思いつかず、質問させて頂きたいです。
A B C D E F G H
1 リンゴ 20 ブドウ 20
2 リンゴ 50 柿 10 リンゴ -20
3 みかん 20 みかん 30
4 リンゴ みかん -50
5 リンゴ 柿 -20
6 リンゴ さくらんぼ -20
この表は奇数列に品名がランダムに入っていてその隣の列に数量が入力されています。
どの行のどの列にどんな品名入力されているかは予想できません。
この表から入力されている品名を抽出してきて、それぞれの品名に対して値が+のものを集めての合計と、値がーのものを集めての合計とをそれぞれの出したいのです。
マクロを使っては出来たのですが、数式、関数だけを使って、そのコピペだけで他の同様の表にも対応出来る必要があります。
どうかいいアイディアをお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
とりあえず、集計範囲をA1:H100とした場合、次の式でいけると思います。
K1、K2セルに次の数式を入力し、下にオートフィルで引っ張ってください。
集計範囲を拡張することは可能ですが、安易に広くすると時間がかかって使い物になりません。
【K1セル】=SUMPRODUCT(($A$1:$G$100=$J1)*1,($B$1:$H$100<0)*1,$B$1:$H$100)
【K2セル】=SUMPRODUCT(($A$1:$G$100=$J1)*1,($B$1:$H$100>=0)*1,$B$1:$H$100)
No.3
- 回答日時:
こんばんは!
VBAでやれば簡単に出来そうですが、関数での方法をご希望だというコトですので一例です。
元データはSheet1の1行目からあり、Sheet2に表示するとします。
まずSheet1にデータ分の列数だけ作業用の表を作成します。
これは「品名」を重複なしに表示するための作業用の表になります。
↓の画像ではJ1セルに
=IF(AND(ISTEXT(A1),COUNTIF($A$1:A1,A1)=1),ROW()*1000+COLUMN(A1),"")
という数式を入れ列(元データと同じ列数)・行方向にコピーしています。
そしてSheet2のA2セルに
=IF(COUNT(Sheet1!J:Q)<ROW(A1),"",INDEX(Sheet1!A:H,INT(SMALL(Sheet1!J:Q,ROW(A1))/1000),MOD(SMALL(Sheet1!J:Q,ROW(A1)),1000)))
B2セルに
=IF(A2="","",SUMPRODUCT((Sheet1!A$1:G$1000=A2)*(Sheet1!B$1:H$1000>0),Sheet1!B$1:H$1000))
C2セルに
=IF(A2="","",SUMPRODUCT((Sheet1!A$1:G$1000=A2)*(Sheet1!B$1:H$1000<0),Sheet1!B$1:H$1000))
という数式をそれぞれ入れ、A2~C2セルを範囲指定 → C2セルのフィルハンドルで下へコピーすると
画像のような感じになります。m(_ _)m
No.2
- 回答日時:
こんにちは
すでに回答が出ていますが・・・
対象列数がそれほど多くなさそうなので、各列の組で求めた値を加算すればよさそうですね。
以下はA列の値が「リンゴ」かつB列が「正の値」のものを合計します。
=SUMPRODUCT((A:A="リンゴ")*(B:B>0)*(B:B))
あとはこれを応用することで、必要な値を求めることができるでしょう。
どうして求められるのかを書いていると長くなるので、検索などして調べてみてください。
(アンケート等の集計をする際にも便利な方法です)
No.1
- 回答日時:
A列とB列、C列とD列、E列とF列、G列とH列でそれぞれ集計した値を最後に合計すれば良いんじゃない?
またコピペ云々と言うことですので別シートで集計すればいい。
そこで参照するデータがあるシート名を変えれば良いような作りにすれば解決します。
・・・
さて、この手順の中で分からないことがありますか。
1つずつ解決を試みてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) エクセルで値ではなく関数を参照する方法 6 2023/03/19 00:50
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) 関数を教えてください。 2 2023/08/01 10:59
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
- Excel(エクセル) Excel2016 行間を詰めたい&同じカテゴリなら上位2つだけを表示したい 5 2022/06/03 12:19
- Excel(エクセル) 別シートに毎回異なるデータをコピーする 7 2022/06/24 09:02
- Excel(エクセル) エクセルの表でダブりを解消する方法を、教えてください。 5 2023/04/12 12:11
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
Excelのセルを飛ばして入力する
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excel 2019 のピボットテーブル...
-
エクセルの行の抽出について質...
-
【マクロ】エクセルにかいてあ...
-
スプレッドシート クエリ関数 1...
-
エクセルでセルに「氏名を入力...
-
MOS365 Excel Expert / Excel R...
-
excelの不要な行の削除ができな...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシートの関数VLOOKUP...
-
Excelで全角を半角にしたいので...
-
Excel初心者です。 詳しい方、...
-
エクセルの数式で教えてください。
-
4つのパターンを表示するEXACT...
-
スマートな関数を教えて下さい。
-
【Excel】セル内の時間帯が特定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報
表が正しくなかったです。
A B C D E F G H
1 リンゴ 20 ブドウ 20
2 リンゴ 50 柿 10 リンゴ -20
3 みかん 20 みかん 30
4 みかん -50
5 柿 -20
6 さくらんぼ -20 ブドウ -30