• ベストアンサー

3千行以上あるExcel表の一つの列を配列数式に

3千全行以上あるExcel表の一つの列を配列数式にしたいです。 {=SUM(IF(A:A="みかん",B:B,))}のようなやつ。 色々試しましたが、配列数式を使わないと出したい値を出せませんでした。 3千行あるのですが、めちゃくちゃ重くなります。 重くならずに済む方法はありますでしょうか。 やはり配列数式を使うとしょうがないのでしょうか。

  • sohcon
  • お礼率72% (386/536)

質問者が選んだベストアンサー

  • ベストアンサー
  • aoyama984
  • ベストアンサー率45% (253/561)
回答No.2

http://www.excel.studio-kazu.jp/kw/20090916153437.html http://officetanaka.net/excel/excel2007/071.htm http://okwave.jp/qa/q4458201.html 具体的なテスト環境をだしてもらうほうが早いかもしれません A1セルには*** C3セルには*** この繰り返しで3000行あります とか ExcelのVerで利用できる関数も違うのでそれも教えてください

その他の回答 (1)

noname#198951
noname#198951
回答No.1

"色々試しましたが、配列数式を使わないと出したい値を出せませんでした。" とだけ書かれて元データがどうなってるかがわからないので、それしか無いとしか言えません。 他に判断材料が全く書かれてないのですから。 もしくはExcelで処理するレベルを超えているのかもしれませんが。

関連するQ&A

  • 配列数式って何ですか??

    きのうは、ある列において偶数行だけの合計を求めたいときの計算式を教えてもらいました。 数式は以下のようになるそうです。 {=SUM(IF(MOD(ROW(A1:A10),2)=0,A1:A10,""))} (ありがとうございました。) しかし、そこで出てきた「配列数式」というものが何なのか分かりません。上では{}でくくられた部分だという事はわかるのですが、どうして一番初めと終わりに{}があるのか、たとえば比較として、上において{}がない数式ではどのような計算がされてしまうのでしょうか。 また、{}の位置がSUMの後にあるとき、 =SUM{(IF(MOD(ROW(A1:A10),2)=0,A1:A10,""))} なんかはどんな計算をしていることになるのでしょうか。 配列数式の計算手順がイメージできないのです。 どなたか教えて下さい。

  • 配列数式で行を増やすためには

    シート1の一覧表からシート2の配列数式の入った表へある条件のものを抽出する作業を行っています。 シート2で行を増やそうと思い、配列数式の入ったセルを選択→解除→行を増やす→再度配列数式へ、という作業を行いました。 しかし、#N/Aというエラー表示がでます。シート1の表と指定範囲は変わっていないのにエラー表示はなぜ出るのでしょうか。

  • 配列数式について

    A     B 2007/9/1  10 2007/9/2  11 ↓ 2007/9/30  9 上記のように入力されています。 9/1~9/5までの金額を集計します。 配列数式を使用してやって見たのですが うまくいきません。よろしくご指導お願いいたします。 {=sum(if(A2:A31>=2007/9/1)*(A2:A31<=2007/9/6),B2:B31))}

  • 配列数式がうまくいきません

    現在、部品の管理をする為に配列数式をたてて行っています。 集計表にのセルに以下のような式が入っています。 {=SUM(IF($M$10:$M$500=200711,IF($S$10:$S$500={10,11},$T$10:$T$500,0)))} M列:客先の希望納期(2007年11月) S列:こちらの納品月(10月、11月) T列:納入数量 今は自分で行っておりますので年が改まった場合などに式(希望納期月)を書き換えておりますが、担当者が変わると配列数式を知らない方が行うこともありえるので、あるセル(A1)を参照する形で式を以下のように変更してみました。 このようにすればA1のセルの部分を変更するだけでいけると考えました。 {=SUM(IF($M$10:$M$500=VALUE(A1)&11,IF($S$10:$S$500={10,11},$T$10:$T$500,0)))} しかしながら、この式ではうまく行きません。 この計算式のどこがまずいのでしょうか。 よろしくお願いいたします。

  • Excelで配列数式を入力できない

    WinXP-SP3,Excel2003です。 配列数式は、例えば任意のセルに、 =SUM( IF( A1:A10="○", B1:B10, )) などと入力し、引き続きCtrl+Shift+Enterで確定するそうですが、Ctrl+Shift+Enterを叩いても何の反応もありません。やり方のどこが間違っているのでしょうか。

  • 配列数式について教えてください

    ここでエクセルでの文字列の検索方法をさがしていたらさきほど、ちょうど良くこのような配列数式をみつけました。 =IF(A1="","",MIN(IF(ISNA(MATCH("*"&$H$1:$H$9,A1,0)),10,$I$1:$I$9))) A1セルに、H1からH9の表にあるどれかの文字列を含んだ文字列をいれると対応するI1からI9の表の値を表示するものです。 使われているMINやISNAやMATCH関数はわかるつもりですが、組み合わせるとなんでこんなことができるのか、ぜんぜんわかりません。どなたか解説していただけないでしょうか? http://oshiete1.goo.ne.jp/kotaeru.php3?q=653775

  • GoogleDoc.Spreadsheet配列数式

    お世話になります。 GoogleドキュメントのスプレッドシートにMS Excelシートを移植しようとしているのですが 数式の適用に躓いています。   Excel上では  {=SUM(IF((G2:G62<4)*(G2:G62>0),30+IF(R2:R62,1,0),0))}  {=SUM(IF(G2:G62={1,2,3},30+IF(R2:R62,1,0),0))}  (以上Ctrl+Shift+Enterで確定した配列数式)  =SUMPRODUCT((G2:G62>0)*(G2:G62<4)*30+(G2:G62>0)*(G2:G62<4)*(R2:R62>0)*1) などのような数式で求まるのですが、(#自らの数式には頓着してません。) Googleドキュメントのスプレッドシートで同じことを実現する数式が書けなくて困っています。   参照先のG2:G62、R2:R62の値は、数値(非負整数)または空白であることは確実に担保されています。 この条件で、2:62行のそれぞれについて、   G列の値が、1、2、3のいずれか(0より大きく且つ4未満)である場合、     且つ、     R列の値が1以上である(0より大きい)(0や空白ではない)場合は、       31を     それ以外の場合は       30を   (G列の値が、1、2、3のうちのいずれでもない場合は無視(0))   それぞれ加算した合計を求めたい。 以上が「やりたいこと」です。 暫定的に作業セルを設けて計算させているのですが、 実用上、作業セルの存在が編集効率を損ねている実感がある為、 ひとつの数式に纏めたいと考えています(他に理由はありません)。   ここでお願いしていることは具体的な数式のご教示なのですが、 代わりに、例えば、 「GoogleドキュメントのスプレッドシートでMS Excelの配列(CSE)数式や配列定数を実現する方法」 「Googleドキュメントのヘルプを補う解説」 などの日本語ドキュメントをご紹介頂くのも求める回答としては有難いです。   尚、Googleドキュメントを利用するのに必要なアカウントを既にお持ちの方にのみお願いするもので、 新たなID作成を求めるようなものでは決してありませんので、誤解なきよう。   以上、質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

  • 配列数式での平均値

    こんにちは。 今、エクセルで配列数式を使って平均値を出す作業をしています。 列Aには男女別を示す1、2が入力されており、 列B以降にはいろいろなデータが入っています。 それらデータにおける男女別の平均値を出したいので 配列数式を使って求めるまでは良かったのですが、 どうやら、列B以降の空欄になっているセルも 0として計算されてしまっているようなのです。 (普通のaverageと同様に)空欄を数に入れないで計算させるには どのようにしたらよいのでしょうか? ちなみに今使っている配列数式は、 {=average(if(A1:A10=1,B:B10,""))} です。

  • 配列数式の怪

    お世話になります。 配列数式の入力方法にて解せない部分がありましたのでご教示願います。 ソフトウェア開発の工数見積をしようと思って、Excel2003で添付の様な WBSを作りました。 ここで、機能1~3を実装するか否かをD2~F2に○で指定し、 各機能毎に必要な作業項目をD3~F6でマッピングしました。 ※5は作業対象の工数合計で、 =SUMIF(C3:C6,"○",B3:B6) になっています。 (実際には、機能、作業項目共に数十項目のマトリクスになってます) 各作業項目1~4が見積対象になるかどうかを実装する機能に従って 表示しようと思って、C3~C6に配列数式を使って ※1:{=IF(SUM(($D$2:$F$2="○")*(D3:F3="○"))>0,"○","")} ※2:{=IF(SUM(($D$2:$F$2="○")*(D4:F4="○"))>0,"○","")} ※3:{=IF(SUM(($D$2:$F$2="○")*(D5:F5="○"))>0,"○","")} ※4:{=IF(SUM(($D$2:$F$2="○")*(D6:F6="○"))>0,"○","")} と入力しようと思いましたが、どう入力しても下記の様に行番号を可変に したいところが全て同じ行番号になってしまいます。(D3:F3) ※1:{=IF(SUM(($D$2:$F$2="○")*(D3:F3="○"))>0,"○","")} ※2:{=IF(SUM(($D$2:$F$2="○")*(D3:F3="○"))>0,"○","")} ※3:{=IF(SUM(($D$2:$F$2="○")*(D3:F3="○"))>0,"○","")} ※4:{=IF(SUM(($D$2:$F$2="○")*(D3:F3="○"))>0,"○","")} ここで、例えば※2のD3:F3だけをD4:F4に変えても他の行も全てD4:F4に 変わってしまいます。 いろいろと試行錯誤した結果、一旦全て削除してまっさらな状態から ※1に{=IF(SUM(($D$2:$F$2="○")*(D3:F3="○"))>0,"○","")} を入力した後に1行開けて※3にコピーしたところ、無事に D3:F3がD5:F5に変わりました。 そこで、その後に ※2に{=IF(SUM(($D$2:$F$2="○")*(D4:F4="○"))>0,"○","")} を入力した後に※4にコピーして目的を達成できました。 (実際には、奇数行、偶数行でそれぞれ数十行ずつのコピーをしました) これは、配列数式入力時の仕様なのでしょうか? また、本来はどの様に入力するのが正解なのでしょうか?

  • 《エクセル》配列数式について教えて下さい

    いつもお世話になります。 先日、このページで質問した時、配列数式について教えていただいて、例をもとに自分で作成しようとしたのですが、うまくいきません。 集計表A列とB列に項目行があり、別のファイル[Book1.xls]のSheet1にあるデータを羅列した表のA列とB列にある項目の2つのセルの内容に合致するデータ数をカウントする場合 =COUNTA(IF('[BOOK1.xls]Sheet1'!$A$2:$A$2000=$A1*'[BOOK1.xls]Sheet1'!$B$2:$B$2000=$B1)) と入力して、Shift+Ctrl+Enterキーを打ったのですが、「入力した数式にはエラーがあります」のエラーメッセージが出てきて、ヘルプを読んでみても解決方法がわかりませんでした。 お手数ですが、ご教授宜しくお願い致します。