A 回答 (7件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>例えば、指定セルに502と入力した場合、右隣のセルにC02と表示されるような関数を教えてください。
D1セルに値を入力して、E1セルに結果を表示するなら
E1セルに、
=VLOOKUP(D1,A:C,3)
なんだけど、質問の例では連続した範囲じゃないから少し工夫してください。
例えば、701から724の範囲を示すC列には「空白」を入力する…など。
VLOOKUP関数は入力された数字を含むそれ以下の値を探して、該当する列の値を参照することができます。
同じ値を探すだけと思っている方もいらっしゃいますが、その場合はVLOOKUP関数の4番目の引数に「0」または「FALSE」を指定します。
4番目が省略または「1」あるいは「TRUE」が指定されると、上記のような検索方法になります。
No.3
- 回答日時:
こんにちは!
数値が連続している場合はVLOOKUP関数の「TRUE」型で対応できますが、
わざわざ表に手を加えるのは面倒なので、手っ取り早くVBAでの一例です。
↓の画像のような配置だという前提で・・・
シートモジュールにしてください。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, myFlg As Boolean
If Target.Address = "$E$2" Then '←「E2」は数値を入力するセル番地//
With Target
If .Value <> "" Then
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
If .Value >= Cells(i, "A") And .Value <= Cells(i, "B") Then
myFlg = True
Range("F2") = Cells(i, "C") '←「F2」は結果を表示するセル番地//
End If
Next i
Else
Range("F2").ClearContents
Exit Sub
End If
If myFlg = False Then
Range("F2") = "該当なし"
End If
End With
End If
End Sub
こんな感じではどうでしょうか?m(_ _)m
早急に教えて頂きまして有難うございました。
早速シートモジュールに張り付けてみました。上手くいきました。
悩みが解決しました。有難うございました。
No.4
- 回答日時:
添付の図のように指定のセルがF2とします。
(ここに番号が入ります)G2へ
=IF(F2="","",IF(MAX((F2>=A2:A100)*(F2<=B2:B100)*ROW(A2:A100))=0,"該当なし",INDEX(C1:C100,MAX((F2>=A2:A100)*(F2<=B2:B100)*ROW(A2:A100)))))
と入力し
Shift+Ctrl+Enterキーを同時に押します。(配列数式です。式の両端が{}で囲まれます。添付図の黄色部分)
それで、完了です。
指定のセルがF2でないときは、F2を該当のセルに置き換えてください。
No.5
- 回答日時:
どんな方法でも思い通りの結果が表示できればいいのですが、
修正や改良をする時に分からないのでは意味が無いと思いますので、
他の一例も提示させてもらいますね。
自分が内容を一番理解できる方法でやってください。
D1を指定セル、E1を表示セルとしますね。
E1=IF(COUNTIF(A:B,D1)=0,"該当なし",IF(COUNTIF(B:B,D1)=0,VLOOKUP(D1,A:C,3,FALSE),VLOOKUP(D1,B:C,2,FALSE)))
式の意味としては、
「COUNTIF(A:B,D1)」によって、A~Bの列にD1に一致するセルがいくつあるか数えます。
「IF(…=0,”該当なし”」によって、先ほどの数が0だった場合、該当なしと表示します。
「…,IF(COUNTIF(B:B,D1)=0,VLOOKUP(D1,A:C,3,FALSE)」によって、同様にB列にD1と一致するセルが無かった場合、A列からD1に一致するセルを探し、その行のC列に表示されているデータを取得します。
「,VLOOKUP(D1,B:C,2,FALSE)))」によって、B列にD1と一致するセルがあった場合、B列からD1に一致するセルを探し、その行のC列に表示されているデータを取得します。
という内容になっているのです。
よろしければご参考まで。
No.6
- 回答日時:
すいません。
読み直したところ、勘違いしておりました。A,Bに一致するかではなく、A~Bに一致するか、ですね。
A~C列が1~100行に入力されていて、指定セルがD1、検索表示セルがE1として、
以下の様に修正します。
E1=IF(SUMPRODUCT((D1>=A1:A100)*1,(D1<=B1:B100)*1,ROW(C1:C100))=0,"該当なし",INDIRECT("C"&SUMPRODUCT((D1>=A1:A100)*1,(D1<=B1:B100)*1,ROW(C1:C100))))
まずIFですが
SUMPRODUCT((D1>=A1:A100)*1,(D1<=B1:B100)*1,ROW(C1:C100))=0
なら”該当なし”と表示する。
そうでなければINDIRECT("C"& 先ほどの式 ) となっています。
SUMPRODUCT((D1>=A1:A100)*1,(D1<=B1:B100)*1,ROW(C1:C100))
というのは、A1~A100にD1以下のものがあるか判断し、B1~B100にD1以上のものがあるか判断し、両方に該当する行があれば、その行番号を取得する。という式になっています。
もう少し詳しく説明すると、
「,」で区切られた3種類を別々に判定しています。
A1~A100で判断した結果を、TRUEとFALSEで判定し、*1によってそれを1と0に変換しています。
つまり、質問者の出している例では(1,1,0,0…)と判定されています。
そしてB1~B100によって(0,1,1,1…)と判定されています。
更にROW(C1:C100)にはC1~C100の行番号が入っているので、(1,2,3,4…)となっています。
そしてこれらの結果が対応するもの同士で掛け算されます。
具体的には(1*0*1,1*1*2,0*1*3,0*1*4…)となっているので、(0,2,0,0…)という結果になります。
そして、最後にそれらを合計するので、この場合2となります。
この2がINDIRECT("C"& 先ほどの式 )に入ると、INDIRECT("C"&2)となり、C2のセルに表示されているデータを取得することができます。
最初のIF文では、この数値が=0、つまり一致するものが1つも無かった場合に、"該当なし"と表示するように指定しているわけですね。
長々と失礼しました。
細かくご説明頂きまして有難うございます。
関数の一つ一つの意味がしっかりと理解できました。
もう一つ質問させて頂いても宜しいでしょうか?
当初の質問にプラス「年」があった事を説明に書き忘れておりました。
●列 A列 B列 C列
2013 100 500 C0111
2013 501 700 C0112
2013 725 798 C0114
2014 001 430 C0211
2015 010 525 C0311
●列と書いたのは、実はA列の左にあった為です。
A列B列にデータを入力する際、頭に年を入れるという力業?で
解決する事も考えましたが、教えて頂いた関数に何かをプラスする事で
解決する事は可能でしょうか?
お手数ですが、教えて頂けると大変助かります。
宜しくお願い致します。
No.7
- 回答日時:
A列の左に●列があった場合、式がどう変化すると言うことでしょうか?
であれば、
先ほど「A~C列が1~100行に入力されていて、指定セルがD1、検索表示セルがE1として、」としていたものを、
「B~D列が1~100行に入力されていて、指定セルがE1、検索表示セルがF1として、」という条件に変更させてもらい、
F1=IF(SUMPRODUCT((E1>=B1:B100)*1,(E1<=C1:C100)*1,ROW(D1:D100))=0,"該当なし",INDIRECT("D"&SUMPRODUCT((E1>=B1:B100)*1,(E1<=C1:C100)*1,ROW(D1:D100))))
となりますね。
ご質問された内容に則してない様であれば再度説明いただけると助かります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 先頭と末尾を指定して連続した数字を入力 1 2022/09/14 13:12
- Excel(エクセル) エクセルの関数で質問です。 3 2023/02/24 14:07
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) 【VBA】A列の指定した値と同じ行にあるD列の値を順番にコピペするマクロについて 4 2023/02/01 18:16
- Excel(エクセル) B列に、A列の数字が偶数の場合は1減算した数字、奇数の場合はそのまま数字を自動表示したい 4 2022/04/16 12:01
- Excel(エクセル) エクセル2013「次のページ数に合わせて印刷」が小さすぎる 9 2023/03/28 10:18
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Excel(エクセル) エクセルの書式設定の表示形式で設定した文字を文字列としてコピーしたい 1 2022/12/21 10:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの作業計算方法について
-
はがきについて。
-
エクセル 文字を増やしたい。
-
セルの内容表示が邪魔になる
-
Microsoft365に変えたのですが...
-
エクセルの計算
-
Microsoft1Officeの互換ソフト...
-
【マクロ】その時、その時で変...
-
【マクロ】読取専用のファイル...
-
エクセル初心者です 関数の入れ...
-
Excel ピボットテーブルで日付...
-
【関数】適切な文字数の数字を...
-
LOOKUP関数を使えばいいのでし...
-
Aというブックの1というシート...
-
エクセル関数を教えてください
-
Excelのチェックボックスの使い...
-
エクセル 白黒印刷で白線を印刷...
-
時間によってファイル名が変わ...
-
WPS OFFICEでの縦書きについて
-
エクセルの条件付き書式につい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報