- ベストアンサー
EXCEL関数で複雑なデータの集約方法を教えてください
- EXCEL関数を使用して、左の表の特定の条件を満たすデータを右側の表に集約したいです。
- 特定の項目や日にち、摘要の条件を満たすデータを抽出し、別のセルに表示したいです。
- 具体的には、項目が「入金」もしくは「振込入金」で日にちが「1」で、摘要欄に「(株)」が含まれ、さらに「手数料」と「振替」という語句がある場合に、G1のセルに「株式会社・手数料・振替」と表示したいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 解釈が違っていたらごめんなさい・・・ 質問の中に >摘要欄に”(株)”が含まれているかつ、”手数料”という語句がある場合かつ”振替”という語句がある場合に、G1のセルに”株式会社・手数料・振替”」という語句が表示されるようにするにはどうしたらよろしいでしょうか・・・ とあるのですが、「かつ」という語句が使われているのですが、 普通に解釈すると「(株)・手数料・振替」という三つ文字がある場合のみ条件に一致する!ということになるかと思います。 画像の表内でそのような条件の行はないように思われますので、 もしかして、「OR」の条件かな?と思って顔をだしてしまいました。 そうであれば、あくまでヒントとしてですが、 ↓の画像に作業用の列を設けています。 作業列E2セルは =IF(ISNUMBER(FIND("入金",A2)),1,"") これでA列に「入金」という文字が含まれている行に「1」が表示されます。 F2セルに配列数式になりますので、Shift+Ctrl+Enterキーで確定してください。 =IF(OR(ISNUMBER(FIND($I$2:$I$4,D2))),1,"") これでD列のセルにI2~I4セルに入力した文字が含まれていればF列に「1」が表示されます。 G2セルは =IF(COUNTBLANK(E2:F2)>0,"","株式会社・手数料・振替") これは配列数式ではありません。 最後にE2~G2セルを範囲指定し、G2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 尚、質問には日にちが「1」の条件が含まれていますが、 集約する場合SUMPRODUCT関数でそれは選択できると思いましたので 敢えて、ここでは条件に加えていません。 (日にちが「1」以外でも他の条件に一致するものもあるかとおもいます。) 以上、長々と書きましたが お役に立つかどうか判りません! 的外れなら読み流してくださいね。m(__)m
その他の回答 (1)
- hallo-2007
- ベストアンサー率41% (888/2115)
>ひとつでも出来れば、後は応用なので他のセルは何とか自分で出来るかと思います。 といえども、そのほかにも多数組み合わせがあるのですよね。 作業列と対応表を準備したほうがわかりやすく、メンテナンスも簡単と思います。 例えば、E列に =A2&IF(COUNTIF(D2,"*(株)*")*1,"株式会社",D2) といれて下までコピィします。 (株)△△ とかは株式会社に置き換えてA列とD列の文字をつなぎ合わせると 必要な組み合わせがわかると思います。 別途 L,M列に 組み合わせ 対応 入金株式会社 株式会社・手数料・振替 振込為替 株式会社・手数料・振替 ・・・ と対応表を作成します。 再度、E列には =Vlookup(A2&IF(COUNTIF(D2,"*(株)*")*1,"株式会社",D2),L:M,2,FALSE)&B2 として下へコピィすれば 株式会社・手数料・振替1 株式会社・手数料・振替2 ・・・ と表示されると思いますので G列はSUMIF関数で集計できると思います。 =SUMIF(E:E,G3&F3,C:C) 下コピィで如何でしょうか。