##読み込みしたExcelの値が、リストの複数の値のどれかの値に一致する場合、処理をスキップしたい。1つだと実行できるが変数だとエラーになる
python で openpyxl で 顧客の注文内容を読み込みし、順番に2列目のセルの値を取得していきます(処理分の内容)
その際に、特定の商品番号(複数)と一致する場合は、そのセルをスキップし次の商品番号を取得したい場合
1つの値 <例>商品番号3
x=(3)
if (ws1.cell(row,2).value) == x:とすると
思い通りに 11行目の商品番号3をスキップして実行できましたが、
これを 1つの値ではなく、複数の値と一致する値をスキップしたい
例:取得しない商品番号のリストを作成しておいて、
セルで読み込みした値が、リストの商品番号に一致する場合はスキップ
リスト 商品番号3 商品番号6
取得して実行するのは りんご、みかん、メロン
(商品番号 3 バナナ 商品番号6 いちご はスキップしたい)
python
1x=(3)#商品番号の値 1つだと正常に動作(3をスキップする) 2from openpyxl import Workbook 3from openpyxl import load_workbook 4wb = load_workbook('./customer.xls') 5ws = wb['Sheet1'] 6 7for row in range(9,ws1.max_row): 8 9 if (ws1.cell(row,2).value) == x:#1つの値だと正常に動作(11行目の商品番号3をスキップして処理文と実行する→複数のリストの変数ではエラーになる 10 continue 11 if(ws1.cell(row,2).value is None): 12 break 13 処理文 14
customer.xlsの内容
|見出し行|商品番号|数量|商品名|
|:--|:--:|--:|
|9行目|10530|10|りんご
|10行目|20433|20|みかん
|11行目|3|30|バナナ
|12行目|6|80|いちご
|14行目|4005|5|メロン
複数の値を参照されるにはどうしたらいいのでしょうか?
for文で リスト1つずつ参照しても 出来ませんでした
python
1lists= [3,6]#商品番号3と商品番号6 複数の値を参照したい 2from openpyxl import Workbook 3from openpyxl import load_workbook 4wb = load_workbook('./customer.xls') 5ws = wb['Sheet1'] 6 7for row in range(9,ws1.max_row): 8 9 for x in lists: 10 if (ws1.cell(row,2).value) == x: 11 12 continue 13 if(ws1.cell(row,2).value is None): 14 break 15 処理文
ありがとうございます if ws1.cell(row,2).value in lists:で スキップ出来ました!
追加の質問させてください
追加質問
逆に 読み込みしているセルに商品番号が含まれる場合に、continueでスキップするのではなく
セルに含まれていた商品番号と、その右の数量を取得できますか?
さらに先程の例では、customer.xls のセルに 商品名が含まれていましたが、実際には 商品番号と数量だけで
商品名は読み込みしたシートの値は記入されていませんでした
そこで、lists の抜き出したい リストの方に、商品名と価格を記載しておき、
商品番号(リストの値がセルに存在する番号)・数量(セルに商品番号が存在する時の右列)・商品名(listsの方から参照)・価格(listsの方から参照) をセットにして取り出しするには
どうしたらいいのでしょうか・・・
セルの内容が下記のように 商品番号と数量の2つだけのリストだった場合(商品名・価格は記載されていない)
読み込みしたセルに リストの商品番号が存在する場合の、セルの値、セルの数量、特定のリストから商品番号が一致する商品名と価格 4つをセットにして取り出しできますか?
◆要するに、特定のリスト(番号・商品名・価格)の番号で 読み込みセルを検索して 含まれている番号がある場合、数量を取り出して、特定のリスト3つに数量1つをセットにして
4つの値を取得したいです
(取り出した4つの値は、pandasのDataframeに追加したい)
具体例
特定のリスト(除外する商品番号・商品名・価格 と3つセットで登録しておきたい
3:バナナ:¥100
6:いちご:¥300
(実際には10個程度 別処理したい商品番号が存在する)
読み込みセル
見出し行 | 商品番号 | 数量 |
---|---|---|
9行目 | 10530 | 10 |
10行目 | 20433 | 20 |
11行目 | 3 | 30 |
12行目 | 6 | 80 |
14行目 | 4005 | 5 |
##下記のデータ4つをセットにして取得したい(後にpandasのdataframeに追記したい)
3(特定のリストでセルに存在する商品番号):バナナ:¥100 30個 ←数量をセルから取得
6(特定のリストでセルに存在する商品番号):いちご:¥300 80個 ←数量をセルから取得
まだ初心者で 辞書型を使ったらできるのかな?と思うものの、2つ以上の値を辞書で登録できるかどうかもわからず・・
何卒 ヒントをいただけますと幸いです
◆前提とする問題と 大きく変わってしまったので、再質問にするかもしれません。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/21 03:25
2021/07/21 05:32
2021/07/21 08:39
2021/07/21 09:36