excelに入力された数値を計算したいのですが、良い方法が思いつきません。
VBAを使えば簡単にできそうな気もしますが、自分にVBAを作る能力はありません(笑)。
$(参照?)をうまく使えば出来そうな気もしますが、1日考えて頭が痛くなりました…
なので、どなたか力を貸してください。
A1~E5まで数値が入っています。
A1+B1+C1+…=
A2+B1+C1+…=
↓
A3+B3+C3+…=
↓
A5+B5+C5+…=
…という感じで総当たりで計算をしたいんですが、いい方法をご存知の方がいらっしゃいましたらご享受下さい。
また、そんなのExcelでは無理だとか、Excel以外でできるソフトを知ってるとか、なんでも構いませんので情報をお願いします。
No.2
- 回答日時:
何個足し算するんだ?
5個だと
25C5=53130
じゃないか。
だから、
VBAならできるだけど、5万セル埋めるのか。数式でやるとすると、作業領域なんか作ってやったりすると、腕が疲れるだろう。
この回答への補足
早速の回答ありがとうございます。
自分は数学に全く疎いのであまり自信はないのですが、5×5だと、5の5乗で3125だと思っていたのですが、53130にもなりますか・・・(汗)
実際は5×5ではなく、2行だったり、3行だったり5行だったりなのですが、やっぱりVBAでないと難しいのでしょうか?
■■■■■■
■■■■■■
■■ ■
■
■
■
↑
こんな感じです。。
No.3ベストアンサー
- 回答日時:
>excelでの行列の計算について
これは標題として不適当。
エクセルでは、数学の行列の演算の関数などもあり、そちらを思ってしまう。
こんな課題をやって何の意味があるのかな。
多分何かの課題の一部で、質問者の考えで思いついた点を質問したのだろう。
課題の全貌は?
しかし多分それを解決するには、数理の理論の知識が必要ではないかな。
>VBAを使えば簡単にできそうな気もしますが
VBAでのコードは割合簡単。VBAを全体に学習するのではないから、勉強したら。
例データ
158
269
3710
4811
コード
標準モジュール
Sub test01()
For i = 1 To 4
For j = 1 To 4
For k = 1 To 4
t = Cells(i, "A") + Cells(j, "B") + Cells(k, "C")
MsgBox t & "=A" & i & "+B" & j & "+C" & k
Next k
Next j
Next i
End Sub
実行はF5
途中でCTRL+Pauseキーで中断してください。匂いだけ嗅いでください。
マクロの実行の仕方に関することは、WEBや本で勉強してください。
気に入れば役立つようであれば、セルに結果を出すコードを挙げますが。
この回答への補足
早速の回答ありがとうございます。
VBAに興味はあったのですが、実際に初めて使ってみて感動しました。。
この計算結果をセルに入れていくことも可能だと思いますが、
6行目の「MsgBox~」の行を「セルに記入」と命令すればよいのでしょうか?
No,4の方に教えていただいたコードと合わせて大満足の表示が出来、
おふたかたに大変感謝します。
これから少しづつVBAについて勉強してみようと思います。
ありがとうございました。
No.4
- 回答日時:
ANo.2
です。
行、列に関係なく総当りで5個足し算するんだよね。
ほれ、総当り。
Sub combi2()
Dim s(25)
n = 0
For r = 1 To 5
For c = 1 To 5
n = n + 1
s(n) = Cells(r, c)
Next
Next
n = 0
For i = 1 To 25
For j = i + 1 To 25
For k = j + 1 To 25
For l = k + 1 To 25
For m = l + 1 To 25
n = n + 1
ss = s(i) + s(j) + s(k) + s(l) + s(m)
r1 = Int((i - 1) / 5) + 1
c1 = (i - 1) Mod 5 + 1
r2 = Int((j - 1) / 5) + 1
c2 = (j - 1) Mod 5 + 1
r3 = Int((k - 1) / 5) + 1
c3 = (k - 1) Mod 5 + 1
r4 = Int((l - 1) / 5) + 1
c4 = (l - 1) Mod 5 + 1
r5 = Int((m - 1) / 5) + 1
c5 = (m - 1) Mod 5 + 1
Cells(n, 6) _
= Cells(r1, c1).Address(RowAbsolute:=False, columnabsolute:=False) & _
"+" & Cells(r2, c2).Address(RowAbsolute:=False, columnabsolute:=False) & _
"+" & Cells(r3, c3).Address(RowAbsolute:=False, columnabsolute:=False) & _
"+" & Cells(r4, c4).Address(RowAbsolute:=False, columnabsolute:=False) & _
"+" & Cells(r5, c5).Address(RowAbsolute:=False, columnabsolute:=False) & "="
Cells(n, 7) = ss
Next
Next
Next
Next
Next
End Sub
趣味だな。
この回答への補足
再回答ありがとうございます。
自分の説明不足で申し訳ないのですが、総当たりというのは全ての値の総当たりではなく、
「A(1~5)+B(1~5)+C(1~5)+D(1~5)+E(1~5)」という感じです。
なので「A1+A2+A3+A4+A5」などの結果は必要ありません。
私はVBAの知識はないのですが、何となく見た感じで
「A1+A2+A3+A4+A5」などの計算も入っている様に見えます。
おそらくNo3の方が書かれたコード(っていうのかな?)に、今回回答いただだいた最後から7行目のCells
「(n,7)=ss」を合わせればセルに結果を表示させられると思うのですが、自分でも試してみようと思いますが、
アドバイスがありましたらまたご享受お願いいたします。
アドバイスありがとうございました。
おふたかたのコードを参考に色々試してみたら出来ました。(多分…)
こんな感じのデータで下のコードをエディタに入れたらそれっぽい
結果が出てきました。
もし間違ってたり、もっとスマートな書き方がありましたらご享受下さい。
ABCDE
12342
23453
345 4
4 6 5
5 6
6 7
8
9
Sub test01()
n = 0
For i = 1 To 6
For j = 1 To 3
For k = 1 To 4
For l = 1 To 2
For m = 1 To 8
n = n + 1
t = Cells(i, "A") + Cells(j, "B") + Cells(k, "C") + Cells(l, "D") + Cells(m, "E")
Cells(n, "F") = "A" & i & "+B" & j & "+C" & k & "+D" & l & "+E" & m
Cells(n, "G") = t
Next m
Next l
Next k
Next j
Next i
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- Excel(エクセル) スプレッドシートについて A1÷B1の値をC1に、A2÷B2をC2、A3÷B3をC3…といった感じで 1 2022/05/17 20:24
- Excel(エクセル) Excelについて質問があります。 関数の数値入力についてなのですが、 b1にー c1に数値 がある 1 2023/05/28 12:13
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) Excel 数式を教えてください 2 2022/06/02 12:24
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Excel(エクセル) Excelの関数についての質問です。(vlookup関数) A列 B列. C 1 大阪 50. 検索 6 2023/08/11 13:35
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) エクセル・スプレッドシートで、一定数を超えたらゼロから再累計する方法 8 2022/05/28 03:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2017/5/15日から半年後の計算し...
-
excelの名前のカウント方法
-
【Excel】選択したすべてのセル...
-
【大至急】 Excel数字が入って...
-
INDEXとMATCH関数で#N/Aが出る...
-
エクセルの計算式でコンマを付...
-
PowerPointの表内のカンマ
-
エクセルで「-3E+06」と...
-
エクセルで行の一番上にセルに...
-
エクセルに計算式が入らない!
-
結合されたセルの一部を変更す...
-
エクセルでエンターを押すと隣...
-
エクセル 常に桁区切りにしたい
-
文字列を含む連続データの入力
-
エクセル 0:00 の時間をカウン...
-
LINEのこの空白ってどんな意味...
-
エクセルの計算結果に+(プラス...
-
VBA Private Sub Worksheet_Cha...
-
エクセルでハイパーリンクのコピー
-
エクセルで深夜勤務の時間計算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel】選択したすべてのセル...
-
エクセル 合計値に一番近い件数...
-
Word1007でのSUM 合計ができない
-
エクセルでの簡単な合計値が合...
-
1〜50まで足していくと合計は?...
-
エクセル 前年比の求め方
-
エクセルで退職金の計算式を作...
-
Excelの動作が遅い原因は何でし...
-
ExcelでSUMIFSを使用して経費の...
-
【大至急】 Excel数字が入って...
-
2017/5/15日から半年後の計算し...
-
IFERROR(IF()IF())のよう...
-
エクセルでの在庫管理、発注管...
-
パソコンを簡易レジのように使...
-
エクセル関数 数字のみを選択し...
-
エクセルの関数いれれますか?
-
エクセルでの交通費の計算
-
Excel2007 FREQUENCY関数(デー...
-
Openoffice Calcで作った出席簿...
-
スプレッドシートでの質問です
おすすめ情報