主頁 > 軟體工程 > 如何計算一行中數字大于7的單元格的數量作為文本的一部分,例如“8天”

如何計算一行中數字大于7的單元格的數量作為文本的一部分,例如“8天”

2022-11-03 12:01:11 軟體工程

我有一個包含幾列的電子表格。我只在這里展示其中 2 個的資料,因為它們是我在這個問題中要處理的 2 個。

第一列是 IP 地址。第二列是上次回復的時間或上次回復的日期:

地址 最后回應
10.1.1.109 2022 年 10 月 17 日
10.1.1.113 2022 年 10 月 17 日
10.1.1.137 2022 年 10 月 17 日
10.1.1.188 4天
10.1.1.199 2022 年 10 月 17 日
10.1.21.5 2022 年 10 月 17 日
10.1.21.50 45 天
10.1.50.41 2022 年 10 月 17 日
10.1.50.71 2022 年 10 月 17 日
10.1.88.10 2022 年 10 月 17 日
10.1.88.249 6天
10.16.6.190 4天
10.64.0.76 28 天
10.64.3.48 45 天

我需要做的是計算出一些計數。我想知道每個 IP 子網有多少個

  1. 超過 1 周的回復
  2. 超過 1 個月的回復。

在示例資料中,您可以看到 3 個 IP 子網:10.4、10.16 和 10.64。我期望得到如下結果:

IP 子網 > 周 > 月
10.1 9 1
10.16 0 0
10.64 2 1

我有一個“> 周”的公式,但我不喜歡它。我無法弄清楚如何根據該列中文本開頭的數字進行計數。我嘗試了這樣的公式:

=COUNTIFS(AllIPAddresses,"10.1.*",AllResponses, NUMBERVALUE(LEFT(AllResponses, FIND(" ",AllResponses)))&">7")

顯然這是行不通的。它給了我一個充滿 0 的列。

我為“>周”欄作業的內容:

=COUNTIFS(AllIPAddresses,CONCAT(A2,"*"),AllResponses,"<>7 days",AllResponses,"<>6 days",AllResponses,"<>5 days",AllResponses,"<>4 days",AllResponses,"<>3 days",AllResponses,"<>2 days",AllResponses,"<>Today",AllResponses,"<>Yesterday")

但就像我說的,我不喜歡它,因為它只是查看列而不計算 8 個選項。如果我能有辦法讓它查看該列并計算那些天數大于 7 的人,我會更愿意。簡單的東西會很棒,但比我擁有的更短和/或更簡單的東西我會拿。而且我無法在“> 月”結果中有效地重復使用它,因為那樣我就必須列出大約 30 個我不想計算的不同選項。
最好讓它尋找我想要的 1 選項。

我希望有類似的東西:

  • 第一個 COUNTIFS 計算所有數字 > 7 的文本
  • 第二個 COUNTIFS 計算今天之前 7 天以上的所有日期
=COUNTIFS(AllIPAddresses, CONCAT(A2,"*"),AllResponses, LEFT(AllResponse,2)&">7") COUNTIFS(AllIPAddresses, CONCAT(A2,"*"),AllResponses,"<"&today()-7)

然后我可以通過將 7 更改為 30 來在“> 月”中重復使用它。

雖然我知道這個公式不起作用。

任何有關此問題的幫助將不勝感激!

關于我的公式的一些注意事項
為了便于使用,我命名了范圍:
AllIPAddresses = A2:A700
AllResponses = B2:B700
(在我的公式中 > 周) A2指的是“10.1”。以便CONCAT將“10.1.*”的結果提供給COUNTIFS

uj5u.com熱心網友回復:

這可以通過以下方式完成:

=LET(data,A2:B15,
     _d1,INDEX(data,,1),
     _d2,INDEX(data,,2),
         lr,TODAY()-IF(ISNUMBER(_d2),_d2,TODAY()-(LEFT(_d2,LEN(_d2)-LEN(" days")))),
         lft,TEXTBEFORE(_d1,".",2),
         unq,UNIQUE(lft),
         sq,SEQUENCE(COUNTA(lft),,1,0),
         mm,--(TRANSPOSE(unq)=lft),
            wk,MMULT(--(TRANSPOSE(lft)=unq)*TRANSPOSE(lr>7),sq),
            mn,MMULT(--(TRANSPOSE(lft)=unq)*TRANSPOSE(lr>30),sq),
               stack,HSTACK(unq,wk,mn),
VSTACK({"IP Subnet","> Week","> Month"},stack))

如何計算一行中數字大于 7 的單元格的數量作為文本的一部分,例如“8 天”

lft用于TEXTBEFORE獲取 IP 地址的前 2 部分。 lr計算上次回應與今天相比的天數。 unqlft(IP 子網)的唯一值。 wk用于計算大于 7 MMULT的唯一 IP 子網值的條件計數。與 相同,但大于 30。lrmnwklr

uj5u.com熱心網友回復:

使用新的 365 功能,生成唯一的 IP 值,并計算 >7 和 >30 天。如果日期檢索差異,否則提取天數:

=LET(IP,TEXTBEFORE(AllIPAddresses,".",2),U,UNIQUE(IP),S,SEQUENCE(COUNTA(AllIPAddresses),,1,0),D,IFERROR(TODAY()-AllResponses,TEXTBEFORE(AllResponses," ")*1),W,MMULT((TRANSPOSE(IP)=U)*(TRANSPOSE(D)>7),S),M,MMULT((TRANSPOSE(IP)=U)*(TRANSPOSE(D)>30),S),HSTACK(U,W,M))

HSTACK合并列結果。

uj5u.com熱心網友回復:

也許你可以嘗試

如何計算一行中數字大于 7 的單元格的數量作為文本的一部分,例如“8 天”


? 單元格中使用的公式D2

=LET(_ipaddress,TEXTBEFORE(Address,".",2),
_days,IFERROR(TODAY()-ISNUMBER(Last_Response)*Last_Response,
           SUBSTITUTE(Last_Response," days","") 0),
_uip,UNIQUE(_ipaddress),
_week,BYROW(_uip,LAMBDA(x,SUM(--(x=_ipaddress)*(_days>7)))),
_month,BYROW(_uip,LAMBDA(x,SUM(--(x=_ipaddress)*(_days>30)))),
VSTACK({"IP Subnet","> Week","> Month"},HSTACK(_uip,_week,_month)))

用于進行計算的每個命名變數的說明:

?地址--> 是定義的名稱范圍,指的是

=$A$2:$A$15

? Last_Response --> 是一個定義的名稱范圍,指的是

=$B$2:$B$15 

? _ipaddress --> 提取IP 子網使用TEXTBEFORE()

TEXTBEFORE(Address,".",2)

如何計算一行中數字大于 7 的單元格的數量作為文本的一部分,例如“8 天”


? _days檢查范圍是數字還是文本,因為在 Excel 中日期存盤為數字,我們ISNUMBER()用于檢查哪些回傳值TRUEFALSE文本值,

也就是說,檢查并回傳天數的第一部分IFERROR()

TODAY()-ISNUMBER(Last_Response)*Last_Response

如何計算一行中數字大于 7 的單元格的數量作為文本的一部分,例如“8 天”


雖然第二部分是文本值,但我們只是用空替換“天”并將其轉換為數字。

SUBSTITUTE(Last_Response," days","") 0

如何計算一行中數字大于 7 的單元格的數量作為文本的一部分,例如“8 天”


=IFERROR(TODAY()-ISNUMBER(Last_Response)*Last_Response,
           SUBSTITUTE(Last_Response," days","") 0)

如何計算一行中數字大于 7 的單元格的數量作為文本的一部分,例如“8 天”


? _uip --> 這為我們提供了唯一IP 子網

UNIQUE(_ipaddress)

? _week --> 這為我們提供了每個唯一值行的計數,并作為輸出陣列回傳,對于那些大于 7 天的天數。

BYROW(_uip,LAMBDA(x,SUM(--(x=_ipaddress)*(_days>7))))

如何計算一行中數字大于 7 的單元格的數量作為文本的一部分,例如“8 天”


? _month --> 雖然這為我們提供了每個唯一值行的計數,并作為輸出陣列回傳,對于那些大于 30 天的天數。

BYROW(_uip,LAMBDA(x,SUM(--(x=_ipaddress)*(_days>30))))

如何計算一行中數字大于 7 的單元格的數量作為文本的一部分,例如“8 天”


? 最后但同樣重要的是,我們將所有需要顯示為輸出的變數打包在一個HSTACK()

HSTACK(_uip,_week,_month)

如何計算一行中數字大于 7 的單元格的數量作為文本的一部分,例如“8 天”

為了讓正確的標題看起來不錯,我們將它VSTACK()與標題一起包裝在 [1x3] 陣列中

如何計算一行中數字大于 7 的單元格的數量作為文本的一部分,例如“8 天”


如何計算一行中數字大于 7 的單元格的數量作為文本的一部分,例如“8 天”


好吧,您也可以使用Power Query輕松執行此類任務:

要使用Power Query完成此任務,請按照以下步驟操作,

如何計算一行中數字大于 7 的單元格的數量作為文本的一部分,例如“8 天”


? 選擇資料表中的某個單元格,

?資料選項卡=>獲取&轉換=>從表/范圍

? 當 PQ 編輯器打開時:主頁=>高級編輯器

? 記下所有2 個表名

? 粘貼下面的M 代碼代替您看到的內容。

? 并參考注釋


let
    //IPAddresstbl Uploaded in PQ Editor,
    Source = Excel.CurrentWorkbook(){[Name="IPAddresstbl"]}[Content],

    //Date Type Changed
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Last Response", type text}}),
    
    //Extracting the IP SUBNET 
    #"Extracted Text Before Delimiter" = Table.TransformColumns(#"Changed Type", {{"Address", each Text.BeforeDelimiter(_, ".", 1), type text}}),

    //Replacing " days" in last response column
    #"Replaced Value" = Table.ReplaceValue(#"Extracted Text Before Delimiter"," days","",Replacer.ReplaceText,{"Last Response"}),
    
    //Removing " 12:00:00 AM" from Date Time since we changed the data type of lastresponse as text
    #"Extracted Text Before Delimiter1" = Table.TransformColumns(#"Replaced Value", {{"Last Response", each Text.BeforeDelimiter(_, " 12:00:00 AM"), type text}}),

    //Adding custom column return the numbers of days
    #"Added Custom" = Table.AddColumn(#"Extracted Text Before Delimiter1", "Custom", each if Value.Is(Value.FromText([Last Response]), type number) then [Last Response] else Date.From(DateTime.LocalNow()) - Value.FromText([Last Response])),
    
    //Changing the data type of the custom column to ensure they are numbers
    #"Changed Type1" = Table.TransformColumnTypes(#"Added Custom",{{"Custom", Int64.Type}}),
    
    //Removing unwanted columns
    #"Removed Columns" = Table.RemoveColumns(#"Changed Type1",{"Last Response"}),
    
    //Returning 1 for those days which are more than 7 else returning as 0    
    #"Added Conditional Column" = Table.AddColumn(#"Removed Columns", "> Week", each if [Custom] > 7 then 1 else 0),

    //Returning 1 for those days which are more than 30 else returning as 0
    #"Added Conditional Column1" = Table.AddColumn(#"Added Conditional Column", "> Month", each if [Custom] > 30 then 1 else 0),
    
    //Grouping by each IP Address
    #"Grouped Rows" = Table.Group(#"Added Conditional Column1", {"Address"}, {{"> Week", each List.Sum([#"> Week"]), type nullable number}, {"> Month", each List.Sum([#"> Month"]), type nullable number}}),

    //Renamed the IP Address Column
    #"Renamed Columns" = Table.RenameColumns(#"Grouped Rows",{{"Address", "IP SUBNET"}})
in
    #"Renamed Columns"

如何計算一行中數字大于 7 的單元格的數量作為文本的一部分,例如“8 天”


如何計算一行中數字大于 7 的單元格的數量作為文本的一部分,例如“8 天”


? 將表名更改為SUBNETtbl,然后再將其匯入 Excel。

? 匯入時,您可以選擇帶有要放置表格的單元格參考的現有作業表,也可以簡單地單擊新作業


轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/526187.html

標籤:擅长excel公式办公室365

上一篇:兩個值之間的條件格式

下一篇:如何優雅地獲得2個int32數字的中間而不會溢位?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • Git本地庫既關聯GitHub又關聯Gitee

    創建代碼倉庫 使用gitee舉例(github和gitee差不多) 1.在gitee右上角點擊+,選擇新建倉庫 ? 2.選擇填寫倉庫資訊,然后進行創建 ? 3.服務端已經準備好了,本地開始作準備 (1)Git 全域設定 git config --global user.name "成鈺" git c ......

    uj5u.com 2020-09-10 05:04:14 more
  • CODING DevOps 代碼質量實戰系列第二課,相約周三

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。**《DevOps 代碼質量實戰(PHP 版)》**為 CODING DevOps 代碼質量實戰系列的第二課,同時也是本系列的 PHP ......

    uj5u.com 2020-09-10 05:07:43 more
  • 推薦Scrum書籍

    推薦Scrum書籍 直接上干貨,推薦書籍清單如下(推薦有順序的哦) Scrum指南 Scrum精髓 Scrum敏捷軟體開發 Scrum捷徑 硝煙中的Scrum和XP : 我們如何實施Scrum 敏捷軟體開發:Scrum實戰指南 Scrum要素 大規模Scrum:大規模敏捷組織的設計 用戶故事地圖 用 ......

    uj5u.com 2020-09-10 05:07:45 more
  • CODING DevOps 代碼質量實戰系列最后一課,周四發車

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。 **《DevOps 代碼質量實戰(Java 版)》**為 CODING DevOps 代碼質量實戰系列的最后一課,同時也是本系列的 ......

    uj5u.com 2020-09-10 05:07:52 more
  • 敏捷軟體工程實踐書籍

    Scrum轉型想要做好,第一步先了解并真正落實Scrum,那么我推薦的Scrum書籍是要看懂并實踐的。第二步是團隊的工程實踐要做扎實。 下面推薦工程實踐書單: 重構:改善既有代碼的設計 決議極限編程 : 擁抱變化 代碼整潔代碼 程式員的職業素養 修改代碼的藝術 撰寫可讀代碼的藝術 測驗驅動開發 : ......

    uj5u.com 2020-09-10 05:07:55 more
  • Jenkins+svn+nginx實作windows環境自動部署vue前端專案

    前面文章介紹了Jenkins+svn+tomcat實作自動化部署,現在終于有空抽時間出來寫下Jenkins+svn+nginx實作自動部署vue前端專案。 jenkins的安裝和配置已經在前面文章進行介紹,下面介紹實作vue前端專案需要進行的哪些額外的步驟。 注意:在安裝jenkins和nginx的 ......

    uj5u.com 2020-09-10 05:08:49 more
  • CODING DevOps 微服務專案實戰系列第一課,明天等你

    CODING DevOps 微服務專案實戰系列第一課**《DevOps 微服務專案實戰:DevOps 初體驗》**將由 CODING DevOps 開發工程師 王寬老師 向大家介紹 DevOps 的基本理念,并探討為什么現代開發活動需要 DevOps,同時將以 eShopOnContainers 項 ......

    uj5u.com 2020-09-10 05:09:14 more
  • CODING DevOps 微服務專案實戰系列第二課來啦!

    近年來,工程專案的結構越來越復雜,需要接入合適的持續集成流水線形式,才能滿足更多變的需求,那么如何優雅地使用 CI 能力提升生產效率呢?CODING DevOps 微服務專案實戰系列第二課 《DevOps 微服務專案實戰:CI 進階用法》 將由 CODING DevOps 全堆疊工程師 何晨哲老師 向 ......

    uj5u.com 2020-09-10 05:09:33 more
  • CODING DevOps 微服務專案實戰系列最后一課,周四開講!

    隨著軟體工程越來越復雜化,如何在 Kubernetes 集群進行灰度發布成為了生產部署的”必修課“,而如何實作安全可控、自動化的灰度發布也成為了持續部署重點關注的問題。CODING DevOps 微服務專案實戰系列最后一課:**《DevOps 微服務專案實戰:基于 Nginx-ingress 的自動 ......

    uj5u.com 2020-09-10 05:10:00 more
  • CODING 儀表盤功能正式推出,實作作業資料可視化!

    CODING 儀表盤功能現已正式推出!該功能旨在用一張張統計卡片的形式,統計并展示使用 CODING 中所產生的資料。這意味著無需額外的設定,就可以收集歸納寶貴的作業資料并予之量化分析。這些海量的資料皆會以圖表或串列的方式躍然紙上,方便團隊成員隨時查看各專案的進度、狀態和指標,云端協作迎來真正意義上 ......

    uj5u.com 2020-09-10 05:11:01 more
最新发布
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:41:12 more
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:35:34 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:05:44 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:00:18 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:20:31 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:55 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:18:51 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:00 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:17:55 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:12:06 more