No.1ベストアンサー
- 回答日時:
VBAでプログラムを作るのが一番簡単ですが、先日某所で入手したテクニックを使ってやってみました。
1)A1、C1、E1、G1、I1に123、4、・・・と入れます。
2)16行コピーします。
3)B1、D1、F1、H1に+、+、+、+を入れます。
4)B2、D2、F2、H2に+、+、+、-を入れます。
5)16行目までに+と-の16種類の組み合わせを全部入れます
6)J1~J16に=を入れます。(この列は意味がありません)
7)K1に「=A1&B1&C1&D1&E1&F1&G1&H1&I1」を入れます。
8)K16までコピーします。K列に数式ができます。
9)挿入→名前→定義で名前の定義を出します。
10)上部の名前欄にEVAと入れます。
11)参照範囲に「=EVALUATE(Sheet1!K1)」と入れます。
12)OKを押します。
13)L1に=EVAと入力します。
14)L2~L16にコピーします
15)L1~L16に計算結果が出ています。
このEVALUATEが何者かはわかりません。ヘルプを探しても載っていませんでした。完全なパクリですので(^^;)
なお、上記はEXCEL2002で確認しましたが、他のバージョンについては未確認です。
早速のご回答ありがとうございます。
試してみたのですが・・
3~5までの作業でミスがあるのでしょうか?
最終的に 答えを検出することができませんでした・・・
もう一度やりなおしてみます。
勉強になりました。
感謝しております。
また何かありましたらよろしくお願いいたします。
No.3
- 回答日時:
マクロを作ってみました。
使う数値を縦に並べ、最後に指定する合計値を入力します。例えば、
A1= 123
A2= 4
A3= 5
A4= 67
A5= 89
A6=100
と入力して、A1:A6を選択した状態でツール→マクロ→マクロで『TashiHiki』を実行します。
解があれば、B、C、D列・・・に表示していきます。『1』が『+』、『-1』が『-』の意味です。
解は複数ありえますので、全て表示するようにしています。
解がなければ、『解はありません』のメッセージが出ます。
何個の数値まで計算できるか(実用的か)評価していません。10個は出ました。
ご参考に。
ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュール で標準モジュールを挿入します。 出てきたコードウインドウに下記マクロをコピーして貼り付けます。
ここから
↓
Sub TashiHiki()
Dim rg As Range 'セル
Dim NUM() As Integer '指定の数値
Dim fugo() As Single '数値に対する符号
Dim n As Integer, i As Integer '数値の個数、カウンタ
'指定の数値を読み込む。最後が演算の答え
n = Selection.Count
ReDim NUM(n) As Integer, fugo(n) As Single
For Each rg In Selection
i = i + 1
NUM(i) = rg.Value
Next
Dim k As Integer '使った数値のカウンタ
Dim Total As Long '計算してみた合計
Dim Col As Integer '列カウンタ
'演算パターンを作る
For i = 0 To (2 ^ (n - 1)) - 1
Total = 0
For k = 1 To (n - 1)
If (i And 2 ^ (k - 1)) > 0 Then
fugo(k) = 1 '加算する
Total = Total + NUM(k)
Else
fugo(k) = -1 '減算する
Total = Total - NUM(k)
End If
Next
'一致する組み合わせがあったら
If Total = NUM(n) Then
Col = Col + 1
For k = 1 To (n - 1)
Selection.Range("A1").Offset(k - 1, Col) = fugo(k)
Next
End If
Next
If Col = 0 Then
MsgBox "解はありません"
End If
End Sub
nisi6さん こんばんは。
マクロまで作っていただき ありがとうございます。
難しいですね・・
ですが、最近Excelに興味を持っています。
簡単なマクロが精一杯の私ですが がんばって挑戦してみます。
Excelに対して 拒絶反応を起こしていたのですが
奥の深いソフトと、あせらず勉強してみます。
また何かありましたら 教えて下さい。
本当にありがとうございました。
No.2
- 回答日時:
あ,evaluateというのがあるのですね.
同様のことがvalue()でできないかな?と思って
試して,errorになりました.
それはさておき,
evaluate()は
文字列を数式と見なして計算する(評価する)という機能だと思います.
UNIXのshなどでもevalというコマンドがあったりします.
しかし,質問の問題は普通にがんばって解くほうが簡単な気がします.
例えば,(2)なら,
123+4+5+67+89を計算し,例えば118になったとしたら(ならないけど)
目的の数値より18多いから,その半分の9を,
引かなくちゃいけない所を足してしまった
のだとわかります.よって,
もし
和が118になるのなら,
4と5は引くことにするとちょうど100になりますね.
123+4+5+67+89の計算が面倒なので,実際に解くのはパスしときます.
(1)も同様に?,
98+76+54+3+21と100を比べて,いくつ引かなくちゃいけないのかわかれば,
比較的簡単に見つけられます.
こんばんは。
ご回答ありがとうございます。
とりあえず すべてを和にしてそのあと考えればいいのですね・・
wolvさんのやり方を教えていただき感謝いたします。
これからも使いたいと思います。
初心者の私に優しいご回答、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
関数を使った日時の自動入力
-
tera term マクロのinputbox
-
エクセルにペーストしたときの...
-
vba 順次記録
-
PowerPointの表内のカンマ
-
エクセルで休日の「休」という...
-
【VBA】PDF出力に任意のファイ...
-
LINEのこの空白ってどんな意味...
-
EXCELでタイトル行と一番下の行...
-
スマホのスプレッドシートでセ...
-
セル上に表示された見かけ上の...
-
エクセルで囲み線で出来ますか?
-
エクセルで「-3E+06」と...
-
エクセル 常に桁区切りにしたい
-
EXCEL 連動したドロップダウン...
-
16桁以上の「0」に変換されてし...
-
エクセルでエンターを押すと隣...
-
【エクセル】入力規則のプルダ...
-
エクセルでオートサムを使った...
-
エクセルでleft関数の結果が表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tera term マクロのinputbox
-
関数を使った日時の自動入力
-
漢字→ひらがな 一括変換
-
エクセルにペーストしたときの...
-
エクセル_日付けの自動入力
-
エクセルのコピー貼り付けマクロ
-
vba 順次記録
-
エクセルで、ある列にカーソル...
-
エクセルで保護を自動に行う設定
-
キーボード、マウス操作を自動...
-
PowerPointの表内のカンマ
-
【VBA】PDF出力に任意のファイ...
-
EXCELでタイトル行と一番下の行...
-
EXCEL 連動したドロップダウン...
-
LINEのこの空白ってどんな意味...
-
エクセルでleft関数の結果が表...
-
Wordの差し込み印刷で空白行が...
-
エクセルの計算式でコンマを付...
-
エクセルでハイパーリンクのコピー
-
エクセル 数式の無効化
おすすめ情報