Board logo

標題: [發問] 向線問題 [打印本頁]

作者: 軒云熊    時間: 2022-11-14 21:09     標題: 向線問題

請問該如何寫 如附件


[attach]35488[/attach]
作者: 軒云熊    時間: 2022-11-14 21:37

本帖最後由 軒云熊 於 2022-11-14 21:48 編輯

抱歉  結果的 第2點 -5        50 應該是  0        50 我打錯了 有正負數問題
作者: Andy2483    時間: 2022-11-16 10:57

回復 2# 軒云熊

謝謝前輩發表此主題與範例
1.後學好奇 向線是什麼?
2.如果範例裡的兩組數據是二次曲線的點!是兩條曲線
[attach]35490[/attach]

3.加減的變化數值是要表達什麼?
[attach]35491[/attach]

4.可以說明這結果點 數據是什麼用途?
數據點只有3個點,可以吻合的公式好像很多!
作者: 軒云熊    時間: 2022-11-17 10:04

本帖最後由 軒云熊 於 2022-11-17 10:10 編輯

回復 3# Andy2483

抱歉  結果的 第2點 -5        50 應該是  0        50 我打錯了

應該是說 3個點  其實是3條線   每一個點等於一條線   假設  -10   50  是基準點    我希望 第2組  與 第3組  的  X 落在 50附近 越接近越好      
而起始點  第2組 是5  第3組 是-25  
以第2組 來說  5  25   當 5 越小的時候  25 的數值 就會越大
5~25 的間距  是等間距 固定 往+ x 或著是 -x  方向移動  所以 我往 50的方向移動的時候 5 跟 25 都會變化
作者: 軒云熊    時間: 2022-11-17 12:12

回復 4# 軒云熊

抱歉 剛剛看一下發現 範列有問題  從新再上傳一次  
[attach]35493[/attach]

[attach]35492[/attach]
作者: Andy2483    時間: 2022-11-17 13:26

請前輩試試看
1.G13=IF(G6<>"",G6+((H6-$H$6)/5),"")
2.H13=IF(G6<>"",$H$6,"")
3.G13:H13 下刷到 G17:H17
作者: 軒云熊    時間: 2022-11-18 02:41

回復 6# Andy2483

可以了  謝謝 Andy2483 大大
作者: 劉大胃    時間: 2022-11-21 17:49

Hello, 軒云熊 大

依您的問題, 應該是5~-25所量測的值, 皆能補正至接近50, 對嗎?
如果是的話, 那麼公式應該是::
J21=IF(H21<>"",0+((I21-$K$6)/5),"")
K21=IF(H21<>"",I21-5*J21,"")

以上, 還是我有所誤解, 再不吝告知. Thanks ~

[H21,I21]=[5,25] ==>[-5檔, 補正至50]
[H22,I22]=[0,50] ==>[-0檔, 補正至50]
[H23,I23]=[-5,50] ==>[-0檔, 補正至50]
[H24,I24]=[-10,75] ==>[+5檔, 補正至50]
[H25,I25]=[-15,100] ==>[+10檔, 補正至50]
[H26,I26]=[-20,125] ==>[+15檔, 補正至50]
[H27,I27]=[-25,150] ==>[+20檔, 補正至50]
作者: 軒云熊    時間: 2022-11-22 18:27

回復 8# 劉大胃
感謝 劉大胃大大 我沒注意到
作者: 軒云熊    時間: 2022-11-22 18:49

本帖最後由 軒云熊 於 2022-11-22 18:58 編輯

回復 9# 軒云熊

其實 我要的結果是類似這樣  抱歉 我說明的不清楚
不知道有沒有更好的辦法
[attach]35512[/attach]
作者: Andy2483    時間: 2022-11-23 10:10

本帖最後由 Andy2483 於 2022-11-23 10:15 編輯

回復 10# 軒云熊


    謝謝前輩再提供情境範例
後學猜測情境是:
輸入前:
[attach]35515[/attach]

各個儲存格輸入後:
[attach]35516[/attach]

後學建議觸發方式,請各位前輩指導!謝謝

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim A&, Ti#, Ts$
With Target
   If (.Row >= 7 And .Row <= 17 And .Row Mod 3 = 1) And (.Column >= 7 And .Column <= 16) And .Count = 1 Then
      A = .Value
      If (A < 48 Or A > 50) And (A <> 0 Or .Value <> "") Then
         .Interior.Color = RGB(255, 255, 0)
         Ti = (50 - A) / 1000
         Ts = Format(Ti, "0.000")
         .Offset(1, 0) = IIf(Ti > 0, "+" & Ts, Ts)
         .Offset(1, 0).Interior.Color = RGB(170, 240, 190)
         Else
            .Interior.ColorIndex = xlNone
            .Offset(1, 0).Interior.ColorIndex = xlNone
            .Offset(1, 0) = ""
      End If
   End If
End With
Application.EnableEvents = True
End Sub
作者: Andy2483    時間: 2022-11-23 16:45

回復 10# 軒云熊


    謝謝前輩
後學藉此範例練習 自訂義函數,觀念不知是否對?? 懇請各位前輩指導!謝謝

[G8]儲存格輸入 =GetRangeStep(48,50,G7)  :
[attach]35517[/attach]

[G7]...輸入數字結果:
[attach]35518[/attach]

Option Explicit
Function GetRangeStep(Mi As Long, Mx As Long, xArea As Range)
'自訂義函數 GetRangeStep(最小值,最大值,計算的儲存格)
'[G8]儲存格輸入 =GetRangeStep(48,50,G7)
'[G8]儲存格複製公式到其他儲存格
Dim xR As Range, xV$, Ti#, Ts$
Application.Volatile
If (xArea.Value < Mi Or xArea.Value > Mx) And xArea.Value <> "" Then
   Ti = (50 - xArea) / 1000
   Ts = Format(Ti, "0.000")
   xV = IIf(Ti > 0, "+" & Ts, Ts)
   Else
      xV = ""
End If
GetRangeStep = xV
End Function
作者: 劉大胃    時間: 2022-11-23 18:36

Hello, 軒云熊 大

頁面::[01]
(1) 中心值為50  --> F5=50
(2) 加減值公式 --> G8= IF(G7="","",IF($F$5>=G7,"+","") & Text(($F$5-G7)*0.001,"0.000"))

頁面::[02]
(1) 中心值為10  --> B1=10
(2) 加減值公式 --> C5=IF(OR(C4="",$B$1=C4),"",IF($B$1>=C4,"+","") & TEXT(($B$1-C4)*0.001,"0.000"))

以上, 裡面的顏色, 可以用"設定格式化的條件" 功能去定義. 所以只要保留清除功能鍵, 而功能鍵裡也只要做點位及實際值的內容值清除即可.

Thanks ~
作者: 軒云熊    時間: 2022-11-25 09:16

感謝 劉大胃  和 Andy2483  大大的幫忙   這樣好多了 謝謝




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)