質問するログイン新規登録

質問編集履歴

3

書式の改善 補足事項の追記

2021/06/23 07:58

投稿

MitAbe
MitAbe

スコア15

title CHANGED
File without changes
body CHANGED
@@ -33,13 +33,14 @@
33
33
  10 2021/6/16 a10 近藤 阿部 沖縄県 工事 99-xxxx-xxxx ¥234,000 8.0%
34
34
 
35
35
  ```
36
-
36
+ ###上記を保管しているファイル名は「新・給与関係」という名前で、ファイル内は以下のようになっております。split_file というのが担当者枚に分けるコード(教えて頂いた)です。
37
+ ![イメージ説明](e7e75299f38f949b776c9431ba0e47f1.png)
37
38
 
39
+ ###上記質問に対し2パターンのご回答を頂きました。自分で実行するとどうしてもエラーが出てしまし、何が原因なのか分かりません。基本的な質問で誠に申し訳ありませんが何卒よろしくお願いいたします。
38
40
 
39
-
40
- ###各営業担当毎にデータを集計する為のコードです(教材の見よう見ねです。)
41
+ ###各営業担当毎にデータを集計する為のコードです(2パターンえて頂きした。)
42
+ お教えいただいたコード➀
41
43
  ```ここに言語を入力
42
-
43
44
  import openpyxl as excel, json
44
45
 
45
46
  in_file = 'matome.xlsx'
@@ -59,36 +60,83 @@
59
60
  users = {}
60
61
 
61
62
  sheet = excel.load_workbook(in_file).active
62
- for row in sheet.iter_rows():
63
+ for i, row in enumerate(sheet.iter_rows()):
64
+ #5行目からデータを読み取る
65
+ if i<4:
66
+ continue
63
67
  values = [col.value for col in row]
64
68
  name = values[1]
65
69
  if name not in users: users[name] = []
66
70
  users[name].append(values)
67
-
68
71
  return users
69
72
 
70
73
  def calc_user(rows):
71
74
  total = 0
72
75
  items = []
73
76
 
74
- for row in rows:
77
+ for row in rows:
75
-
76
- date, name, item, cnt, price, per = row
78
+ space,usercode, date, username, name, appointer,zipno, item, kouji, mobile, nazo, mail, cnt, price, per, bikou = row
77
79
  date_s = date.strftime('%m/%d')
80
+ items.append([date_s, name, item, cnt, price, per])
78
81
 
79
- items.append([date_s, name, item, cnt, price, per])
80
- total += cnt * price
82
+ total += (cnt or 0) * (price or 0)
81
83
  return {'items':items, 'total': total}
82
84
 
83
85
  if __name__ == "__main__":
84
86
  split_list()
87
+
88
+
85
89
 
86
90
 
87
91
 
88
92
  ```
89
- ###実行後のエラーです。
93
+ ###➀の実行後のエラーです。
94
+ ```ここに言語を入力1 0
95
+ 2 0
96
+ 3 0
97
+ 4 0
98
+ 5 0
99
+ 6 0
100
+ 7 0
101
+ 8 0
102
+ 9 0
103
+ 10 0
104
+ Traceback (most recent call last):
105
+ File "C:/Users/hannchou6/Desktop/新・給与関係/salesman.py", line 43, in <module>
106
+ split_list()
107
+ File "C:/Users/hannchou6/Desktop/新・給与関係/salesman.py", line 11, in split_list
108
+ result[name] = calc_user(rows)
109
+ File "C:/Users/hannchou6/Desktop/新・給与関係/salesman.py", line 36, in calc_user
110
+ date_s = date.strftime('%m/%d')
111
+ AttributeError: 'NoneType' object has no attribute 'strftime'
112
+ ```
113
+ ###各営業担当毎にデータを集計する為のコードです。
114
+ 教えて頂いたコード➁
90
115
 
116
+ ```ここに言語を入力
91
- ![イメージ説明](37d0ebf38cc6d86fc7ef5f474ee32921.png)
117
+ import pandas as pd
92
118
 
119
+ in_file = 'matome.xlsx'
120
+ df = pd.read_excel(in_file)
121
+ print(df)
93
122
 
123
+ print(df.groupby('担当者名2(アポインター)').sum()['金額'])
124
+ ```
125
+
94
- 何卒、ご教示程宜しくお願い致します。
126
+ ###➁実行後のエラーです。
127
+ ```ここに言語を入
128
+ Empty DataFrame
129
+ Columns: []
130
+ Index: []
131
+ Traceback (most recent call last):
132
+ File "C:\Users\hannchou6\Desktop\新・給与関係\split_list.py", line 7, in <module>
133
+ print(df.groupby('担当者名2(アポインター)').sum()['金額'])
134
+ File "C:\Users\hannchou6\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\frame.py", line 6717, in groupby
135
+ return DataFrameGroupBy(
136
+ File "C:\Users\hannchou6\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\groupby\groupby.py", line 560, in __init__
137
+ grouper, exclusions, obj = get_grouper(
138
+ File "C:\Users\hannchou6\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\groupby\grouper.py", line 811, in get_grouper
139
+ raise KeyError(gpr)
140
+ KeyError: '担当者名2(アポインター)'
141
+
142
+ ```

2

書式の改善 補足事項の追記

2021/06/23 07:58

投稿

MitAbe
MitAbe

スコア15

title CHANGED
File without changes
body CHANGED
@@ -38,6 +38,8 @@
38
38
 
39
39
 
40
40
  ###各営業担当毎にデータを集計する為のコードです(教材の見よう見まねです。)
41
+ ```ここに言語を入力
42
+
41
43
  import openpyxl as excel, json
42
44
 
43
45
  in_file = 'matome.xlsx'
@@ -82,7 +84,7 @@
82
84
  split_list()
83
85
 
84
86
 
85
- コード
87
+
86
88
  ```
87
89
  ###実行後のエラーです。
88
90
 

1

回答者様からのご要望により直接データをのせた

2021/06/10 14:54

投稿

MitAbe
MitAbe

スコア15

title CHANGED
File without changes
body CHANGED
@@ -15,9 +15,29 @@
15
15
  なお添付写真は、自分で作成したダミーの顧客管理データとうです。
16
16
  ###自作の顧客管理シートです
17
17
  ![イメージ説明](a1dc53fd3c6272fb9fddb549729da450.png)
18
+ ###エクセルからコピー致しました。行などがかなりずれてしまって見づらくて申し訳ありません。
19
+   顧客名がa1,a2... です。
18
20
 
21
+ ```ここに言語を入力
22
+
23
+ 顧客コード 日付 顧客名 担当者名(クローザー) 担当者名2(アポインター) 〒 住所1 工事内容 携帯電話 固定電話 メールアドレス 割引金額 金額 歩合率
24
+ 1 2021/6/7 a1 近藤 阿部 千葉県2-12-14 工事 090-xxxx-xxxx ¥2,200,000 12.0%
25
+ 2 2021/6/8 a2 近藤 阿部 神奈川県2-12-15 工事 91-xxxx-xxxx ¥4,560,000 12.0%
26
+ 3 2021/6/9 a3 近藤 阿部 北海道 工事 92-xxxx-xxxx ¥1,236,000 12.0%
27
+ 4 2021/6/10 a4 近藤 田中 沖縄県 工事 93-xxxx-xxxx ¥1,230,000 12.0%
28
+ 5 2021/6/11 a5 近藤 佐藤 沖縄県 工事 94-xxxx-xxxx ¥1,430,000 12.0%
29
+ 6 2021/6/12 a6 近藤 齋藤 沖縄県 工事 95-xxxx-xxxx ¥675,000 11.0%
30
+ 7 2021/6/13 a7 近藤 阿部 沖縄県 工事 96-xxxx-xxxx ¥324,000 10.0%
31
+ 8 2021/6/14 a8 近藤 阿部 沖縄県 工事 97-xxxx-xxxx ¥908,000 6.0%
32
+ 9 2021/6/15 a9 近藤 阿部 沖縄県 工事 98-xxxx-xxxx ¥564,000 9.0%
33
+ 10 2021/6/16 a10 近藤 阿部 沖縄県 工事 99-xxxx-xxxx ¥234,000 8.0%
34
+
35
+ ```
36
+
37
+
38
+
39
+
19
40
  ###各営業担当毎にデータを集計する為のコードです(教材の見よう見まねです。)
20
- ```
21
41
  import openpyxl as excel, json
22
42
 
23
43
  in_file = 'matome.xlsx'