AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题 / 79313726
Accepted
Bobbo
Bobbo
Asked: 2024-12-28 20:00:15 +0800 CST2024-12-28 20:00:15 +0800 CST 2024-12-28 20:00:15 +0800 CST

使用 Textjoin 创建文本字符串,取决于 DropDown 中的选择

  • 772

我需要用字符串 (textjoin?) 填充单元格。字符串应包含唯一的 Price Art。以及其在列中占总数的百分比,取决于下拉列表中的选择。

  1. 我的“工作类型”有限:项目管理、工程、支持工作......
  2. 我有 1-4 个供应商报价
  3. 每个供应商的报价将细分为“作品类型”和艺术品价格。(艺术品价格的代码和数字会有所不同)

  1. 输入供应商名称
  2. 根据报价,对于每种类型的工作,将成本分解为艺术价格。
  3. 工作类型在 A 类,
  4. 费用在 C 号路口,
  5. Col D 的价格图
  6. 对下一个供应商重复从 1 开始的步骤...
  7. 当所有报价完成后,“工具”应该根据所选的供应商,为每种“工作类型”创建一个字符串,其中包含每种价格艺术和工作类型的总额百分比。

A11 - A18 - A... :输入工作类型(与 C1:K1 连接的下拉列表

C9:第一供应商名称

E9:第二个供应商名称...

C11 - C18 - C...:根据工作类型和价格艺术输入供应商的成本,obs工作类型可以有不同的价格艺术。

对所有列重复-EJ...

C2:K2:对于 B2 中选择的供应商,以及 A 列中所有唯一的“作品类型”,计算该作品类型每种价格艺术的百分比……(参见 C2)

在此处输入图片描述

excel-formula
  • 1 1 个回答
  • 70 Views

1 个回答

  • Voted
  1. Best Answer
    P.b
    2024-12-28T21:35:01+08:002024-12-28T21:35:01+08:00
    =LET(range,A9:G18,
         c,CHOOSECOLS,
         d,DROP,
         u,UNIQUE,
         header,d(TAKE(range,1),,-1),
         h,TOCOL(header,1),
         data,d(range,1),
         f,LAMBDA(a,b,FILTER(a,header=b)),
         j,TOROW(u(c(data,1))),
    HSTACK(u(TOCOL(h)),
           REDUCE(u(d(j,,1),,1),d(h,1),LAMBDA(k,l,
           VSTACK(k,
                  MAP(d(j,,1),LAMBDA(m,
                      LET(g,GROUPBY(f(d(data,,1),l),f(d(data,,-1),l),PERCENTOF,,0,,c(data,1)=m),
    TEXTJOIN("; ",,IFERROR(ROUND(c(g,2)*100,)&"% "&c(g,1),"-"))))))))))
    

    您的输入范围从 A 列的哪里range开始,从供应商数据的起始位置开始(包括标题)。

    cETA 是使用字母作为函数 CHOOSECOLS()、dDROP() 和uUNIQUE()。

    header从输入范围中获取标题值,但不包括最终单元格值(合并单元格的)。

    h从中取出空单元格headers。

    data是不包括标题行的输入范围。

    fa是一个 FILTER 函数,用于过滤值header等于的输入范围B2。

    j是第一列的值data

    g在过滤后创建百分比摘要Price Artikel,其中Cost数据的第一列值等于第 1 行标题值的值。

    接下来,将各列g连接起来并包装在 TEXTJOIN 中,每个列Type of work使用 MAP 进行连接,每个列Name supplier使用 REDUCE 进行连接。

    在此处输入图片描述

    我用于测试的数据样本,其中供应商 1 和供应商 2 是合并单元格:

    一个 乙 碳 德 埃 弗
    9 名称供应商 供应商 1 供应商 2
    10 工作类型 工作描述 成本 商品价格 成本 商品价格
    11 光电倍增管 100 AAA 23 AAA
    12 光电倍增管 50 社保局 3465 社保局
    十三 英语 43 ddd 1234 ddd
    14 土建工程 23 社保局 5467 呼呼
    15 土建工程 56 ddd 3453 QQ
    16 试验 234 QQ 3245 RRRR
    17 光电倍增管 150 AAA 56 呼呼
    18 光电倍增管 75 韓國 456 韓國

    编辑:这是一个避免使用 GROUPBY 的版本:

    =LET(supplier,TOCOL(C9:J9,1),
         work,UNIQUE(TOROW(A11:A39,1),1),
    VSTACK(HSTACK("Type of work:",work),
           HSTACK(supplier,
                  DROP(REDUCE("",TOCOL(C9:J9,1),
                       LAMBDA(g,x,
                              VSTACK(g,
                                     MAP(UNIQUE(TOROW(A11:A39,1),1),
                                  LAMBDA(y,
                                         LET(m,MATCH(x,C9:J9),
                                             p,FILTER(CHOOSECOLS(C11:J39,m+{1,0}),A11:A39=y),
                                             f,FILTER(p,TAKE(p,,1)<>""),
                                             t,TAKE(f,,1),
                                             n,DROP(f,,1),
                                             u,UNIQUE(t),
                                         IFERROR(TEXTJOIN("; ",,u&" "&ROUND(MAP(u,LAMBDA(v,SUM(n*(t=v))))/SUM(n)*100,)),
                                                 ""))))))),
                       1))))
    
    • 1

相关问题

  • 如何在Excel中编写一个公式,向后求和直到找到一个值

  • 如何创建带有可以“跳到”所需开始周的文本的时间线?

  • EXCEL INDIRECT 返回奇怪的值

  • 如何在 Excel 中查找数据带的最长连续持续时间

  • 如果存在不匹配则标记为 False

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    为什么这个简单而小的 Java 代码在所有 Graal JVM 上的运行速度都快 30 倍,但在任何 Oracle JVM 上却不行?

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    何时应使用 std::inplace_vector 而不是 std::vector?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Marko Smith

    我正在尝试仅使用海龟随机和数学模块来制作吃豆人游戏

    • 1 个回答
  • Martin Hope
    Aleksandr Dubinsky 为什么 InetAddress 上的 switch 模式匹配会失败,并出现“未涵盖所有可能的输入值”? 2024-12-23 06:56:21 +0800 CST
  • Martin Hope
    Phillip Borge 为什么这个简单而小的 Java 代码在所有 Graal JVM 上的运行速度都快 30 倍,但在任何 Oracle JVM 上却不行? 2024-12-12 20:46:46 +0800 CST
  • Martin Hope
    Oodini 具有指定基础类型但没有枚举器的“枚举类”的用途是什么? 2024-12-12 06:27:11 +0800 CST
  • Martin Hope
    sleeptightAnsiC `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它? 2024-11-09 07:18:53 +0800 CST
  • Martin Hope
    The Mad Gamer 何时应使用 std::inplace_vector 而不是 std::vector? 2024-10-29 23:01:00 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST
  • Martin Hope
    MarkB 为什么 GCC 生成有条件执行 SIMD 实现的代码? 2024-02-17 06:17:14 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve