
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
VBAマクロでやるとこんな感じですね
<以下VBAコード>
Sub minlen()
Dim Testsheet1 As Worksheet
Set Testsheet1 = ThisWorkbook.Worksheets(1)
Dim ans As Double
Dim buf As Double
With Testsheet1
ans = 1000000
For i = 1 To 10
For j = 1 To 10
buf = VBA.Sqr((.Cells(i, 1) - .Cells(j, 3)) ^ 2 + (.Cells(i, 2) - .Cells(j, 4)) ^ 2)
If ans > buf Then
.Cells(1, 5) = .Cells(i, 1)
.Cells(1, 6) = .Cells(i, 2)
.Cells(1, 7) = .Cells(j, 3)
.Cells(1, 8) = .Cells(j, 4)
End If
Next
Next
End With
End Sub
No.1
- 回答日時:
まず、前提として、2点間の距離を求めることはできますか?
できるのであれば、配列数式にして返る値から最小値を拾えばよい。
A1:A10+B1:B10
のように配列の計算をするやり方です。
(この場合、A1+B1からA10+B10までの結果を返す)
ただしこのままでは配列の一番初めの値の計算結果しか表示されない。
配列数式はちょいと特殊な確定方法が必要になる。
普通は ”Enter” キーを押したり ”Tab” キーを押したりしてアクティブなセルを変えることで確定しますが
(”Ctrl+Enter”でアクティブセルを変えない方法もある)、
配列数式は必ず "Ctrl+Shift+Enter” という操作で確定する必要がある。
すると、数式は
{=A1:A10+B1:B10}
のように大括弧で囲まれる。
なお、この大括弧を手で入力しても配列数式にはならないので注意が必要。
ただし、このままでは配列の中の一番初めの値だけが表示される。
そこで最小値をMIN関数で求める
=MIN(A1:A10+B1:B10)
こんな感じ。
あとは ”Ctrl+Shift+Enter” で確定すれば良い。
・・・
まあ、質問者さんはこんな能書きはいいから、とにかく答えだけ教えろと言いたいのでしょう。
=MIN(SQRT(POWER(ABS(A1:A1000-C1:C1000),2)+POWER(ABS(B1:B1000-D1:D1000),2)))
どうぞ。
不要な関数も混ぜてますが、このままでもちゃんとした結果が返りますよ。
(数式の説明用に混ぜています。意味を読み取ってくれると嬉しいな……でも不要なんだよね)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[エクセル]連続する指定範囲か...
-
エクセルで、絶対値の平均を算...
-
array関数で格納した配列の型を...
-
数字配列データを画像に変換す...
-
VB6.0 ファイルの一括読込み
-
.NET - 配列変数を省略可能の引...
-
スプレットシートのGetTextにつ...
-
Sessionに格納した二次元配列を...
-
Excelのセルの色指定をVBAから...
-
16進数から2進数へ
-
DataSetから、DataTableを取得...
-
SUMPRODUCT関数を用いた最小値
-
配列のSession格納、及び取得方...
-
【VBS】innerTEXTで取得した内...
-
仮想リストコントロールの表示
-
VBAで指定期間の範囲を抽出し、...
-
Excelで指定した日付から過去の...
-
Application.Matchで特定行の検索
-
長音「ー」とマイナス「-」の...
-
特定のセルが空白だったら、そ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで、絶対値の平均を算...
-
[エクセル]連続する指定範囲か...
-
表にフィルターをかけ、絞った...
-
ExcelのINDEXとMATCH関数でスピ...
-
Excelのセルの色指定をVBAから...
-
array関数で格納した配列の型を...
-
【VBA】ユーザーフォーム リス...
-
Excel オートフィルタのリスト...
-
配列がとびとびである場合の書き方
-
iniファイルのキーと値を取得す...
-
.NET - 配列変数を省略可能の引...
-
DataSetから、DataTableを取得...
-
読み込みで一行おきに配列に格納
-
エクセルでエラーを無視して一...
-
VBAでの100万行以上のデータの...
-
配列のSession格納、及び取得方...
-
Datatableへの代入
-
[VBA]改行入りのセルの値を配列...
-
SUMPRODUCT関数を用いた最小値
-
エクセル 条件を指定した標準...
おすすめ情報