「検索値」がFrom Toの間の値である場合に、「結果」の値を返したいのですが、
Excelの関数、もしくは、AccessのSQL等で実現できますでしょうか。
2つの表があります。
<表1>
[行番][検索値]
1; 1395
2; 2059
3; 0059
4; 5928
5; 3000
<表2>
[From] [To] [結果]
0000; 1000; A
1050; 2000; B
3000; 5000; C
※FromからToの間隔はランダムです。
また、前行のToと次行のFromも連続していない場合があります。
表1の行番1には、「B」
表1の行番2には、N/A を返す。
色々調べてみたのですが、解決策が見つかりませんでした。
ご教示頂けると幸甚です。
何卒よろしくお願い致します。
No.4
- 回答日時:
作業列を用意して地道に表計算すれば、簡単な数式のみでできます。
A ~ B 列の 2 行目以下に表 1 のデータを記入。G ~ I 列の 3 行目以下に表 2 のデータを記入。その上で、次式を記入。
H2 0 など
C2 =match(b2,g:g,1)
D2 =match(b2-10^-3,h:h,1)+1
E2 =if(c2=d2,index(i:i,c2),na())
H2 セルに 0 などを記入しておかないと、D 列の MATCH 関数は最初の区間を検出できません。D2 の「10^-3」という部分は、B 列と比べて十分に小さな値であれば幾つでも構わないので、B 列に小数が含まれるときは、適当に大きさを調節してください。
なお表 2 を Sheet2 に置きたいという場合は、ひとまず上のとおり同じシート上に 2 表とも作製した後、G ~ I 列の全体をコピーではなく切り取って、Sheet2 に貼り付けてください。上式に「Sheet2!」という記述が勝手に書き加えられます。
MarcoRossiItaly様
ご教示下さりありがとうございます。
ご指摘頂きました通り、私も作業列を用意してどうにか実現させたので、
手法は同じですが、D2列の式が私の考えたのよりスッキリしております。
自分のロジックと比較して、今後に活用したいとおもいます。
ありがとうございました。
No.3ベストアンサー
- 回答日時:
<表1>と<表2>を添付図のようにして考えました。
Excel2010です。セルB1に、
=IFERROR(INDEX($D$7:$F$9,SUMPRODUCT((ROW($D$7:$D$9)-ROW($D$7)+1)*($D$7:$D$9<=A1)*(A1<=$E$7:$E$9)),3),"N/A")
と入力して下にコピーします。「N/A」はエラーではなく、文字列にしています。
<表2>でFromToを満足する行を求めています。なければ「0」です。これでIndex関数で「ABC」を持ってこようとしています。
Excel2010(またはExcel2007)でなかったら、IfError関数を、
=If(IsError(Index(・・・)),"N/A",Index(・・・))
に書き換えてください。
また、<表1>と<表2>は行が重複しないように配置してください。行が重なると、Index関数で行を「0」にしたときにエラーが発生せず、結果が安定しない(重複した行の値を返すようです)ようです。行が重複しないと問題なくエラーが出ます。
nishi6様
素晴らしいですね。
SUMPRODUCT関数を初めてしりましたが、このように1行で解決できるとは、思ってもみませんでした。
とても勉強になりました。
ありがとうございました。
No.1
- 回答日時:
こんにちは!
VBAになってしまいますが一例です。
↓の画像のようにSheet2に対応表を作成しておきます。
そしてデータはSheet1のA列2行目以降にあり、結果をB列に表示させるとします。
Sheet1のシートモジュールにしてください。
Sub Sample1()
Dim i As Long, k As Long
With Worksheets("Sheet2")
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
k = WorksheetFunction.Match(Cells(i, "A"), .Range("A:A"), True)
If Cells(i, "A") >= .Cells(k, "A") And Cells(i, "A") <= .Cells(k, "B") Then
Cells(i, "B") = .Cells(k, "C")
Else
Cells(i, "B") = "N/A"
End If
Next i
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
tom04様
VBAでのご教示、ありがとうございます。
勉強になりました。
やはりVBAが書けると便利ですね。
ご教示頂いたロジックをもとに、VBAの勉強をしてみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 英語 「to不定詞」を目的語に直接取れない動詞で、なお「to不定詞」で表現したい場合の方法について 2 2022/07/11 10:17
- 英語 "seperate A from B"のAとBの関係性(時系列や包含関係)とその理由等について 1 2023/05/17 16:23
- TOEFL・TOEIC・英語検定 英検3級のライティングに関して質問があります。 定型パターンを何個か覚えておこうと考え下記を見つけま 6 2022/08/28 06:20
- オープンソース AWSドメイン名でApacheテスト・ページを表示させる方法を教えて下さい。 1 2023/04/26 15:59
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- 英語 Implants have a round cross-section, whereas natur 3 2022/10/09 23:09
- 英語 Systematic reviews have evaluated the efficacy of 2 2022/05/18 16:39
- PHP PHP MySql ページング 2 2022/09/20 06:38
- 英語 この"e-mail"が複数形でもなく、無冠詞なのはなぜですか? 「表現のための実践ロイヤル英文法」に 1 2022/07/10 16:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
腕を見たら黄色くなってる部分...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
勃起する時って痛いんですか? ...
-
精子が黄色?
-
口の中に黒い血の塊
-
白血球が多いとどんな心配があ...
-
尿検査前日に自慰行為した時の...
-
中出しをするとお腹が痛い・・・。
-
精子に血が・・・
-
これって喉仏ですか? 私は女性...
-
爪が紫色?
-
納豆食べた後の尿の納豆臭は何故?
-
筋トレするとチンコが縮んじゃ...
-
射精をして1週間以内に尿検査を...
-
尿検査の前日は自慰控えたほう...
-
EXCELで式からグラフを描くには?
-
excelでsin二乗のやり方を教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
白血球が多いとどんな心配があ...
-
中出しをするとお腹が痛い・・・。
-
射精をして1週間以内に尿検査を...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
変な話しになります。尿検査で...
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
男です。昨日の午後3時くらいに...
-
今朝、毎朝の習慣でオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
1日前の検尿
-
値が入っているときだけ計算結...
-
精子が黄色?
おすすめ情報