- ベストアンサー
エクセルでの関数をフィルハンドルで
色々と自分なりに調べてみたのですが、見つけることが出来ずご相談をお願いいたします。エクセル2003で =SUMIF('[日誌1月.xls]1日'!$G$5:$G$23,"a",'[日誌1月.xls]1日'!$I$5:$I$23) という関数を行方向にフィルハンドルした時に、"a"部分のアルファべットの文字をb,c,d,e・・・といった感じで替えていきたいのですが、何を入れ込んでいけばいいのか分かりません。 簡単な質問なのかもしれませんが、お分かりになられる方がいらっしゃいましたら、よろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
小文字でなければいけないのですか? セルA1に数式を入力し、"a" を A2 というようにセル番地に置き換えます。 =SUMIF('[日誌1月.xls]1日'!$G$5:$G$23,A2,'[日誌1月.xls]1日'!$I$5:$I$23) セルA1をB1から列方向に必要数コピー セル範囲が選択状態のまま 編集メニューの「置換」で = を # に「すべて置換」 #SUMIF('[日誌1月.xls]1日'!$G$5:$G$23,A2,'[日誌1月.xls]1日'!$I$5:$I$23) 同じく 2, を ", に「すべて置換」 #SUMIF('[日誌1月.xls]1日'!$G$5:$G$23,A",'[日誌1月.xls]1日'!$I$5:$I$23) 続けて 3, を 3," に「すべて置換」 #SUMIF('[日誌1月.xls]1日'!$G$5:$G$23,"A",'[日誌1月.xls]1日'!$I$5:$I$23) LOWER関数を使って小文字に変換する A2に、=LOWER(A1) A2をB2から最終セルまでコピー A2から最終セルをコピーして、その場で「形式を選択して貼り付け」の「値」で貼り付け #sumif('[日誌1月.xls]1日'!$g$5:$g$23,"a",'[日誌1月.xls]1日'!$i$5:$i$23) セルB2~列方向最終セルを範囲選択し、コピー セルA3に移動し、「形式を選択して貼り付け」で「行列を入れ替える」で貼り付け セルA2~行方向最終セルを範囲選択 # を = に「すべて置換」 =SUMIF('[日誌1月.xls]1日'!$G$5:$G$23,"a",'[日誌1月.xls]1日'!$I$5:$I$23) あと不要文字列式の残骸をを削除して作業終了です。 Excel2003なら、AからAAとかBHのような、2文字のアルファベットがIVまで扱えます。 Excel2007なら、AからXFDまで、3文字のアルファベットが扱えます。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
行で変化するのはROW()しかないので 例 データ A1:B10 a 1 c 2 a 3 b 4 c 5 a 6 b 1 d 3 d1に =SUMIF($A$1:$A$10,CHAR(ROW()+96),$B$1:$B$10) ト入れて下方向に式を複写。 結果 10 ->aの合計 5 ->b 7 ->c 4 ->d ーー ただし a-zまでに限る。 A列がa-z以外の文字になると使えない。 A列が2文字以上になると使えない。 d 1
お礼
ご回答いただきましてありがとうございます。 せっかく教えていただいたにもかかわらず、いまいち理解が できずまた、2文字以上を使うこともありまして・・・。 勉強不足で申し訳ございません。 ありがとうございました。
- gyouda1114
- ベストアンサー率37% (499/1320)
作業列を使ったらどうですか 例えば m列にa、b 、c、d、e ・・・・ =SUMIF('[日誌1月.xls]1日'!$G$5:$G$23,M1,'[日誌1月.xls]1日'!$I$5:$I$23) "a"部分を M1に
お礼
ご回答いただきましてありがとうございます。 今ある表をなるべくそのままで使用したいため(上からの指示です)、 どうにかと考えていますもので・・・ 申し訳ございません。 いざとなったら、表自体をやり替えます。 ありがとうございました。
- n_na_tto
- ベストアンサー率70% (75/107)
"a"のかわりに CHAR(CODE("a")+ROW(1:1)-1) にしたらどうでしょうか。 =SUMIF('[日誌1月.xls]1日'!$G$5:$G$23,CHAR(CODE("a")+ROW(1:1)-1),'[日誌1月.xls]1日'!$I$5:$I$23) ※列方向なら CHAR(CODE("a")+COLUMN(A:A)-1)
お礼
ご回答いただきましてありがとうございます。 勉強不足で大変申し訳ないのですが、教えていただきました CHAR(CODE("a")+ROW(1:1)-1)の意味が、色々と調べてみましたが いまいち理解できず、試してはみたものの反映ができませんでした。 列方向の変更まで教えていただいたにもかかわらず、 申し訳ありません。 もっと勉強してきます。
- hallo-2007
- ベストアンサー率41% (888/2115)
SUMIF関数ですが、合計する条件を項目にした行はないのでしょうか? 例えば A B 項目 合計 a b c と項目を準備して、=SUMIF('[日誌1月.xls]1日'!$G$5:$G$23,A2,'[日誌1月.xls]1日'!$I$5:$I$23) として下へフィルすればよいと思います。出来上がった表も見やすいと思いますが。
お礼
ご回答いただきましてありがとうございます。 表を作りこんだ後に、関数でどうにか・・・と考え作って しまいましたので、なるべくなら表の作り変えは避けたいかと・・・ もう無理だとなりましたら、改めて表を作り変えたいと思います。 ありがとうございました。
お礼
ご回答いただきましてありがとうございます。 さっそく試させていただきましたが、私の勉強不足のせいで "セルA3に移動し、「形式を選択して貼り付け」で「行列を入れ替える」で貼り付け"をしたらエラーが出たり、他の行で試してみても "a"が変化しませんでした。 すごく丁寧に教えていただいたのに、申し訳ありません。 教えていただいた方法を何とか理解を深めてみます。 ありがとうございました。