No.1
- 回答日時:
マクロを使わなくても、関数だけで可能みたいですね。
・Sheet2のA列に商品コード、B列に商品名、C列に在庫が入力されているものとします。
・Sheet1のA列に商品コードを入れると、B列、C列に該当する商品の名称、在庫を表示するものとします。
1:Sheet1のB2のセルに
=VLOOKUP($A$2,Sheet2!$A:$C,2)
と入力
2:Sheet1のC2のセルに
=VLOOKUP($A$2,Sheet2!$A:$C,3)
と入力
3:B2,C2のセルを下のほうまでコピー
以上の操作でOKな筈です。
不明点とかありましたら、補足してください。
この回答への補足
これで、商品名の部分検索とかはできるのでしょうか?
商品名のはじめの5文字で検索とか含まれるものとか
ということです。
というのも商品コードがあるとなんとかなるのですが、
注文と在庫の一覧には商品コードがないんです。
(ちなみに当方、古書店です。書籍コードがない場合、
お客様が知らない場合があります。)
おそらく答えるのに、えらい長い行数がいると
思いますので、できる可能性があるかどうか教えて
いただければ、いいです。
できそうなら、自分でがんばってみたいです。
お手数かけまして申し訳ないです。
No.2
- 回答日時:
VBAがお解りになるなら、そんなに難しくはありません。
定期的に行う必要があるようでしたら、VBAでプログラム化したほうがべんりですよね。私は、同じようなことをVBAでやっています。
在庫表と注文表は別のブックにして、同時に両ブックを開き、照合もしています。
VBAなら、コマンドボタンにプログラムを貼り付けてやれば簡単です。
No.3
- 回答日時:
可能か不可能かってことでしたら、可能です。
部分一致を判定するためには、 Like 演算子を使います。
今回のご質問にはちょっと興味を惹かれましたので、暇つぶしに作ってみました。
参考にするなり、適当に改造するなりしてみてください。
解説が必要でしたら、補足をお願いします。
使い方
SearchDate(検索値, 検索範囲, 列番号, 検索方法, 出力セル範囲)
検索値: 略
検索範囲: 略
列番号: どの列を返すか。 1を指定すると、検索されたセルの内容を返す 2なら検索されたセルの右隣のセル内容、3なら更にその右隣のセル…
検索方法: 以下の値を数値で指定(完全一致=0, 先頭一致=1, 後方一致=2, 部分一致=3)
出力セル範囲: 検索した結果を書き出すセルの範囲 例: F1:F10
使用例:(A列に商品名,B列に価格が入力されている場合)
・適当なセルに
=SearchData("あ",A:B,2,3)
と記述(最初に検索された"あ"を含む商品の価格を表示する。)
・モジュールに
call SearchData("あ",Range("A:B"),1,部分一致 ,Range("F1:F100"))
call SearchData("あ",Range("A:B"),2,部分一致 ,Range("G1:G100"))
と記述(F1:F100の範囲に、"あ"を含む商品の一覧を出力,G1:G100に、その商品の価格を出力)
No.4ベストアンサー
- 回答日時:
Public Enum SearchPatternEnum
完全一致 = 0
先頭一致 = 1
後方一致 = 2
部分一致 = 3
End Enum
Public Function SearchData(検索値 As Variant, 検索範囲 As Range, Optional 列番号 As Long = 1, Optional 検索方法 As SearchPatternEnum, Optional 出力セル範囲 As Range = Nothing) As Variant
Dim RNG As Range
Dim SearchRng As Range
Dim SrchStr As String
Dim MaxRow As Long
Dim OutputRNG As Range
Dim MaxOutputPos As Long
Dim OutputPos As Long
If TypeOf 検索値 Is Range Then
SrchStr = 検索値.Value
Else
SrchStr = CStr(検索値)
End If
Select Case 検索方法
Case SearchPatternEnum.完全一致
'処理を行わない
Case SearchPatternEnum.先頭一致
SrchStr = SrchStr & "*"
Case SearchPatternEnum.後方一致
SrchStr = "*" & SrchStr
Case SearchPatternEnum.部分一致
SrchStr = "*" & SrchStr & "*"
End Select
If 出力セル範囲 Is Nothing Then
SearchData = CVErr(1)
Else
出力セル範囲.Clear
MaxOutputPos = 出力セル範囲.Cells.Count
OutputPos = 1
End If
For Each RNG In 検索範囲.Cells
If RNG.Value Like SrchStr Then
If MaxOutputPos = 0 Then
SearchData = Cells(RNG.Row, RNG.Column + (列番号 - 1))
Exit For
Else
出力セル範囲.Cells(OutputPos) = Cells(RNG.Row, RNG.Column + (列番号 - 1))
OutputPos = OutputPos + 1
If OutputPos > MaxOutputPos Then
Exit For
End If
End If
End If
If RNG.Row > RNG.Worksheet.UsedRange.Rows.Count Then
Exit For
End If
Next RNG
End Function
非常に丁寧な解答ありがとうございました。
これを見た瞬間、正直いって驚かされました。
ARCさんの回答を利用させていただきます。
あっという間に解決できそうです。
ほんとうにありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- Excel(エクセル) VBAで、シート間の転記するコードを教えてください。 4 2023/03/26 10:43
- Excel(エクセル) 前の(左隣の)シートを連続参照するように、あとから変更したい 1 2023/02/22 00:51
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
- Visual Basic(VBA) VBAでのループ順序について 3 2023/03/13 10:55
- Amazon アマゾン 7 2022/06/11 11:03
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
【Microsoft Office Excel Comp...
-
Excelはなんで先頭の0を消すん...
-
Excelのセルを飛ばして入力する
-
別シートからの文字を変更
-
エクセルの行の抽出について質...
-
Excelのオートフィル
-
Excel 2019 のピボットテーブル...
-
スプレッドシート クエリ関数 1...
-
excelの不要な行の削除ができな...
-
Excel初心者です。 詳しい方、...
-
【Excel】セル内の時間帯が特定...
-
Excel初心者です。 詳しい方、...
-
EXACT関数とIF関数の組み合わせ...
-
Excelのグラフ軸について
-
スマートな関数を教えて下さい。
-
Excelで全角を半角にしたいので...
-
【マクロ】エクセルにかいてあ...
-
Excel:一部のフォントでセルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報