質問編集履歴

3

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

2021/06/23 07:58

投稿

MitAbe
MitAbe

スコア15

test CHANGED
File without changes
test CHANGED
@@ -68,20 +68,22 @@
68
68
 
69
69
  ```
70
70
 
71
-
71
+ ###上記を保管しているファイル名は「新・給与関係」という名前で、ファイル内は以下のようになっております。split_file というのが担当者枚に分けるコード(教えて頂いた)です。
72
+
72
-
73
+ ![イメージ説明](e7e75299f38f949b776c9431ba0e47f1.png)
74
+
75
+
76
+
73
-
77
+ ###上記質問に対し2パターンのご回答を頂きました。自分で実行するとどうしてもエラーが出てしまし、何が原因なのか分かりません。基本的な質問で誠に申し訳ありませんが何卒よろしくお願いいたします。
74
-
75
-
76
-
77
-
78
-
78
+
79
+
80
+
79
- ###各営業担当毎にデータを集計する為のコードです(教材の見よう見ねです。)
81
+ ###各営業担当毎にデータを集計する為のコードです(2パターンえて頂きした。)
82
+
83
+ お教えいただいたコード➀
80
84
 
81
85
  ```ここに言語を入力
82
86
 
83
-
84
-
85
87
  import openpyxl as excel, json
86
88
 
87
89
 
@@ -120,7 +122,13 @@
120
122
 
121
123
  sheet = excel.load_workbook(in_file).active
122
124
 
123
- for row in sheet.iter_rows():
125
+ for i, row in enumerate(sheet.iter_rows()):
126
+
127
+ #5行目からデータを読み取る
128
+
129
+ if i<4:
130
+
131
+ continue
124
132
 
125
133
  values = [col.value for col in row]
126
134
 
@@ -130,8 +138,6 @@
130
138
 
131
139
  users[name].append(values)
132
140
 
133
-
134
-
135
141
  return users
136
142
 
137
143
 
@@ -144,19 +150,17 @@
144
150
 
145
151
 
146
152
 
147
- for row in rows:
153
+ for row in rows:
148
-
149
-
150
-
154
+
151
- date, name, item, cnt, price, per = row
155
+ space,usercode, date, username, name, appointer,zipno, item, kouji, mobile, nazo, mail, cnt, price, per, bikou = row
152
156
 
153
157
  date_s = date.strftime('%m/%d')
154
158
 
155
-
156
-
157
159
  items.append([date_s, name, item, cnt, price, per])
158
160
 
161
+
162
+
159
- total += cnt * price
163
+ total += (cnt or 0) * (price or 0)
160
164
 
161
165
  return {'items':items, 'total': total}
162
166
 
@@ -166,6 +170,10 @@
166
170
 
167
171
  split_list()
168
172
 
173
+
174
+
175
+
176
+
169
177
 
170
178
 
171
179
 
@@ -174,14 +182,102 @@
174
182
 
175
183
  ```
176
184
 
177
- ###実行後のエラーです。
185
+ ###➀の実行後のエラーです。
186
+
178
-
187
+ ```ここに言語を入力1 0
188
+
179
-
189
+ 2 0
190
+
180
-
191
+ 3 0
192
+
193
+ 4 0
194
+
195
+ 5 0
196
+
197
+ 6 0
198
+
199
+ 7 0
200
+
201
+ 8 0
202
+
203
+ 9 0
204
+
205
+ 10 0
206
+
207
+ Traceback (most recent call last):
208
+
209
+ File "C:/Users/hannchou6/Desktop/新・給与関係/salesman.py", line 43, in <module>
210
+
211
+ split_list()
212
+
213
+ File "C:/Users/hannchou6/Desktop/新・給与関係/salesman.py", line 11, in split_list
214
+
215
+ result[name] = calc_user(rows)
216
+
217
+ File "C:/Users/hannchou6/Desktop/新・給与関係/salesman.py", line 36, in calc_user
218
+
181
- ![イメージ説明](37d0ebf38cc6d86fc7ef5f474ee32921.png)
219
+ date_s = date.strftime('%m/%d')
220
+
182
-
221
+ AttributeError: 'NoneType' object has no attribute 'strftime'
222
+
183
-
223
+ ```
224
+
184
-
225
+ ###各営業担当毎にデータを集計する為のコードです。
226
+
185
-
227
+ 教えて頂いたコード➁
228
+
229
+
230
+
186
-
231
+ ```ここに言語を入力
232
+
233
+ import pandas as pd
234
+
235
+
236
+
237
+ in_file = 'matome.xlsx'
238
+
239
+ df = pd.read_excel(in_file)
240
+
241
+ print(df)
242
+
243
+
244
+
245
+ print(df.groupby('担当者名2(アポインター)').sum()['金額'])
246
+
247
+ ```
248
+
249
+
250
+
187
- 何卒、ご教示程宜しくお願い致します。
251
+ ###➁実行後のエラーです。
252
+
253
+ ```ここに言語を入
254
+
255
+ Empty DataFrame
256
+
257
+ Columns: []
258
+
259
+ Index: []
260
+
261
+ Traceback (most recent call last):
262
+
263
+ File "C:\Users\hannchou6\Desktop\新・給与関係\split_list.py", line 7, in <module>
264
+
265
+ print(df.groupby('担当者名2(アポインター)').sum()['金額'])
266
+
267
+ File "C:\Users\hannchou6\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\frame.py", line 6717, in groupby
268
+
269
+ return DataFrameGroupBy(
270
+
271
+ File "C:\Users\hannchou6\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\groupby\groupby.py", line 560, in __init__
272
+
273
+ grouper, exclusions, obj = get_grouper(
274
+
275
+ File "C:\Users\hannchou6\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\groupby\grouper.py", line 811, in get_grouper
276
+
277
+ raise KeyError(gpr)
278
+
279
+ KeyError: '担当者名2(アポインター)'
280
+
281
+
282
+
283
+ ```

2

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

2021/06/23 07:58

投稿

MitAbe
MitAbe

スコア15

test CHANGED
File without changes
test CHANGED
@@ -77,6 +77,10 @@
77
77
 
78
78
 
79
79
  ###各営業担当毎にデータを集計する為のコードです(教材の見よう見まねです。)
80
+
81
+ ```ここに言語を入力
82
+
83
+
80
84
 
81
85
  import openpyxl as excel, json
82
86
 
@@ -166,7 +170,7 @@
166
170
 
167
171
 
168
172
 
169
- コード
173
+
170
174
 
171
175
  ```
172
176
 

1

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

2021/06/10 14:54

投稿

MitAbe
MitAbe

スコア15

test CHANGED
File without changes
test CHANGED
@@ -32,11 +32,51 @@
32
32
 
33
33
  ![イメージ説明](a1dc53fd3c6272fb9fddb549729da450.png)
34
34
 
35
+ ###エクセルからコピー致しました。行などがかなりずれてしまって見づらくて申し訳ありません。
36
+
37
+   顧客名がa1,a2... です。
38
+
39
+
40
+
41
+ ```ここに言語を入力
42
+
43
+
44
+
45
+ 顧客コード 日付 顧客名 担当者名(クローザー) 担当者名2(アポインター) 〒 住所1 工事内容 携帯電話 固定電話 メールアドレス 割引金額 金額 歩合率
46
+
47
+ 1 2021/6/7 a1 近藤 阿部 千葉県2-12-14 工事 090-xxxx-xxxx ¥2,200,000 12.0%
48
+
49
+ 2 2021/6/8 a2 近藤 阿部 神奈川県2-12-15 工事 91-xxxx-xxxx ¥4,560,000 12.0%
50
+
51
+ 3 2021/6/9 a3 近藤 阿部 北海道 工事 92-xxxx-xxxx ¥1,236,000 12.0%
52
+
53
+ 4 2021/6/10 a4 近藤 田中 沖縄県 工事 93-xxxx-xxxx ¥1,230,000 12.0%
54
+
55
+ 5 2021/6/11 a5 近藤 佐藤 沖縄県 工事 94-xxxx-xxxx ¥1,430,000 12.0%
56
+
57
+ 6 2021/6/12 a6 近藤 齋藤 沖縄県 工事 95-xxxx-xxxx ¥675,000 11.0%
58
+
59
+ 7 2021/6/13 a7 近藤 阿部 沖縄県 工事 96-xxxx-xxxx ¥324,000 10.0%
60
+
61
+ 8 2021/6/14 a8 近藤 阿部 沖縄県 工事 97-xxxx-xxxx ¥908,000 6.0%
62
+
63
+ 9 2021/6/15 a9 近藤 阿部 沖縄県 工事 98-xxxx-xxxx ¥564,000 9.0%
64
+
65
+ 10 2021/6/16 a10 近藤 阿部 沖縄県 工事 99-xxxx-xxxx ¥234,000 8.0%
66
+
67
+
68
+
69
+ ```
70
+
71
+
72
+
73
+
74
+
75
+
76
+
35
77
 
36
78
 
37
79
  ###各営業担当毎にデータを集計する為のコードです(教材の見よう見まねです。)
38
-
39
- ```
40
80
 
41
81
  import openpyxl as excel, json
42
82