如何组合使用VLOOKUP和ROUND函数的多个IF语句?

问题描述 投票:0回答:1

我希望在 Google 表格中简化这个公式。

=CONCATENATE(IF(VLOOKUP($E85,'2024 Master Data'!$C:$T,11,0)=0," ",concatenate(char(10),VLOOKUP($E85,'2024 Master Data'!$C:$T,11,0)," ",IF(ISNUMBER(VLOOKUP($E85,'2024 Master Data'!$C:$T,12,0))=TRUE, ROUND(VLOOKUP($E85,'2024 Master Data'!$C:$T,12,0),2), VLOOKUP($E85,'2024 Master Data'!$C:$T,12,0)))))
  • 目标是引用另一张名为“2024 年主数据”的工作表,并将多个单元格中的信息合并到一个单元格中。

  • 第一根弦是木材类型,第二根弦是木材数量。

  • 只有当木材类型不为空时,我们才要创建一个新行并显示木材类型,后跟数量

    • IF(VLOOKUP($E85,'2024 Master Data'!$C:$T,11,0)=0," ",concatenate(char(10),VLOOKUP($E85,'2024 Master Data'!$C:$T,11,0)," ",...
      
  • 如果木材类型是数字,那么我们希望将其四舍五入到小数点后两位,如果不是,我们希望显示文本。

  •  IF(ISNUMBER(VLOOKUP($E85,'2024 Master Data'!$C:$T,12,0))=TRUE, ROUND(VLOOKUP($E85,'2024 Master Data'!$C:$T,12,0),2), VLOOKUP($E85,'2024 Master Data'!$C:$T,12,0))
    

有什么办法可以让这件事变得不那么复杂吗?该公式仅拉动 1 种木材类型和木材数量。最多可能需要 7 种木材,因此这个公式为 7x。

例如:具有 3 种木材类型的最终单元将显示:

4/4 山毛榉 1.5

6/4 胡桃木3.5

8/4核桃2.8

if-statement google-sheets vlookup
1个回答
0
投票

单行公式

=IFNA(LET(rng,'2024 Master Data'!C:T, 
   rw,MATCH(D1,INDEX(rng,,1),0), 
   a_,INDEX(rng,rw,11), b_,INDEX(rng,rw,12),
   IF(a_=0,,char(10)& a_& " "&
     IF(ISNUMBER(b_),ROUND(b_,2),b_)))) 

多行公式

假设您的查找值位于 E85:E100 中

多行输出

=LET(types,E85:E100,
   rng,'2024 Master Data'!C:T,
   MAP(types, LAMBDA(t, IFNA(LET(
     r,MATCH(t,INDEX(rng,,1),0),
     a,INDEX(rng,r,11), b,INDEX(rng,r,12),
       IF(a=0,,char(10)& a & " " &
         IF(ISNUMBER(b),ROUND(b,2),b))))))) 
© www.soinside.com 2019 - 2024. All rights reserved.