• 締切済み

Excel関数、計算結果の自動出力

ややこしいので説明が長くなります。 数値を入れると計算結果がでるようなExcel関数があります。 条件が多いので多くのセルに分かれています。 例えば A1=A2+A3+B2+B3+B4+B5・・・ という関数があり、B列の数値がA2とA3の数値によって計算されます。 A2には…2~100(2の倍数) A3には…5~500(5の倍数) の数値が入ります。 これらのA2、A3の全組み合わせ5000パターンの計算結果を 表にまとめなくてはいけません。 (パターン1) A2:2 & A3:5 (パターン2) A2:2 & A3:10 (パターン3) A2:2 & A3:15 ・・・ (パターン98) A2:2 & A3:490 (パターン99) A2:2 & A3:495 (パターン100) A2:2 & A3:500 (パターン101) A2:4 & A3:5 (パターン102) A2:4 & A3:10 (パターン103) A2:4 & A3:15 ・・・ ・・・ ・・・ (パターン4999) A2:100 & A3:495 (パターン5000) A2:100 & A3:500 という具合でA2、A3の全組み合わせ5000パターンの計算を 一覧で出力することはできるのでしょうか。 現在はカット&ペーストで計算式全てを横一行にずらーっと並ぶように整理して、 フィルハンドルで全組み合わせの数値を入力し、 5000行かけて計算した結果を別シートにコピペしているのですが、 整理しても100列を超える計算式が何種類もあるため、その作業ですら大変なんです。 良い方法があったらご教授ください。

みんなの回答

  • marumets
  • ベストアンサー率42% (199/463)
回答No.6

No.5です。 計算式の件ですが、 A1=A2+A3+B2+B3+B4+B5・・・というのが、例えば =A2+A3+B2+B3+・・・+B120+C2+C3+・・・+C50とかであれば、 =SUM(A2:A3,B2:B120,C2:C50)に変えれば、式の修正が楽です。 絶対参照にするには =SUM($A$2:$A$3,$B$2:$B$120,$C$2:$C$50)で終わりですし、 最期の修正でも =SUM(B2:C2,$B$2:$B$120,$C$2:$C$50)で終わりです。

  • marumets
  • ベストアンサー率42% (199/463)
回答No.5

欲しいのは、A1の値(計算結果)とA2及びA3の値の一覧表でしょうか? そうであるなら、計算結果を算出する現在のシート(Sheet1とします)をすべてSheet2にコピーします。 別のシート(Sheet3)に一覧表を作ります。 Sheet3の1行目のA列からC列に、"計算結果"、"ファクター1"、"ファクター2"とでも項目名を入れます。 Sheet2のA1セルの式を絶対参照に修正します。 (=A2+A3+B2+B3+B4+B5・・→=$A$2+$A$3+$B$2+$B$4+$B$5+・・) 修正後、A1を切り取り、Sheet3のA2セルに貼り付けます。 Sheet3に移り、A2セルを修正します。 (=Sheet1!$A$2+Sheet1!$A$3+Sheet1!$B$2・・→B2+C2++Sheet1!$B$2・・) Sheet3のB2には=INT(((ROW(A2)-2)/100)+1)*2、 Sheet3のC2には=INT(ROW(A2)-1)-INT((ROW(A2)-2)/100)*100)*5 と入力し、これらを下方向に5000行分コピーしていきます。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.3です! 前回のC列は掛け算をしていました。 足し算の結果を表示しなければならなかったのですよね? 前回のコードで表示されたC2セルに =A2+B2 という数式を入れ、フィルハンドルの部分でダブルクリック! または前回コード内の >.Offset(, 2) = i * j の行を >.Offset(, 2) = i + j に訂正してください。 失礼しました。m(_ _)m

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! A2×A3のすべてを表示させたい訳ですね? 関数ではなくVBAでの一例です。 ↓の画像のようにSheetの1行目に項目を入れておきます(ストッパーの意味で) 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i, j As Long For i = 2 To 100 Step 2 For j = 5 To 500 Step 5 With Cells(Rows.Count, 1).End(xlUp).Offset(1) .Value = i .Offset(, 1) = j .Offset(, 2) = i * j End With Next j Next i End Sub 'この行まで ※ ご希望の方法でなかったらごめんなさいね。m(_ _)m

回答No.2

No.1です。ごめんなさい。自分で立てた過程で混乱し、大間違いをしてしまいました…。最後のC3セルに入力すべき式は、正しくは次のとおりです。 ○ =SUM($B3,C$2,$B3+1,$B3-1,C$2*2,C$2/2) × =sum($B3,C$2,sheet1!a2+1,sheet1!a2-1,sheet1!a3*2,sheet1!a3/2)

回答No.1

「=A2+A3+B2+B3+B4+B5」という式ですが、関数を使って「=sum(a2:a3,b2:b5)」と書いたほうがスッキリするし、意味も分かりやすいかと思います。ただし、今回はB列の値がA列に応じて変化するらしいので、ご質問の作業のためには、ここまで簡潔な式は書けません。 例えば、B2、B3、B4、B5セルにそれぞれ「=a2+1」「=a2-1」「=a3*2」「=a3/2」と入力されているものとします。 また、以下、別シートに抽出表を作るものとして話を進めます。話の分かりやすさのためなので、同じシートのどこかにその表を作っても構いません。抽出元のシート名を「Sheet1」とします。 抽出先のシートで、次の表を用意します。なお、2の倍数や5の倍数の数列は、3つくらい手入力し、あとはドラッグでもすれば簡単に得られます(オートフィル)。     A列  B列  C列  D列  E列  F列  G列 1行          A3 2行          5   10   15   20   25 3行   A2   2 4行       4 5行       6 6行       8 7行      10 次に、C3セルに次の式を入力します。 =sum($B3,C$2,sheet1!a2+1,sheet1!a2-1,sheet1!a3*2,sheet1!a3/2) C3セルをコピーし、C3:G7の範囲に貼り付けます。

関連するQ&A

  • Excel 関数 計算式について

    Excel関数について教えて下さい。 下記のようにExcelの縦列で、A列とB列があるとします。 A列の数値が「1」で、かつB列の数値が「2.5」以下の数(割合)を算出するにはどのような関数(計算式)を使えば宜しいでしょうか? また、上記の計算をすると同時に、その計算結果に当てはまる”B列”の数値を計算して、B列の合計数と平均数を割り出すためにはどのような関数(計算式)を使えば宜しいでしょうか。 個人的には、幾つかのセルに計算式を分ける必要があるかと思いますが、セルを分けるパターンでも分けないパターンてもどちらでも結構です。 但し、実際に計算式を記入するセルはA列でもB列ではなく、X列となります。 A列    B列 1      2.4 3      3.5 5      3.6 2      2.7 1      2.1 1      3.0 4      2.2 1      2.8 2      1.6 1      1.9 1      3.4 3      1.7 1      1.4 宜しくお願い致します。

  • EXCEL SUMIF 関数の計算結果が倍数になってしまう

    EXCEL SUMIF 関数の計算結果が倍数になってしまう EXCELのC列に下記数式を入れているのですが、計算結果がなぜか2倍された値が入ってしまいます。 色々と検索してみたのですが、よく分からず、皆様のお力をお貸し頂きたく。 =IF(A2=A3,"",SUMIF(A:A,A2,B:B))

  • Excel2000で計算結果から並べ替えたい

    Excel2000で、並び替えを行いたいのですがマクロもVBAを使用したことがなく、どうしたらいいのかさっぱりわかりません。 参考になるようなHPも見つけることもできず、そもそも可能な処理かどうかもわからない状態です。 A列が名称 B列が数値A(変数) C列が数値B(変数) D列がコスト(固定値) という表のデータを、 指定したコスト合計以内で、数値A、数値Bが、8点で最大値になる組み合わせを別の列に並べ替えて表示したいのです。 自分で計算した、こういう形にしたいというものを画像として添付いたしております。 画像の左上、緑とオレンジの部分を入力すると右半分の並べ替えた表を表示したいのです。 よろしくお願いいたします。

  • エクセルでの計算式を教えて下さい。

    エクセルでの計算式を教えて下さい。 概要はある列のセルの数値と別のセルの数値の組合せによって、特定のセルの数値をコピーして別のセルにそれを表示させる。 具体的には、A列に入ってる数値と同じ行のB列に入ってる数値の組合せパターンにより、予め設定しておいたパターン別の数値をコピーしてそれをC列に表示させます。 つまりA列に1、B列に2という数値が入った時には、1と2の組合せパターンですよね。 Aが1、Bが2の組合せの時には33.5という数値が予めどこかのセルに用意してあり、それをコピーしてC列に表示する。 Aが5、Bが3の組合せの時には27.4という数値があり、それをC列に表示するといった具合です。 A列の数値は1~18、B列の数値も1~18のいずれかです。 組合せパターンは最大で324通りあり、組合せ別の数値には規則性はないので、予めどこかに記入しておきます。 この様な作業を出来る式を教えて下さい。

  • Excel 関数 計算式について

    Excel関数について教えて下さい。 下記のようにExcelの縦列で、A列とB列があるとします。 まず、B列の数値が「2.5」以下になる際の”A列のセル数”を算出するには、どのような関数(計算式)を使えば宜しいでしょうか? また、B列の数値が「2.5」のみの”A列のセル数”を算出するには、どのような関数(計算式)を使えば宜しいでしょうか? 但し、実際に計算式を記入するセルはA列でもB列ではなく、X列となります。 A列   B列 1     2.4 3     3.5 5     3.6 2     2.7 1     2.1 1     3.0 4     2.2 1     2.5 2     1.6 1     1.9 1     3.4 3     1.7 1     1.4 6     2.5 1     3.6 5     2.5 宜しくお願い致します。

  • Excelの計算式または関数について

    Excel2007を使用しています。  次のようなことをやりたいのですが、計算式または関数、または関数と計算式の組み合わせを教えていただきたくお願いいたします。 問題  例えばA列にA1からA10まで何らかの数値は入っていて、次にA11に何らかの数値を入力した場合、A11に入力した数値がA1からA10までのいずれかのセル入力されている数値と同じ場合にはB11のセルに「重複」と表示する。以下A12セルへの入力された数値はA1からA11までのいずれかのセルに入力されている数値と同じ場合にはB12のセルに「重複」と表示する。以下セルA13以下へ入力する数値についてもすでに入力済みのセルの数値と同様な比較を行って対応のB列のセルに「重複」と表示をする処理を行う。  以上のような処理を行いたいのです。よろしくお願いいたします。

  • Excel自動計算

      A B C 1 60% 100 60 2 70% 120 84 3 80% 50 25 C1にA1*B1を自動で計算したい。B列に入る金額はまちまちですが、 A列は60,70,80%のいずれかしかは入りません。 IF関数で試みましたが挫折しました。 教えて下さい。よろしくお願いします。

  • 最適値を自動的に総当りで計算させたいのですが

    最適値を自動的に総当りで計算させたいのですが たとえばA列に下記のような無作為なデータがあるとします。 A1 10 A2 15 A3 -2 A4 500 A5 -27 A6 4 A7 20 A8 -12 A9 15 . . . B列は B1に「A1+A2」 B2に「A2+A3」 B3に「A3+A4」 ・ ・ ・ というようにA列の「一行下」を足したものを表示させます。 そしてそのB列のSUMを求める時の話ですが 「一行下」「二行下」と条件を変化させると 当然B列のSUMも変化していきますが この時最大の数値になるのは条件「何行下」にすればよいのかを 自動的に総当りで計算させたいのですが どのようにすれば良いでしょうか?

  • エクセル2003の関数について教えて下さい

    A、Bには数値が入力してあり、Cへ下記の数値を一度で求めるエクセル関数を教えて下さい。 Cは、A列>5であれば各行のB列/A列をA列の倍数で切り上げ、A列<=5であればその各行のB列の総和を1で割り切り上げたいです。    A   B   C 1 20 59.1  3 2 25 40.2  2 3  1 0.5   2 4  3  1       *A列は固定値、B列は変動値です。  *C3にてA列<=5の条件を満たす部分を指定可能なので、C4では計算せず、まとめてC3で計算処理します。 何度も試行錯誤して試してみても答えが出ませんでした。 よろしくお願い致します。 ※CEILING、IF、SUM、ROUNDUP関数を組み合せてみましたが・・・。

  • [Excel]関数の計算結果を数字に変える。

    関数で計算させた列があります。 この一部をコピーして別のシートで利用しようと考えているのですが、参照先がずれるので計算結果が出ません。 計算式は必要ないので、関数を貼り付けているセルを結果に変換するにはどうしたらいいですか?

専門家に質問してみよう