表Aには、A列に0から15までの数値が(小数点以下第2位までを含む)12行入っており、B列にはその数値に合致する主な性質が入っています。
例)
A1:0.5 B1:粘性土
A2:1.4 B2:砂質土
A3:4.3 B3:砂質土
A4:6.1 B4:粘性土…
表Bには、D列に0~1、1~2…14~15と、入力されています。
表BのE列に、D列の範囲に最も近い表AのB列の要素を入れたいのですが、どのような構文が考えられるでしょうか?
初心者であるため、難しいことがさっぱりわかりません。
お聞きするのも憚られるのですが、仕事上、クリアしなければならず、お助けいただけると大変助かります。
よろしくご指導ください。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
添付の図のように表を作りたいということでしょうか。
(黄色の部分)データ量が多くないなら、No1のかたが指摘されるように手作業で埋めた方が良いかと。
A表のデータ量、B表のデータ量はどの程度あるのでしょうか。10行程度ならマクロにする必要もないかと思います。
VBAということなので、マクロでの実行を望んでいるようですが、その場合にも以下の問題があります。
1)表BのD列に1~2のように、記入されていた場合、人間は下限=1、上限=2と判断できますが、
マクロでは簡単にはできません。よって、下限の列と上限の列を設けることをすすめます。
2)「D列の範囲に最も近い表AのB列の要素」ですが、
1~2の時に、最も近いのはどの値なのかの定義があいまいです。
①1.0,2.0,0.5が考えられますがどれなのでしょうか。
つまり、下限にも最も近いもの、上下限の平均に最も近いもの、上限に最も近いもの等が考えられますが、
定義を明確にする必要があります。
②また、上下限の平均に最も近いものを採用する場合、0.5が最も近いですが、0.5がない場合、
0.2と0.8があったとき、どちらを採用するかが判りません。
③例として14~15の時、この値の範囲内にはいるデータがなかった時、そこは空欄にするのか、
範囲外でも、もっとも近いものを選択して採用するのかが不明です。
tatsu99さん
ありがとうございます。
ご指摘の通り、もっと精緻に記載すべきでした。
不明瞭な質問をしてしまい、申し訳ありませんでした。
No.1
- 回答日時:
こんにちは
「表から近似値を求める」という場合によく用いられるのはLookup系の関数などですが、ご質問文を見る限りはそういう問題ではないように感じられます。
「何のために何をどうするのか」をきちんと把握した上で、「どのように処理するのが適切か」を決めないと、ただ単に「数字があるから、それをいじれば答えがでるでしょ」というものとも思えません。
粘性土、砂質土などの文言から粒径と土質かとも思いましたが、全然違うみたいですし、そもそも、ご提示のA表は何を意味しているものかもわかりません。
http://matsumotoboring.co.jp/boring
また、B表のD列にある数値とA表のA列の数値は同じ種類のものなのでしょうか?(違うような気がしますが…)
さらには、なさりたい作業がいったいどのような意味を持っているのかによっても、扱い方は変わる可能性があります。
例えば、A表は現在世の中にあるスタンダードで、それを使いやすくしようとしてB表を作成するというような場合、新しいスタンダードを作成する作業となりますので、学術的にもそれなりの検討が必要となるでしょう。
とは言っても、A表のA列の値も一見したところ不連続なので、なんだかよくわからないですね。
しかも、数値だからと言って、その値を連続的に扱ってよいものなのかどうかも不明です。(意味しているところがわからないので)
一方で、誰もB表なんて見ないのだけれど、体裁上何かが埋まっていないとならないという程度のものであるなら、VBAなど使わずとも、質問者様が「えいやっ!」っと適当に埋めてもよろしいのではないでしょうか。
ご質問の作業の目的を熟知なさっている方がいらっしゃるならば、その方に処理方法についても仰ぐのが筋だと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) VBA SUM関数を入力したい 6 2022/08/20 20:10
- Excel(エクセル) エクセルでエラーを無視して一番左側のセルの値を返したい 2 2023/07/27 13:06
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Visual Basic(VBA) A列にある値をB列・C列にVBAで切り出し 3 2022/04/09 19:20
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) セルを参照して条件で値をコピーする 3 2023/02/08 17:45
このQ&Aを見た人はこんなQ&Aも見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
最も近い数値のあるセルを探す
Excel(エクセル)
-
VBA 指定値に最も近い値のセルの行番号は?
Excel(エクセル)
-
Excelで一番ゼロに近い値を求めるには
Excel(エクセル)
-
-
4
Excelで指定した日付から過去の最も近い日付(指定した日付も含む)を下から検索する方法
Visual Basic(VBA)
-
5
VBAでシートコピー後、シート名が重複している時の処理
Access(アクセス)
-
6
指定範囲から任意の近似値を探したい
Excel(エクセル)
-
7
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA指定行削除
-
Worksheets メソッドは失敗しま...
-
空文字 "" ですが 空文字の意味...
-
VBAコンボボックスで選択した値...
-
B列の最終行までA列をオート...
-
VBAで指定範囲内の空白セルを左...
-
VBAでのリスト不一致抽出について
-
VBA カスタムオーダーのあと...
-
VBAを使って検索したセルをコピ...
-
VBAの初心者なのですが、「並び...
-
VBAを用いて条件付きの平均値、...
-
マクロについて。S列の途中から...
-
Cellsのかっこの中はどっちが行...
-
Excelで、あるセルの値に応じて...
-
vba 2つの条件が一致したら...
-
重複データをまとめて合計を合...
-
VBAのFind関数で結合セルを検索...
-
URLのリンク切れをマクロを使っ...
-
エラーコード1004
-
文字列の結合を空白行まで実行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
VBAを使って検索したセルをコピ...
-
文字列の結合を空白行まで実行
-
VBAのFind関数で結合セルを検索...
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
マクロ 最終列をコピーして最終...
-
VBA 何かしら文字が入っていたら
-
Changeイベントでの複数セルの...
-
URLのリンク切れをマクロを使っ...
-
エクセルVBAにて =A1=B1とすれ...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
マクロについて。S列の途中から...
-
VBA UserFormからの転記で
-
targetをA列のセルに限定するに...
おすすめ情報