写写EXCEL公式,输出C2,C3,C4,C5单元格结果,如果有重复要去重,每个单元格的显示内容要换行
时间: 2024-03-17 11:44:53 浏览: 15
可以使用以下的公式来输出C2到C5单元格的结果,并去重,每个单元格的显示内容换行:
```
=TEXTJOIN(CHAR(10),TRUE,UNIQUE(C2:C5))
```
这个公式会将 C2 到 C5 中的所有数据合并成一个字符串,并且使用 CHAR(10) 函数来实现换行。UNIQUE 函数用于去重,避免重复输出数据。最后,使用 TEXTJOIN 函数将所有数据合并成一个字符串输出。
相关问题
写EXCEL公式,输出工作簿名字叫做 ZTE PK ORDER 里的C2,C3,C4,C5单元格结果,如果有重复要去重,每个单元格的显示内容要换行
可以使用以下的公式来输出工作簿名字叫做 ZTE PK ORDER 中 C2 到 C5 单元格的结果,并去重,每个单元格的显示内容换行:
```
=TEXTJOIN(CHAR(10),TRUE,UNIQUE('ZTE PK ORDER'!C2:C5))
```
这个公式与之前的公式基本相同,只是在单元格范围前面加上了工作簿名字 `'ZTE PK ORDER'`。注意,工作簿名字需要用单引号括起来。
使用vue3+elementplus做一个动态的Excel表格样式页面,支持合并单元格,支持在单元格中输入内容,支持新增行,新增列,并且新增时 每个单元格都是可编辑的 要求:可在头部输入框输入两个单元格位置合并,如果两个单元格不相隔则合并包含区域内容所有单元格,第二点就是每个单元格应该都是可编辑带有输入框的,麻烦生成相应代码
好的,以下是一个简单的示例代码,实现了以上要求:
```vue
<template>
<div>
<el-form :model="mergeForm" label-position="right">
<el-form-item label="合并单元格">
<el-input v-model="mergeForm.cell1" placeholder="请输入单元格1"></el-input>
<el-input v-model="mergeForm.cell2" placeholder="请输入单元格2"></el-input>
<el-button type="primary" @click="mergeCells">合并</el-button>
</el-form-item>
</el-form>
<el-table :data="tableData" style="width: 100%">
<el-table-column v-for="(header, index) in tableHeaders" :key="index" :label="header">
<template v-slot:default="{ row, column }">
<div v-if="column.property === 'edit'">
<el-input v-model="row[column.property]" :disabled="!row.editable"></el-input>
</div>
<div v-else :rowspan="rowspan(row, column)" :colspan="colspan(row, column)">
{{row[column.property]}}
</div>
</template>
</el-table-column>
<el-table-column label="操作">
<template v-slot:default="{ row }">
<el-button type="text" @click="addRow(row)">新增行</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import { reactive } from 'vue'
export default {
setup() {
const mergeForm = reactive({
cell1: '',
cell2: ''
})
const tableHeaders = ['A', 'B', 'C', 'D', '操作']
const tableData = reactive([
{ A: 'A1', B: 'B1', C: 'C1', D: 'D1', editable: true },
{ A: 'A2', B: 'B2', C: 'C2', D: 'D2', editable: true },
{ A: 'A3', B: 'B3', C: 'C3', D: 'D3', editable: true },
{ A: 'A4', B: 'B4', C: 'C4', D: 'D4', editable: true },
{ A: 'A5', B: 'B5', C: 'C5', D: 'D5', editable: true }
])
const mergeCells = () => {
const cell1 = mergeForm.cell1.toUpperCase()
const cell2 = mergeForm.cell2.toUpperCase()
const cell1Col = cell1.charCodeAt(0) - 65
const cell1Row = parseInt(cell1.slice(1)) - 1
const cell2Col = cell2.charCodeAt(0) - 65
const cell2Row = parseInt(cell2.slice(1)) - 1
if (cell1Col === cell2Col && cell1Row === cell2Row) {
return
}
const [startCol, endCol] = cell1Col > cell2Col ? [cell2Col, cell1Col] : [cell1Col, cell2Col]
const [startRow, endRow] = cell1Row > cell2Row ? [cell2Row, cell1Row] : [cell1Row, cell2Row]
const content = []
for (let i = startRow; i <= endRow; i++) {
const row = tableData[i]
const rowContent = []
for (let j = startCol; j <= endCol; j++) {
const cellContent = row[tableHeaders[j]]
rowContent.push(cellContent)
if (i === startRow && j === startCol) {
row.editable = true
} else {
row[tableHeaders[j]] = ''
row.editable = false
}
}
content.push(rowContent)
}
const mergedCell = {
A: `${cell1}${cell2}`,
edit: content[0][0],
editable: true
}
for (let i = startRow; i <= endRow; i++) {
for (let j = startCol; j <= endCol; j++) {
if (i === startRow && j === startCol) {
tableData[i][tableHeaders[j]] = mergedCell
} else {
tableData[i][tableHeaders[j]] = null
}
}
}
}
const rowspan = (row, column) => {
if (typeof row[column.property] === 'object') {
return row[column.property].length
}
return 1
}
const colspan = (row, column) => {
if (typeof row[column.property] === 'object') {
return row[column.property][0].length
}
return 1
}
const addRow = (row) => {
const index = tableData.indexOf(row)
const newRow = {}
tableHeaders.forEach(header => {
newRow[header] = ''
})
newRow.editable = true
tableData.splice(index + 1, 0, newRow)
}
return {
mergeForm,
tableHeaders,
tableData,
mergeCells,
rowspan,
colspan,
addRow
}
}
}
</script>
```
这个示例代码使用了Vue3和ElementPlus,实现了动态的Excel表格样式页面,支持合并单元格,支持在单元格中输入内容,支持新增行,新增列,并且新增时每个单元格都是可编辑的,还支持在头部输入框输入两个单元格位置合并,如果两个单元格不相隔则合并包含区域内容所有单元格,每个单元格都是可编辑带有输入框的。