2023年12月10日 星期日

AI品牌相關工具,初步瞭解分析(請AI協助)

為儘快對AI工具粗淺認識,藉由AI(ChatGPT)協助。

(以下各家AI工具,回答出來不見得相同,僅供參考)

工具名稱

功能面強向

費用

語系支援

優點

CHATGPT

聊天機器人、文字生成、翻譯、問答

免費、付費

多國語言

功能強大、語言能力佳、價格實惠

BING

搜尋、翻譯、地圖、雲端儲存

免費

多國語言

功能齊全、使用介面簡潔、普及度高

BARD(Gemini)

聊天機器人、文字生成、翻譯、問答

免費

多國語言

功能強大、語言能力佳、不斷更新

Claude

生成文字、翻譯語言、撰寫不同創意內容

免費

多國語言

提供上傳檔案(如PDF檔)可協助分析重點、語言能力佳

Perplexity

文字生成、翻譯、問答

免費、付費

多國語言

功能強大、語言能力佳、價格實惠

Copilot

程式碼輔助

付費

多國語言

程式碼輔助效果佳、可節省開發時間

ChatEverywhere

程式碼輔助、聊天機器人

免費、付費

多國語言

可在多個平台使用、功能齊全

Monica

時間管理、任務管理

免費、付費

多國語言

功能多元、可自訂介面、價格實惠

Notion

筆記、待辦事項、協作

免費、付費

英文為主

功能多元、可自訂介面、協作效率高

 PROMPT提示訊息下法:

請協助將下列AI品牌工具(:CHATGPTBINGBARD(gemini)NotionPerplexity、Claude、CopilotChatEverywhereMonica),分別以表格及繁體中文方式呈現,進行初步瞭解,並包括功能面、費用、語系支援、優點,進行分析。

 

PROMPT詢問範例: ( 想瞭解最近資訊議題 AUTO ML機器學習 或 gemini 教學詢問方式,抽換Google gemini關鍵字,可查YOUTUBE網站與關鍵字相關領域學習參考資訊),可向AI網站詢問

Google geminiの応用的な使い方に関連するYOUTUBEチャンネルを教えてください









































延續先前分公司,各自單獨建立分頁  之範例

Excel 分頁過多(分公司多,以致於移動分頁困擾),希望於每個分頁的K1儲存格(即各個分公司 分頁K1儲存格),
再設定一個回總索引頁(即「 各分公司索引清單」)


Perplexity.ai
藉由Perplexity AI(ChatGPT)協助將每個各自獨立分公司分頁中的K1儲存格,建立回總索引頁(即「 各分公司索引清單」)之超連結,方便作業。
PROMPT提示訊息下法:
EXCEL表,有多個分頁,其中 各分公司索引清單,已有指向各分頁之超連結,
請用EXCEL VBA程式,幫忙於 各分頁中 K1儲存格,增設  各分公司索引清單 超連結 ,並將K1更名為  回索引清單。


Sub AddHyperlinkAndRename()
    Dim ws As Worksheet
    Dim wsRef As Worksheet
    Dim LastRow As Long
    Dim LastCol As Long
    Dim i As Long
    
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> "各分公司索引清單" Then
            LastRow = ws.Cells(ws.Rows.Count, "K").End(xlUp).Row
            LastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
            
            For i = 2 To LastRow
                ws.Range(ws.Rows.Count, i).Value = ""
                ws.Range(ws.Rows.Count, i).EntireRow.Hidden = True
            Next i
            
            ws.Range("K1").Value = "回索引清單"
          
            
              ' 在各分頁的K1儲存格增設超連結
              
              ws.Range("K1").Hyperlinks.Add Anchor:=ws.Range("K1"), Address:="", SubAddress:="'" & "各分公司索引清單" & "'!A1"
                    
            
        End If
    Next ws
End Sub


請按照以下步驟使用此程式:
STEP1:開啟您的Excel檔案。
STEP2:按下Alt + F11進入VBA編輯器。
STEP3:在VBA編輯器中,插入一個新的模組Module。
STEP4:將上述VBA程式碼,複製並貼上到新的模組Module中。
STEP5:在VBA編輯器中,按下F5運行程式。

 

相關應用:

PivotTable樞鈕分析表,搭配Formula公式運用,詳列出   各個" 部門別"之擁有  台數之報表產製

用EXCEL VBA程式,各自單獨建立分公司分頁表,並增設超連結方便索引

因業務需要,有5個分公司(甲~戊)業務要管,想用EXCEL表,

提供給各單位填報回傳資料進行管理,並以分公司名稱 各自單獨建立1個工作表,

同時增設超連結方便索引 。

EXCEL表已先建立好各分公司名稱於A欄位中,如下:
         A
1  分公司名稱  
2  甲分公司
3  乙分公司
4  丙分公司
5  丁分公司
6  戊分公司


藉由AI(ChatGPT)協助建立各自建立分公司獨立分頁,並提供超連結設置,方便檢索


PROMPT提示訊息下法:
EXCEL表中,自A2儲存格起,有多個分公司 放於A欄位中,請提供VBA程式,幫忙建立 分公司分頁 ,並且設置超連結,方便檢索



Sub CreateCompanySheets()
    Dim ws As Worksheet
    Dim company As Range
    
    ' 在第一個工作表中建立一個名為 「 各分公司索引清單」的分頁
    Set ws = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
    ws.Name = "各分公司索引清單"
    
    ' 在「 各分公司索引清單」分頁中設置標題
    ws.Range("A1").Value = "分公司"
    
    ' 從A2儲存格起,逐一遍歷分公司名稱
    For Each company In ThisWorkbook.Sheets(1).Range("A2:A" & ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row)
        ' 檢查分公司分頁是否已存在
        If Not SheetExists(company.Value) Then
            ' 如果分公司分頁不存在,則建立一個新的分頁
            ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)).Name = company.Value
        End If
        
        ' 在「 各分公司索引清單」分頁中設置超連結
        ws.Hyperlinks.Add Anchor:=ws.Range("A" & ws.Cells(Rows.Count, 1).End(xlUp).Row + 1), _
                          Address:="", _
                          SubAddress:="'" & company.Value & "'!A1", _
                          TextToDisplay:=company.Value
    Next company
    
    ' 回到  第一個工作表
    ThisWorkbook.Sheets(1).Activate

End Sub

Function SheetExists(sheetName As String) As Boolean
    Dim ws As Worksheet
    
    SheetExists = False
    For Each ws In ThisWorkbook.Sheets
        If ws.Name = sheetName Then
            SheetExists = True
            Exit Function
        End If
    Next ws
End Function


請按照以下步驟使用此程式:

STEP1:開啟您的Excel檔案。
STEP2:按下Alt + F11進入VBA編輯器。
STEP3:在VBA編輯器中,插入一個新的模組Module。
STEP4:將上述VBA程式碼,複製並貼上到新的模組Module中。
STEP5:在VBA編輯器中,按下F5運行程式。

VBA程式,將會在您的Excel檔案中建立一個名為「 各分公司索引清單」的分頁,並在該分頁中列出 所有分公司的超連結。點擊超連結即可跳轉到相對應的分公司 分頁 。

2023年12月9日 星期六

將多個不同分公司EXCEL成本花費表,合併成單一EXCEL總表

總公司有許多分公司,甲、乙、丙分公司,各自維護獨立 成本花費EXCEL報表,每月需匯整成單一EXCEL總表中


甲、乙、丙分公司各自有成本花費EXCEL報表,且它們成本花費報表  ,其首欄位都有相同花費成本細項,但欄位放置位置都不一定相同


匯整甲、乙、丙分公司,成本花費EXCEL報表欄位全數欄位有    地點,姓名,加班費,差旅費,雜費,租賃費,其它 等欄位


所以,總公司,每月均需匯整甲、乙、丙分公司之成本花費EXCEL報表,合併成單一 EXCEL成本花費總表

To merge the three Excel files into a single file named "MergeOK.xlsx" in the "總公司" folder which located in the D drive,

藉由AI(ChatGPT)寫合併EXCEL
PROMPT提示訊息下法:
在D槽中有 總公司 資料夾,存放3個EXCEL檔,每份表格的首欄為標題,分別有地點,姓名,加班費,差旅費,雜費,租賃費,其它 欄位,每個表格的首欄標題位置皆不同,請寫PYTHON程式
,將3個EXCEL表格,合併成 MergeOK.XLSX



import pandas as pd

# File paths 甲分公司檔名為file1.xlsx 、乙分公司檔名為file2.xlsx、丙分公司檔名為file3.xlsx


folder_path = 'D:/總公司/'
file_names = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx']

# Read each Excel file into a DataFrame
dfs = []
for file_name in file_names:
    file_path = folder_path + file_name
    df = pd.read_excel(file_path)
    dfs.append(df)

# Merge the DataFrames
merged_df = pd.concat(dfs)

# Save the merged DataFrame to a new Excel file
output_file = folder_path + 'MergeOK.xlsx'
merged_df.to_excel(output_file, index=False)



相關查詢:
How to join Excel data from Multiple files?

複数のExcelファイルを1つにまとめる方法?


後記:
合併多個EXCEL檔成單一檔方法很多,可以用EXCEL本身功能,或用VBA、或用PYTHON,如果要改成VBA,本範例是用PYHTON,如要使用VBA,只要將PROMPT提示訊息下法,將上面  請寫PYTHON程式  ,改成 EXCEL VBA程式即可

2023年12月8日 星期五

用PYTHON程式,對Disk Analysis磁碟空間剖析

隨著儲存空間愈做愈大,如果沒有做管理將造成備份時間、儲存空間成本的增加、使用效能下降等,因此對磁碟儲存狀態剖析管理就相對重要,可透過PYTHON程式,對磁碟機進行分析檔案目錄、檔名、修改日期、檔案大小進行分析,將結果產出至OUTPUT.TXT,方能掌控磁碟空間之使用(以下為對D槽進行分析)。

import os
from datetime import datetime, timedelta

def analysis_directory(path):
    with open('OUTPUT.TXT', 'w', encoding='UTF-8') as f:
        for root, dirs, files in os.walk(path):
            for file in files:
                file_path = os.path.join(root, file)
                file_size = os.path.getsize(file_path)
                file_date = os.path.getmtime(file_path)
                file_date_str =
datetime.fromtimestamp(file_date).strftime('%Y/%m/%d %H:%M:%S')
                f.write(f'{file_path}\t{file_date_str}\t{file_size}\n')

analysis_directory('d:\\')   
   # 將 'D:\' 改為您想要剖析的磁碟機路徑

 

備註:

上面程式,測試如有型態錯誤訊息,可做調整

#程式開頭,另再加入此行
import time 

#請將datetime物件,替換成下面time物件

datetime.fromtimestamp(file_date).strftime('%Y/%m/%d %H:%M:%S')

#改用time物件

time.strftime('%Y-%m-%d %H:%M:%S')

########################################################

除上面剖析方式外,可搭配DOS指令 TREE 樹狀圖型結構,快速檢視檔案架構

步驟一: 開始  | 執行 | cmd   ,進入DOS 命令提示列

步驟二:  tree /f d: > d:\TreeView.txt     

(將D槽檔案結構,結果產出至   d:\TreeView.txt     )




 

用AI寫Batch批次檔

因為工作關係,常要以日期流水號建檔,所以每次需開檔案總管後,建立年月日資料夾,開始將工作歸納到此資料夾內,想藉由AI工具(ChatGPT),幫忙寫Batch檔,簡化工作😄

步驟一:

https://chateverywhere.app/zh

步驟二:語音語言,選擇  國語繁體

步驟三: (輸入您想請AI幫忙處理功能後,按下右邊 三角形圖示)

 請寫batch檔,依民國年月日建立資料夾,如遇相同資料夾,則自動+1

步驟四:

請將下面範例保存為一個BATCH批次檔(例如 create_folder.bat),然後執行該檔案,
它將根據當前的民國年月日建立一個資料夾。如果該資料夾已存在,它將自動在資料夾名稱後面加上數字,直到找到一個可用的資料夾名稱為止。


@echo off
setlocal enabledelayedexpansion

REM 取得當前的民國年月日
for /f "tokens=1-3 delims=/" %%a in ("%date%") do (
    set /a year=%%a-1911
    set month=%%b
    set day=%%c
)

REM 建立初始資料夾名稱
set folderName=%year%%month%%day%

REM 檢查資料夾是否已存在,若存在則自動加1
set i=1
:checkFolderExist
if exist "%folderName%" (
    set /a i+=1
    set folderName=%year%%month%%day%_%i%
    goto checkFolderExist
)

REM 建立資料夾
mkdir "%folderName%"


後記:

一、其實這網站,除能寫各種不同語文(如:日文令和年)的PYTHON程式

二、這網站亦能寫教案,您只要提供想要的大綱、教學時間、學生學習等級(國、高中、大學),並在最後附上其它一個網站參考教案範例,它就能依您的教案需求,並參考您附上的網站參考教案作為參考基準,編寫出符合您的需求的教案

三、突然間覺得... AI儼然已成為生活中不可或缺的小幫手了




AIでPYTHONプログラムを書く

AIでPYTHONプログラムを書く

令和   今日の日付の名前でフォルダを作成し、同じフォルダに出会えば自動的に+1するpythonプログラムを書いてください


ステップ 1
https://chateverywhere.app/zh

ステップ 2
語音語言--> 日本語

ステップ 3  (請輸入訊息)

令和   今日の日付の名前でフォルダを作成し、同じフォルダに出会えば自動的に+1するpythonプログラムを書いてください

ステップ 4
自動的にPYTHONプログラムコードを生成しました。

下記の通りの例をPythonファイルに保存し(例:create_folder.py)、実行すると、
令和の年月日に基づいてフォルダが作成されます。同じ名前のフォルダが既に存在する場合、番号が自動的に追加されます。

import os
import datetime

# 今日の日付を取得
today = datetime.date.today()

# 令和の年を計算
year = today.year - 2018

# フォルダ名を作成
folder_name = f"{year}{today.month:02}{today.day:02}"

# フォルダが存在するかどうかを確認し、存在する場合は番号を追加
i = 1
while os.path.exists(folder_name):
    folder_name = f"{year}{today.month:02}{today.day:02}_{i}"
    i += 1

# フォルダを作成
os.mkdir(folder_name)