前言
-
什么是贝尔宾团队角色理论?
基本思想是:没有完美的个人,只有完美的团队。人无完人,但团队却可以是完美的团队,只要适当的拥有如下各种角色。 -
产生来源
团队角色理论是英国组织行为学家、英国剑桥产业培训研究部前主任梅雷迪思·贝尔宾(R.Meredith Belbin)提出的一个分析团队角色和团队合作的一个理论模型。贝尔宾是团队工作理论的早期倡导者,为了研究团队取得成功的原因,他进行了两个为期 9 年的重要研究团队试验。1981 年,贝尔宾首次在《团队管理:他们为什么成功或失败》(Management Teams - Why They Succeed or Fail)一书中提出了贝尔宾团队角色模型,经过12 年的推广应用和修正,于 1993 年再次提出了修正的研究成果。 -
基本理念
其基本理念是:在团队中,人们除了承担工作角色、或功能角色之外,还在承担团队角色。前者多与人们的专业技能、职位水平有关,而后者则反映了人们的兴趣、性格以及思维方式所决定的一种特定行为模式。 -
说明
前几天公司要求做了一个贝尔宾团队角色测评,但是在统计结果的时候发现过于麻烦,所以写了个简单的程序计算测评结果,本程序把最高分和最高分-1选为测评结果的角色
贝尔宾团队角色测评
- 测评内容
- 测试结果表
- 团队角色测试分析表
- 测试结果说明
结果计算
- python实现测评结果测算使用说明
本程序可以实现批量的根据test文件夹下的测试结果表计算8个团队角色的得分,根据最大分数以及最大分数减一得出所属团队角色(可能是多个),根据test文件夹下excel的文件名在团队角色测试分析表中生成一个新的sheet,把生成的结果存放在这个sheet中。 - python实现测评结果目录说明
- 结果
- python实现测评结果测算源码
# -*- coding:utf8 -*- # @Project : flask_review # @Author : qxq # @Time : 2019/9/22 3:22 PM import os import openpyxl import pandas as pd from openpyxl.styles import Alignment, Font, colors def get_test_result(team_role_test_analysis_table, scores_table): a = pd.read_excel(team_role_test_analysis_table, header=2, index_col=0) b = a.ix[0:7] analysis_table_info = b.dropna(axis=1) all_list = [] scores_list = [] role_dict = {} for i in analysis_table_info.columns: # globals()[i[:2] + "_list"] = list(analysis_table_info[i]) exec(i[:2] + "_list = {}".format(list(analysis_table_info[i]))) all_list.append(i[:2] + "_list") exec(i[:2] + " = 0") scores_list.append(i[:2]) role_dict[i[:2]] = i[2:] scores_table_info = pd.read_excel(scores_table, index_col=0) for i, idx in enumerate(scores_table_info.index): for j, v in enumerate(scores_list): # globals()[v] += scores_table_info.ix[idx][eval(all_list[j])[i]] exec(v + " += {}".format(scores_table_info.ix[idx][eval(all_list[j])[i]])) new_title = scores_table.split('.')[0] wb = openpyxl.load_workbook(team_role_test_analysis_table) if new_title in wb.sheetnames: wb.remove(wb[new_title]) copy_sheet = wb.copy_worksheet(wb["Sheet1"]) copy_sheet.title = new_title # 水平居中, 垂直居中 alignment_style = Alignment(horizontal='center', vertical='center') scores_value_list = [] for i, v in enumerate(scores_list): copy_sheet.cell(row=11, column=(i + 1) * 2).value = eval(v) copy_sheet.cell(row=11, column=(i + 1) * 2).alignment = alignment_style copy_sheet.cell(row=11, column=(i + 1) * 2).font = Font(size=16, color=colors.RED, bold=True) scores_value_list.append(eval(v)) max_v = max(scores_value_list) index_flag = 0 max_index_list = [] for i in range(scores_value_list.count(max_v)): max_index = scores_value_list.index(max_v, index_flag) max_index_list.append(max_index) index_flag = (max_index + 1) s_index_list = [] s_max_v = max_v - 1 if scores_value_list.count(s_max_v): index_flag = 0 for i in range(scores_value_list.count(s_max_v)): max_index = scores_value_list.index(s_max_v, index_flag) s_index_list.append(max_index) index_flag = (max_index + 1) ret_list = [] for i in max_index_list: ret_list.append(role_dict[scores_list[i]]) for i in s_index_list: ret_list.append(role_dict[scores_list[i]]) ret_str = '、'.join(ret_list) ret = " {} ".format(ret_str) copy_sheet.cell(row=15, column=5).value = ret copy_sheet.cell(row=15, column=5).alignment = Alignment(horizontal='left', vertical='center') copy_sheet.cell(row=15, column=5).font = Font(size=16, bold=True, underline="single") wb.save(team_role_test_analysis_table) if __name__ == '__main__': team_role_test_analysis_table = "团队角色测试分析表.xlsx" first_file_dir = os.getcwd() team_role_test_analysis_table = first_file_dir + "/" + team_role_test_analysis_table dir = 'test' os.chdir(dir) file_dir = os.getcwd() files = list(os.walk(file_dir))[0][-1] for file in files: if file.split('.')[1] == 'xlsx': get_test_result(team_role_test_analysis_table, file)
网盘地址
文档、表格、源码、测试数据等资料存放网盘地址: https://pan.baidu.com/s/1_B3VToqDkT5ohFX66ea3IQ